реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Анализатор спектра ультразвукового диапазона, Анализатор спектра до 100кГц
Nukers
сообщение Mar 22 2010, 18:16
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 8-12-09
Из: Новочебоксарск
Пользователь №: 54 124



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

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

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

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

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

Перекрытия спектров на частотах, кратных частоте дискретизации нет.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Mar 22 2010, 18:25
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



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

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

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

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

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

Сообщение отредактировал TigerSHARC - Mar 22 2010, 18:37
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Mar 22 2010, 18:50
Сообщение #18


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



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

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

Цитата(TigerSHARC @ Mar 22 2010, 20:25) *
алгоритм у анализатора спектра разве не такой:

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

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


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Mar 22 2010, 19:34
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



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

Но, думаю можно так выбираем частоту среза аналогового фильтра на частоте намного ниже 100кГц. Чтобы задавть всё что выше 100кГц. Но тогда АЧХ в полосе пропускания будет ОЧЕНЬ сильно искажена. Но можно это компенсировать программно. Тогда может FIR и не нужен.
Go to the top of the page
 
+Quote Post
анатолий
сообщение Mar 24 2010, 13:02
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 10-12-05
Из: Украина
Пользователь №: 12 052



Цитата(Nukers @ Mar 22 2010, 21:16) *
Собираюсь использовать следующий алгоритм:
НЧ фильтр->АЦП->БПФ->КИХ фильтр (основанный на функции окна Ханна)
Подскажите это корректно? Какие трудности возникают? Вносятся ли искажения когда делаем БПФ не фильтрованного сигнала?

КИХ фильтр в конце - это корректно, это вместо того, чтобы умножать на временное окно.
Если это окно Ханна, то импульсная характеристика - простая - 1-2-1.
А для других окон - сложнее.
Так что дешевле будет умножать на окно, а не фильтровать потом спекр.
Go to the top of the page
 
+Quote Post
Nukers
сообщение Mar 24 2010, 16:06
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 8-12-09
Из: Новочебоксарск
Пользователь №: 54 124



Я о том же, что и говорит анатолий.
Мне непременно прийдется выполнять цифровую фильтрацию входного сигнала, чтобы отбросить полосы частот, которые повторяются на fs, 2fs, 3fs и.т.д.
По Смитту есть два способа фильтрации:
1) Во временной области: Это свертка сигнала с импульсной характеристикой фильтра (функцией окна, если построен оконный фильтр).
2) В частотной области: Это умножение частотных бинов, полученных после БПФ, на весовые коэффициенты окна (импульсной характеристики фильтра).


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

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

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

Сообщение отредактировал Nukers - Mar 24 2010, 16:07
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Mar 24 2010, 17:07
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



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

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

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

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

Необязательно фильтровать дискретным фильтром вот почему (об этом же и DRUID3 говорил) - если подобрать аналоговый фильтр достаточно высокого порядка и соответсвенную частоту дискретизации, то можно обойтись и без дискретного фильтра. Так как ты тем самым удовлетворишь теорему Котельникова.
А дискретные фильтры до БПФ применяются для того, чтобы снизить требования к аналоговым фильтрам, ведь построив фильтр высокого порядка система становится сильно зависима от температурного дрейфа и т.п.
( у смита есть глава - передискретизация. Там это описано.)
p.s. почитай по смиту. Там сказано что весовая функция окна - это ещё не фильтр. Весовая функция - это просто функция спадающая по краям (в общем случае).
А КИХ - фильтр называется оконным просто потому что синтез такого фильтра получается умножением импульсной характеристики идеального ФНЧ на оконную функцию.
Так что фильтрация - это фильтрация, а взвешивание - это взвешивание. Нужно отделить эти понятия.

Сообщение отредактировал TigerSHARC - Mar 24 2010, 17:24
Go to the top of the page
 
+Quote Post
Nukers
сообщение Mar 24 2010, 17:17
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 8-12-09
Из: Новочебоксарск
Пользователь №: 54 124



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

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


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

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

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

Цитата
p.s. почитай по смиту. Там сказано что весовая функция окна - это ещё не фильтр. Весовая функция - это просто функция спадающая по краям (в общем случае).
А КИХ - фильтр называется оконным просто потому что его импульсная характеристика взвешена окном.

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


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

Сообщение отредактировал Nukers - Mar 24 2010, 17:24
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Mar 24 2010, 17:19
Сообщение #24


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(анатолий @ Mar 24 2010, 15:02) *
КИХ фильтр в конце - это корректно, это вместо того, чтобы умножать на временное окно.

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

Цитата(анатолий @ Mar 24 2010, 15:02) *
Так что дешевле будет умножать на окно, а не фильтровать потом спекр.

wacko.gif

Цитата(Nukers @ Mar 24 2010, 18:06) *
Я о том же, что и говорит анатолий.

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

Цитата(Nukers @ Mar 24 2010, 18:06) *
Мне непременно прийдется выполнять цифровую фильтрацию входного сигнала, чтобы отбросить полосы частот, которые повторяются на fs, 2fs, 3fs и.т.д.

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

Цитата(Nukers @ Mar 24 2010, 18:06) *
По Смитту есть два способа фильтрации:
1) Во временной области: Это свертка сигнала с импульсной характеристикой фильтра (функцией окна, если построен оконный фильтр).
2) В частотной области: Это умножение частотных бинов, полученных после БПФ, на весовые коэффициенты окна (импульсной характеристики фильтра).

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

Цитата(Nukers @ Mar 24 2010, 18:06) *
Вопрос сейчас лишь в том, какой из этих способов не внесет лишних гармоник и почему? (Ссылки плиз, если есть).

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

Цитата(Nukers @ Mar 24 2010, 18:06) *
Как корректировать?

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


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


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
Nukers
сообщение Mar 24 2010, 17:35
Сообщение #25


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 8-12-09
Из: Новочебоксарск
Пользователь №: 54 124



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

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

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

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

Сообщение отредактировал Nukers - Mar 24 2010, 17:55
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Mar 24 2010, 17:47
Сообщение #26


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



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

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

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

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

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

Сообщение отредактировал TigerSHARC - Mar 24 2010, 17:53
Go to the top of the page
 
+Quote Post
Nukers
сообщение Mar 24 2010, 17:56
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 8-12-09
Из: Новочебоксарск
Пользователь №: 54 124



Согласен, ошибся. Поторопился. Теперь все вроде нормуль.
Пока точно не определился, что лучше - коррекция частотных бинов или повышение частоты дискретизации. Посмотрим по процессорному времени, там и решу.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Mar 24 2010, 18:01
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



теперь DRUID3 точно больше ничего не напишет))))
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Mar 24 2010, 18:05
Сообщение #29


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(TigerSHARC @ Mar 24 2010, 19:47) *
Сань, ну нахрена спектр умножать на окно?...

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

+1024...

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

Цитата(TigerSHARC @ Mar 24 2010, 19:47) *
...в матлабе можно смоделить фильтр бесселя...

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

Цитата(TigerSHARC @ Mar 24 2010, 19:47) *
для БПФ нужно предотвратить растекание

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

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

Цитата(TigerSHARC @ Mar 24 2010, 20:01) *
теперь DRUID3 точно больше ничего не напишет))))

biggrin.gif

Цитата(Nukers @ Mar 24 2010, 19:56) *
Пока точно не определился, что лучше - коррекция частотных бинов или повышение частоты дискретизации.

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


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Mar 24 2010, 18:12
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



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

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

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

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

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

Сообщение отредактировал TigerSHARC - Mar 24 2010, 18:14
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 17:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01532 секунд с 7
ELECTRONIX ©2004-2016