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

Цифровой полосовой фильтр

Ну если Вы именно это и хотели сказать :biggrin: , то необходимость оверсампленга при применении окна вызывает большие сомнения. :lol:

Оу-у-у... Да у нас тут теоретики завелись... :biggrin: Ну ничего, еще пару лет посидите над практикой и поймете зачем при применении окна - оверсемплинг...

 

Да это у кого угодно так :lol::lol::lol:

Вобщем ответ такой же, как и на первую реплику... :biggrin:

 

P.S.: вот за это я и ненавижу Матлаб... :)

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


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

Оу-у-у... Да у нас тут теоретики завелись... :biggrin: Ну ничего, еще пару лет посидите над практикой и поймете зачем при применении окна - оверсемплинг...

Вобщем ответ такой же, как и на первую реплику... :biggrin:

 

P.S.: вот за это я и ненавижу Матлаб... :)

 

Ясно. Сказать, зачем нужен оверсамленг при применении окна, и как он уничтожает влияния окна на сигнал, Вы не можете. Аналогично и с мифическими преимуществми (кроме вычислительных) алгоритма Герцеля. Этого собственно следовало ожидать.

Ваша ссылка на 2-х годичную практику выжала у меня слезу. Скупую мужскую слезу. Я плачу, мой друг. Я плачу. :biggrin:

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


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

Задача такова. Требуется реализовать цифровой полосовой фильтр на 2000Гц с полосой 10Гц и максимально высоким затуханием и что интересно нужна фаза сигнала (но про это потом). Проц не сигнальный процесс фильтрации необязательно непрерывный. Раньше ЦОС не занимался на считая простеньких ФНЧ 2-го порядка. Надыбал алгоритм БПФ. Алгоритм БПФ позволяет использовать целочисленную математику что хорошо и при этом выделяет фазу сигнала. Господа специалисты а может это то что мне надо. Если да то может быть тогда для одной частоты есть упрощение алгоритма.

Не подскажите заодно сколько отсчетов надо выбрать и какую частоту дискретизации. Плз. Фазу то я по любому думаю вытащу. Но с обычным фильтром траблы с непрерывной фильтрацией или с переходными процессами после подключения. Может кто уже нечто подобное реализовывал. Спасибо.

одночастное ДПФ Вам мало поможет, точнее никак не поможет.

Сделайте FIR с децимацией. Т.е примерно так: Частота дискретизации скажем 6000 Гц, синтезируете полосовой fir на 2000Гц с полосой 10Гц с требуемым затуханием(он получится весьма длинный но это ничего :)) . Выход фильтра децимируете в 100 раз и получаете ваш сигнал снесенный на частоту rem( 2000, 6010/100)=20 Гц и какбы оцифрованный с частотой 60 Гц . Выход фильтра нужно рассчитывать один раз на 100 входных отсчетов в этом и есть экономия :).

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


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

alex_os>Сделайте FIR с децимацией. Т.е примерно так: Частота дискретизации скажем 6000 Гц, синтезируете полосовой fir на 2000Гц с полосой 10Гц с требуемым затуханием(он получится весьма длинный но это ничего

 

более эффективным тогда уж будет комплексное гетеродинирование (2KHz) с последующей многоступенчатой децимацией - это выгоднее , чем один длинный полосовой фильтр.....

имхо

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


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

alex_os>Сделайте FIR с децимацией. Т.е примерно так: Частота дискретизации скажем 6000 Гц, синтезируете полосовой fir на 2000Гц с полосой 10Гц с требуемым затуханием(он получится весьма длинный но это ничего

 

более эффективным тогда уж будет комплексное гетеродинирование (2KHz) с последующей многоступенчатой децимацией - это выгоднее , чем один длинный полосовой фильтр.....

имхо

Почему Вы думаете , что многоступенчатая децимация будет эффективнее? Ну разве что памяти может меньше потребуется...

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


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

Не знаю пока что такое алгоритм Герцеля и в чем его суть так что пока склоняюсь все таки к ДПФ так как он дает сразу и амплитуду и фазу сигнала. А в чем суть комплексного гетеродина на пальцах можно объяснить? С обычным цифровым полосовым фильтром наверное придется отклонить так как его необходимо непрерывно крутить что достаточно накладно ударит по ресурсам проца. Ладно скоро придет комплектация будем пробывать. А вообще то пора в отпуск!!! Всем откликнувшимся спасибо.

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


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

alex_os>Почему Вы думаете , что многоступенчатая децимация будет эффективнее? Ну разве что памяти может меньше потребуется...

 

потому, что тут надо выполнить две одинаковые (Re и Im) фнч фильтрации - фильтр получается проще и думаю точнее ....

и при многоступенчатой децимации мы имеем и постепенное понижение частоты квантования и сл-но на входной,самой высокой, работает самый короткий фильтр и т.далее с понижением частоты длина фильтра увеличивается...

либо децимацию можно выполнить при помощи CIC фильтров , что является особенно эффективным методом для целочисленной арифметики (и не только)...

 

e-tarasov>А в чем суть комплексного гетеродина на пальцах можно объяснить?

умножаем вход на sin и cos 2kHz а потом фильтруем оба канала одинаковыми фнч и децимируем ....

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


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

e-tarasov>А в чем суть комплексного гетеродина на пальцах можно объяснить?

умножаем вход на sin и cos 2kHz а потом фильтруем оба канала одинаковыми фнч и децимируем ....

 

Модуляция-децимация-демодуляция рассматривается просто как особо эффективный способ полосовой фильтрации. Тут статейка

Multi-rate filter design

У этой MDS раньше продавалась программка, которая писала такие фльтры на С.

Теперь её с сайта убрали (или переименовали), но при желании, наверно можно в сети найти. Понятно, что за так :-)

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


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

потому, что тут надо выполнить две одинаковые (Re и Im) фнч фильтрации - фильтр получается проще и думаю точнее ....

и при многоступенчатой децимации мы имеем и постепенное понижение частоты квантования и сл-но на входной,самой высокой, работает самый короткий фильтр и т.далее с понижением частоты длина фильтра увеличивается...

Так у Вас получается два фильтра и следовательно затраты на него в двое больше по сравнения с вещественным полосовым фильтром. Далее рискну предположить что при заданном уровне наложений при децимации, длина FIR (L), пропорциональная требуемому коэф. децимации N, т.е. усреденные выч. затраты на fir дециматор будут: С =L/N=k*N/N = k, т.е. не зависят от коэф. децимации (имеется ввиду фир в общем виде не CIC, не halfband).

 

зы: бесспорно самая не затратная структура при узколосной фильтрации-децимации это перенос на нулевую частоту и далее CIC + FIR.

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


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

мне необходимо было сделать полосовой БИХ-фильтр для 14КГц... в Матлабе получил коэффициенты из следующего

[n14,Wn14]=cheb1ord(Wp14,Ws14,Rp,Rs); [b14,a14]=cheby1(n14,Rp,Wn14) ;

Wp14=[12000 16000]/Fn; Ws14=[11000 17000]/Fn; Rp=1; Rs = 19; Fn=64000;

 

и в самом Матлабе на графиках видно, что всё фильтруется... потом была поставлена задача всё это повторить на С++.... прогу написал, но функция фильтрации не фильтрует как надо... я вбил коэффициенты в fdatool в Импорте фильтра и она мне показала совсем другой фильтр, а точнее ерунду какую-то.... програмка Ciirf1.0 выдала мне другие коэффициенты, но с ними тоже не работает... я думаю, что дело в формуле... видел я два варианта: разность полиномов (BiXi-AiYi) и деление полинома BiXi на AiYi .... причем разные источники меняют местами A и B... уже совсем запутался в этом... помогите разобраться...

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


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

Загляните в хелп матлаба - Help -> Full Product Family Help -> во вкладке index наберите Direct Form - по первой же ссылке увидите схему реализации алгоритма БИХ фильтрации в прямой форме 1 (Direct Form 1) - там очень хорошо все разрисовано без формул практически

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


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

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

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


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

Ясно. Сказать, зачем нужен оверсамленг при применении окна, и как он уничтожает влияния окна на сигнал, Вы не можете. Аналогично и с мифическими преимуществми (кроме вычислительных) алгоритма Герцеля. Этого собственно следовало ожидать.

Ваша ссылка на 2-х годичную практику выжала у меня слезу. Скупую мужскую слезу. Я плачу, мой друг. Я плачу. :biggrin:

:biggrin: Про метод перекрывающихся окон слышали? Чтобы сохранить АЧХ частотного отсчета при использовании окна, но убрать его влияние на непрерывную амплитудную последовательность отсчетов и применяют оверсемплинг...

 

Герцель на основе FIFO. А БПФ на основе окна. Нельзя сказать что это преимущества или недостатки, но в природе вообще есть только особенности... :)

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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