Страница 1 из 1

Реализация КИХ фильтра

Добавлено: 22 фев 2017, 11:12
7profy
На вашем сайте есть статья о расчете КИХ фильта: http://www.dsplib.ru/content/filters/fir/fir.html#r4. В конце есть пример расчета ФНЧ. Не могли бы вы уточнить как построена таблица "Значения реальной и мнимой частей комплексного коэффициента передачи" с практической точки зрения?

Вопрос 1. Если есть исходный сигнал с частотой дискретизации Fs = 22050 Гц что соответствует точке 2*Пи. Следовательно точка Пи = 11025 Гц. Следовательно частота среза 7*Пи/16 = 4823,4375 Гц?

Вопрос 2. Если пользователь сам хочет выбрать частоту среза ФНЧ (указанную в Герцах), то достаточно расчитать АЧХ от 0 до 7 элемента, а от 8 до 15 построить зеркально? В вышеуказанной таблице k15 = k1, k14=k2, ... k9 = k7. Тогда чему будет равен k8? Для ФНЧ очевидно = 0. А если это ФВЧ? А если это многополосный фильтр?

Re: Реализация КИХ фильтра

Добавлено: 23 фев 2017, 00:21
Бахурин Сергей
7profy писал(а):
22 фев 2017, 11:12
На вашем сайте есть статья о расчете КИХ фильта: http://www.dsplib.ru/content/filters/fir/fir.html#r4. В конце есть пример расчета ФНЧ. Не могли бы вы уточнить как построена таблица "Значения реальной и мнимой частей комплексного коэффициента передачи" с практической точки зрения?
Комплексный коэффициент передачи равен произведению реальной АЧХ которую вы задали и комплексной экспоненты с линейной ФЧХ, которую мы потребовали.
7profy писал(а):
22 фев 2017, 11:12
Вопрос 1. Если есть исходный сигнал с частотой дискретизации Fs = 22050 Гц что соответствует точке 2*Пи. Следовательно точка Пи = 11025 Гц. Следовательно частота среза 7*Пи/16 = 4823,4375 Гц?
да вроде так.
7profy писал(а):
22 фев 2017, 11:12
Вопрос 2. Если пользователь сам хочет выбрать частоту среза ФНЧ (указанную в Герцах), то достаточно расчитать АЧХ от 0 до 7 элемента, а от 8 до 15 построить зеркально? В вышеуказанной таблице k15 = k1, k14=k2, ... k9 = k7. Тогда чему будет равен k8? Для ФНЧ очевидно = 0. А если это ФВЧ? А если это многополосный фильтр?
Пользователь может задать произвольную АЧХ от нуля до pi. После чего ее надо отразить, правильно продискретизировать и добавить линейную ФЧХ.

Re: Реализация КИХ фильтра

Добавлено: 23 фев 2017, 08:37
7profy
Бахурин Сергей писал(а):
23 фев 2017, 00:21
правильно продискретизировать
Собственно в этом и вопрос. Посмотрим на вашу картинку Изображение
При четном количестве N=16 пользователь задает свою произвольную АЧХ для точек с 1 по 9 (т.е. до Пи включительно), а с 10 по 16 достраиваем автоматически зеркально относительно точки 9. Так?
Бахурин Сергей писал(а):
23 фев 2017, 00:21
коэффициент передачи равен произведению реальной АЧХ которую вы задали и комплексной экспоненты с линейной ФЧХ
Если после дискретизации АЧХ получили массив AFC[0..15] = (1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1).
Вычислили по формуле (13) ФЧХ и получили массив PFC[0..15] = (0.000, -2.945, -5.890, -8.836, -11.781, -14.726, -17.671, -20.617, 23.562, 20.617, 17.671, 14.726, 11.781, 8.836, 5.890, 2.945).
Что на что нужно умножить чтобы получить табличку как у вас?

PS. С праздником!

Re: Реализация КИХ фильтра

Добавлено: 23 фев 2017, 09:02
Бахурин Сергей
В соответствии с (15) массив ачх надо умножить на exp(j*phi(k)). Тогда реальная часть это |H(k)|·cos(phi(k)) а мнимая часть это |H(k)|·sin(phi(k)).

И вас с праздником

Re: Реализация КИХ фильтра

Добавлено: 23 фев 2017, 09:33
7profy
Бахурин Сергей писал(а):
23 фев 2017, 09:02
ачх надо умножить на exp(j*phi(k))
А что такое j, H(k) и phi(k)?

Re: Реализация КИХ фильтра

Добавлено: 23 фев 2017, 19:00
Бахурин Сергей
j это мнимая единица, H это ачх phi это фчх

Re: Реализация КИХ фильтра

Добавлено: 24 фев 2017, 11:21
7profy
Спасибо Вам огромнейшее! Пазл сложился в прекрасную картину - узкополосный эквалайзер заработал так как нужно!

Re: Реализация КИХ фильтра

Добавлено: 24 фев 2017, 11:41
Бахурин Сергей
Обращайтесь!