Перейти к содержанию
    

Анализатор спектра ультразвукового диапазона

Господа форумчане подскажите!

 

Собираюсь использовать следующий алгоритм:

 

НЧ фильтр->АЦП->БПФ->КИХ фильтр (основанный на функции окна Ханна)

 

У Смитта написано, что КИХ фильтрация это свертка сигнала и импульсной характеристики фильтра. А во временной области - это просто умножение коэффициентов фильтра на отсчеты сигнала. Хочу использовать второй способ. Следовательно сначала делаю БПФ, а затем фильтрацию.

 

Подскажите это корректно? Какие трудности возникают? Вносятся ли искажения когда делаем БПФ не фильтрованного сигнала?

 

Перекрытия спектров на частотах, кратных частоте дискретизации нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а кокой смысл делать БПФ до фильтрации... как я понимаю у тебя дискретный фильтр служит как антиалиасинговый фильтр...

 

У того же смита это описанов разделе передискретизации сигнала. Когда используется поганая RC-цепь первого порядка, дискретизируем сигнал на повышенной частоте, затем компенсируем поганую АЧХ аналогового фильтра дискретным фильтром, а потом понижаем повышеную частоту до той которая нужна...

 

алгоритм у анализатора спектра разве не такой:

 

НЧ-фильтр-> АЦП -> КИХ-фильтр -> весовая функция окна -> БПФ

 

разумеется это в первом приближении

Изменено пользователем TigerSHARC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Nukers

я часа в 3-4 ночи просыпаюсь, тогда вам и отвечу... Если кто из форумчан ответит раньше буду только рад. Сорри что раньше не ответил, как-то подзабыл, блин...

 

Пока мой совет - все-таки разберитесь, что же такое функция окна. Я же довольно корректно и понятно это изложил. Зачем Вам FIR после FFT? Что он отфильтрует? Вам нужна функция окна для обеспечения т.з. по динамическому диапазону - развязки ближайших частотных бинов. Она накладывается до FFT, непосредственно на блок его входных данных. Это ни под каким углом не FIR-алгоритм. А просто перемножение 2-х функций внутри блока - поточечно (для FIR обе функции поточечно перемножаем, потом все это складываем в результате в 1-у точку, сдвигаем на сэмпл график входного сигнала и заново... и т.д.)... Но результат такого перемножения скажется на АЧХ частотного бина FFT - они перемножатся - АЧХ прямоугольного окна и функции окна заданной Вами... Ввиду природы самой функции окна - FFT из-за конечности интервала рассмотрения корректно представить не как корреляцию входной функции с синусоидой, а как корреляцию входной функции с произведением функции окна(прямоугольник - т.е. его спектр sinc(w)) и синусоиды. Если наложить окно - добавится третья функция...

 

алгоритм у анализатора спектра разве не такой:

 

НЧ-фильтр-> АЦП -> КИХ-фильтр -> весовая функция окна -> БПФ

Такой... но и FIR можно отбросить. НЧ фильтр то, неизменный во времени... Можно однажды подкорректировать бины FFT и все... :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

всё таки применение FIR в данном случае оправдано вот чем. НЧ фильтр сам по себе неидеален не в плане неравномерности АЧХ(да, тут можно подкоректировать) а в плане того, что его полоса неидеальна. Чтобы не городить НЧ фильтр высокого порядка для фильтрации всего что выше исследуемой полосы в сигнале. Просто строим простой фильтр (аппаратно). Затем смотрим на какой частоте АЧХ спадает на 40дБ(ну или на другое значение в зависимости от нужной точности). Далее умножаем эту частоту на два и получаем частоту дискретизации. Эта частота избыточна. Теперь фильтруем FIR'ом всё что выше 100 кГц (для данного случая) и понижаем частоту дискретизации да 200 кГц. ЭТО по книгам.

 

Но, думаю можно так выбираем частоту среза аналогового фильтра на частоте намного ниже 100кГц. Чтобы задавть всё что выше 100кГц. Но тогда АЧХ в полосе пропускания будет ОЧЕНЬ сильно искажена. Но можно это компенсировать программно. Тогда может FIR и не нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Собираюсь использовать следующий алгоритм:

НЧ фильтр->АЦП->БПФ->КИХ фильтр (основанный на функции окна Ханна)

Подскажите это корректно? Какие трудности возникают? Вносятся ли искажения когда делаем БПФ не фильтрованного сигнала?

КИХ фильтр в конце - это корректно, это вместо того, чтобы умножать на временное окно.

Если это окно Ханна, то импульсная характеристика - простая - 1-2-1.

А для других окон - сложнее.

Так что дешевле будет умножать на окно, а не фильтровать потом спекр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я о том же, что и говорит анатолий.

Мне непременно прийдется выполнять цифровую фильтрацию входного сигнала, чтобы отбросить полосы частот, которые повторяются на fs, 2fs, 3fs и.т.д.

По Смитту есть два способа фильтрации:

1) Во временной области: Это свертка сигнала с импульсной характеристикой фильтра (функцией окна, если построен оконный фильтр).

2) В частотной области: Это умножение частотных бинов, полученных после БПФ, на весовые коэффициенты окна (импульсной характеристики фильтра).

 

 

Вопрос сейчас лишь в том, какой из этих способов не внесет лишних гармоник и почему? (Ссылки плиз, если есть).

 

Такой... но и FIR можно отбросить. НЧ фильтр то, неизменный во времени... Можно однажды подкорректировать бины FFT и все... laughing.gif

Как корректировать?

Изменено пользователем Nukers

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Корректировать - это просто внести поправку. например по ачх аналогового фильтра видно, что затухание на частоте 1 кГц у тебя -10dB. Соотвтетственно можно поправить значение Фурье на этой частоте в спектре, просто умножив его на соответствующих коэффицент. Эти поправки вносяться один раз и навсегда для того фильтра аналогового который ты выберешь.

 

Цитирую:

"Так что дешевле будет умножать на окно, а не фильтровать потом спекр." - конец цитаты

 

Просто умножаешь выборку на весовую функцию окна -> затем БПФ. Фильтрование спектра добра не пренесёт.

 

Это тебе скажет каждый.

 

Необязательно фильтровать дискретным фильтром вот почему (об этом же и DRUID3 говорил) - если подобрать аналоговый фильтр достаточно высокого порядка и соответсвенную частоту дискретизации, то можно обойтись и без дискретного фильтра. Так как ты тем самым удовлетворишь теорему Котельникова.

А дискретные фильтры до БПФ применяются для того, чтобы снизить требования к аналоговым фильтрам, ведь построив фильтр высокого порядка система становится сильно зависима от температурного дрейфа и т.п.

( у смита есть глава - передискретизация. Там это описано.)

p.s. почитай по смиту. Там сказано что весовая функция окна - это ещё не фильтр. Весовая функция - это просто функция спадающая по краям (в общем случае).

А КИХ - фильтр называется оконным просто потому что синтез такого фильтра получается умножением импульсной характеристики идеального ФНЧ на оконную функцию.

Так что фильтрация - это фильтрация, а взвешивание - это взвешивание. Нужно отделить эти понятия.

Изменено пользователем TigerSHARC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просто умножаешь выборку на весовую функцию окна -> затем БПФ. Фильтрование спектра добра не пренесёт.

 

Это тебе скажет каждый.

 

Согласен, на функцию окна нужно умножить чтобы уложиться в требуемый динамический диапазон и чтобы "растекания" спектра после БПФ не было.

 

Фильтрацию же произвожу для того, чтобы отбросить компоненты, повторяющиеся на частотах 2fs, 3fs, 4fs и.т.д.

По порядку:

- Функция окна для устранения так называемого растекания спектра.

- Фильтрация для отсечения не нужных, повторяющихся частотных составляющих.

 

Следовательно сначала нужен КИХ фильтра, а потом умножение на функцию окна и уже только после БПФ? Верно?

 

p.s. почитай по смиту. Там сказано что весовая функция окна - это ещё не фильтр. Весовая функция - это просто функция спадающая по краям (в общем случае).

А КИХ - фильтр называется оконным просто потому что его импульсная характеристика взвешена окном.

 

Так что фильтрация - это фильтрация, а взвешивание - это взвешивание.

 

P.P.S. Насчет функции окна и КИХ фильтра уже уяснил, проверил. КИХ и оконное взвешивание - это разные функции, знаю это.

Так же сказано, что КИХ фильтр - во временной области это свертка отсчетов сигнала и импульсной характеристики КИХ фильтра (почитай про свертку). А в частотной области (т.е. сначала БПФ делаем над сигналом) - это умножение бинов БПФ на бины импульсной функции КИХ фильтра.

Изменено пользователем Nukers

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

КИХ фильтр в конце - это корректно, это вместо того, чтобы умножать на временное окно.

корректно что? Пройтись FIRом по частотным бинам? И что будет на выходе?

 

Так что дешевле будет умножать на окно, а не фильтровать потом спекр.

:wacko:

 

Я о том же, что и говорит анатолий.

У Анатолия уже в теплице видимо новый урожай травы...

 

Мне непременно прийдется выполнять цифровую фильтрацию входного сигнала, чтобы отбросить полосы частот, которые повторяются на fs, 2fs, 3fs и.т.д.

мде... если Вы будете продолжать в том же духе я просто перестану помогать :( ...

 

По Смитту есть два способа фильтрации:

1) Во временной области: Это свертка сигнала с импульсной характеристикой фильтра (функцией окна, если построен оконный фильтр).

2) В частотной области: Это умножение частотных бинов, полученных после БПФ, на весовые коэффициенты окна (импульсной характеристики фильтра).

:biggrin: о боги!!! Один... Тор... Бальдр... Вы видите сами!?

 

Вопрос сейчас лишь в том, какой из этих способов не внесет лишних гармоник и почему? (Ссылки плиз, если есть).

ну есть версия, что линейный...

 

Как корректировать?

Ну, видимо, умножая I и Q бины на числа...

 

 

Блин, ребята, Вы специально тут надо мной прикалываетесь? :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Анатолия уже в теплице видимо новый урожай травы...

ХА ХА ХА. Упал под стол. Анатолий поделитесь?

 

Все, уяснил спасибо.

НЧ(Бесселя с fc=120кГц)->АЦП(fs=250кГц)->Умножение на функцию окна->Коррекция частотных бинов->БПФ->Выход(Спектр)

 

DRUID3 спасибо вам огромное!

Изменено пользователем Nukers

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сань, ну нахрена спектр умножать на окно?

 

для БПФ нужно предотвратить растекание

 

и соблюсти критерий Котельникова (это как раз то о чём ты говорил повторяющиеся спектры не будут влиять если критерий котельникова выполняется) - это так называемое наложение.

Умножай на окно до БПФ.

 

в матлабе можно смоделить фильтр бесселя, посмотри на какой частоте у тебЯ затухание 40db и умнож эту частоту на два - вот тебе и частота дискретизации (250 кГц может быть маловато - зависит от порядка аналогового фильтра)

 

DRUID3 - отличные реплики, одна картинка про экстраполяцию чего стоит! Зачёт!))))

Изменено пользователем TigerSHARC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Согласен, ошибся. Поторопился. Теперь все вроде нормуль.

Пока точно не определился, что лучше - коррекция частотных бинов или повышение частоты дискретизации. Посмотрим по процессорному времени, там и решу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сань, ну нахрена спектр умножать на окно?...

 

...Умножай на окно до БПФ.

+1024...

 

2Nukers:

та Вы не расстраивайтесь, там действительно много чего вот так сразу понятно не будет... Если честно, то некоторые вещи нужно вообще годами обдумывать...

 

...в матлабе можно смоделить фильтр бесселя...

матлаб зло... и не потому что платный, а вообще... просто в нем это все предстает как процедуры и человек не формирует себе образной картины... Nukers я начал более-менее в этом все разбираться когда пришлось писать FFT а затем и RealFFT самому. Вы за небольшое время это не успеете. Это же диплом... Но так, что бы разобраться напишите(сами!!!) FIR простейший без оптимизаций и FFT(хоть рекурсивное)... Поймете где там блоки и что куда скользит...

 

для БПФ нужно предотвратить растекание

 

и соблюсти критерий Котельникова (это как раз то о чём ты говорил повторяющиеся спектры не будут влиять если критерий котельникова выполняется) - это так называемое наложение.

...

посмотри на какой частоте у тебЯ затухание 40db и умнож эту частоту на два - вот тебе и частота дискретизации (250 кГц может быть маловато - зависит от порядка аналогового фильтра)

...ну по-сравнению с дипломами состоящими из "микса" дипломов предшественников такая небрежность простительна... Но если так страшитесь зеркального канала АЦП, то, по-науке можно было бы выбрать Fs = 4*Fmax; И CFFT заставить работать так как RealFFT. Но... Мы так только запутаем человека... Так - тоже правильно... Пусть фильтр выберет эллиптический и сойдет...

Кстати, почему 40 dB, а не 100 например?

 

теперь DRUID3 точно больше ничего не напишет))))

:biggrin:

 

Пока точно не определился, что лучше - коррекция частотных бинов или повышение частоты дискретизации.

...коррекция частотных бинов выравнивает ФЧХ после аналогового фильтра... Частота же дискретизации повышается для упрощения этого самого фильтра, но не искривлять ФЧХ он принципиально не может ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, кстати про зеркальный канал. В реальных девайсах вообще стоит RC-цепь первого порядка... и частота дискретизации никак не по книгам выбиралась, а намного ниже. Я же говорю лишь о том что по теории. А по теории (в том же Смите) умножают на два частоту спада АЧХ аналогового фильтра в сто раз.

 

За матлаб. Очень полезная штука. без него никуда. Естественно что нужно сначала разобраться что делаешь))

а так ну ОЧЕНЬ полезно и быстро можно состряпать кусок алгоритма и протестить в плане математики.

 

А так конечно на C потом портировать надо. Вобщем знать надо всё.

 

кстати про децибелы. 40 - это опять по книгам. Это если хотите, чтобы максимально возможная погрешность от наложения спектра составила 0,01%. А так нужно выбрать в зависимости от требуемой точности (но это опять же теория)

 

to DRUID3 А что значит +1024 (просто интересно, чтоб знать)

Изменено пользователем TigerSHARC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...