Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Цифровой узкополосный фильтр с динамически изменяемой центральной частотой
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
MSP430F
Всем доброго времени суток!
Коллеги, помогите, подскажите!

Вот такая поставлена задача. Необходимо разработать цифровой узкополосный фильтр с динамически изменяемой центральной частотой.
То есть, фильтр должен выделять из входного сигнала узкую (очень узкую) полосу сигнала, при этом значение центральной частоты фильтрации этого фильтра не фиксировано и может меняться во времени. БПФ с выделением узкой полосы и обратным БПФ не предлагать, так как необходима обработка в онлайн режиме. Какие есть (и есть ли вообще) алгоритмы для создания такого фильтра ?
andyp
Цитата(MSP430F @ Aug 8 2014, 16:23) *
Всем доброго времени суток!
Коллеги, помогите, подскажите!

Вот такая поставлена задача. Необходимо разработать цифровой узкополосный фильтр с динамически изменяемой центральной частотой.
То есть, фильтр должен выделять из входного сигнала узкую (очень узкую) полосу сигнала, при этом значение центральной частоты фильтрации этого фильтра не фиксировано и может меняться во времени. БПФ с выделением узкой полосы и обратным БПФ не предлагать, так как необходима обработка в онлайн режиме. Какие есть (и есть ли вообще) алгоритмы для создания такого фильтра ?


Да все как обычно - цифровой смеситель вниз-> фикс. ФНЧ-> смеситель вверх. Так будет дешевле, чем комплексный фильтр пересчитывать. Если фильтр ну очень узкополосный, то можно децимировать-интерполировать еще между смесителями.
des00
если ФЧХ не сильно критична, то ищите статью "Волновые полосовые перестраиваемые фильтры" "ОПТИМАЛЬНЫЕ УПРАВЛЯЕМЫЕ ВОЛНОВЫЕ ЦИФРОВЫЕ ФИЛЬТРЫ" авторы В .П .ЕРЕМЕЕВ , А.В . ЗИНЧЕНКО.
Самурай
Цитата(MSP430F @ Aug 8 2014, 15:23) *
Всем доброго времени суток!
Коллеги, помогите, подскажите!

Вот такая поставлена задача. Необходимо разработать цифровой узкополосный фильтр с динамически изменяемой центральной частотой.
То есть, фильтр должен выделять из входного сигнала узкую (очень узкую) полосу сигнала, при этом значение центральной частоты фильтрации этого фильтра не фиксировано и может меняться во времени. БПФ с выделением узкой полосы и обратным БПФ не предлагать, так как необходима обработка в онлайн режиме. Какие есть (и есть ли вообще) алгоритмы для создания такого фильтра ?


перенос сигнала в 0 -> фиксированный фильтр -> перенос сигнала взад

Гуглить Digital Upconversion/Downconversion.

Это самое простое. Если фильтр нужен ну оооочень узкополосный - делать через многоступенчатое понижение/повышение частоты, можно сильно выиграть по ресурсам.


П.С. Вот выше уже тоже самое говорятsm.gif
Fat Robot
См. прикрепленный файл. Там Example 2 стр. 5, только с угловыми градусами немного глупо написано

По сути проектируется цифровой эквивалент колебательного контура - звено второго порядка.

Это в предположении, что вам нужно оставить весь сигнал без определенной частоты, т.е. проектируется bandstop (notch) filter.

Если же вам нужен bandpass (peak) filter, то аналогично (см Example 1 в прикрепленном файле):



чем больше , тем выше добротность. Если добротность у вас фиксированная, то можно сделать так:



а потом опционально нормировать сигнал на выходе.

Цитата(MSP430F @ Aug 8 2014, 13:23) *
Необходимо разработать цифровой узкополосный фильтр с динамически изменяемой центральной частотой.
MSP430F
Fat Robot

Простите, я не понял. Может с english туго, может конец недели... А где же здесь динамическое изменение интересующей частоты выделения фильтра ?
Мне показалось, что в этом файле приведен просто расчет коэффициентов цифрового фильтра на некую фиксированную частоту...
Fat Robot
Встречный вопрос: что вам мешает проделать эти элементарные расчеты в тот момент, когда стала известна новая частота? Самая сложная операция в них - это вычисление косинуса.

Цитата(MSP430F @ Aug 8 2014, 15:29) *
Fat Robot

Простите, я не понял. Может с english туго, может конец недели... А где же здесь динамическое изменение интересующей частоты выделения фильтра ?
Мне показалось, что в этом файле приведен просто расчет коэффициентов цифрового фильтра на некую фиксированную частоту...
Serg76
MSP430F

Не заморачивайтесь, делайте в точности как советуют andyp и Самурай, так будет наиболее эффективно, особенно для реалтайма
Fat Robot
Веская аргументация.

Цитата(Serg76 @ Aug 8 2014, 16:06) *
Не заморачивайтесь, делайте в точности как советуют, так будет наиболее эффективно, особенно для реалтайма

ViKo
Как насчет алгоритма Герцеля?
Serg76
Цитата(Fat Robot @ Aug 8 2014, 18:22) *
Веская аргументация.

Ну, видимо, каждый раз рассчитывать полосовой фильтр - это гораздо "проще", нежели обычное гетеродинирование, пусть даже и двойное
BratherLU
Не знаю насколько узко Вам надо, а то может и такой вариант сгодится ->
http://www.dsplib.ru/content/allpasseq/allpasseq.html
Genadi Zawidowski
Я в аналогичной ситуации (приёмник с цифровой обработкй сигнала) на каждое изменение параметров фильтра с панели управления перерасчитываю набор коэффициентов FIR фильтра.
Содержимое линии задержки не меняется, подмена коэффициентов происходит мгновенно при приёме очередного sample. Артефактов, слышимых на слух, не обнаружено. Скажем так, при ранее использовавшемся алгоритме Уивера (NCO и смеситель-> два фильтра -> смеситель с NCO на выходе) на мой взгляд возможны артефакты на время прохождения сигнала через фильтр - в случае одновременного переключения NCO на входном DDC и выходном DUC.
Serg76
Цитата(Genadi Zawidowski @ Aug 8 2014, 19:44) *
Я в аналогичной ситуации (приёмник с цифровой обработкй сигнала) на каждое изменение параметров фильтра с панели управления перерасчитываю набор коэффициентов FIR фильтра.
Содержимое линии задержки не меняется, подмена коэффициентов происходит мгновенно при приёме очередного sample. Артефактов, слышимых на слух, не обнаружено. Скажем так, при ранее использовавшемся алгоритме Уивера (NCO и смеситель-> два фильтра -> смеситель с NCO на выходе) на мой взгляд возможны артефакты на время прохождения сигнала через фильтр - в случае одновременного переключения NCO на входном DDC и выходном DUC.

Вы же понимаете, что это все условно, сколько времени займет, к примеру, пересчет коэффициентов Вашего КИХ-фильтра 1000-го порядка и потянет ли это выбранная платформа? Может, все-таки, проще будет сделать пару каскадов ресамплера на тех же КИХ фильтрах, рассчитанных один раз и работающих на более низкой частоте дискрета?
MSP430F
Большое спасибо всем за советы!
Очень отзывчивый форум! Уже который раз форумчане реагируют на новую тему в тот же день! sm.gif
Благодарю!
thermit
тс, нормальные инженеры к вопросу прилагают требования к фильтру. тогда основная масса телепатов отсеется и вероятность получить правильный ответ возрастает катастрофически.
Genadi Zawidowski
Цитата(Serg76 @ Aug 8 2014, 22:05) *
Вы же понимаете, что это все условно, сколько времени займет, к примеру, пересчет коэффициентов Вашего КИХ-фильтра 1000-го порядка и потянет ли это выбранная платформа? Может, все-таки, проще будет сделать пару каскадов ресамплера на тех же КИХ фильтрах, рассчитанных один раз и работающих на более низкой частоте дискрета?

А что лучше - перерасчет фильтров и замедленная реакция на изменение параметра или артефакты в виде пропадания сигнала. Как обычно, ТЗ не полное.
Как один из вариантов - заранее рассчитать наборы на все требуемые частоты.
ps: недавно встретился с ТЗ, где хотели гальваническую развязку не указав параметры...
Serg76
Цитата(MSP430F @ Aug 8 2014, 21:07) *
Большое спасибо всем за советы!
Очень отзывчивый форум! Уже который раз форумчане реагируют на новую тему в тот же день! sm.gif
Благодарю!

Да не за что, просто народ здешний, похоже, "изголодался по свежанине" )))), но впредь, если хотите получить адекватный ответ на свой вопрос, - оперируйте конкретными числами, а то, действительно, так можно гадать до второго пришествия, не в обиду будет сказано.
petrov
Цитата(Genadi Zawidowski @ Aug 8 2014, 22:11) *
А что лучше - перерасчет фильтров и замедленная реакция на изменение параметра или артефакты в виде пропадания сигнала.


Это одно и то же, без разницы, что сигнал двигать, что ИХ ФНЧ прототипа.
Skryppy
Перестраиваемый фильтр можно сделать путем набора различных комбинаций коэффициентов фильтров(заранее посчитанных,например, в Матлаб и экспортированных в удобочитаемую для железа форму,т.е. *.coe файлов), при необходимости загружать нужную характеристику из массива. Для Xilinx есть готовая корка IP FIR Compiller в которой присутствует функция Reloadable coefficients.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.