Цифровые нерекурсивные фильтры. Часть 1.

Обобщив не очень приятный опыт написания статей, посвящённых рекурсивным фильтрам, решил всё же обратиться к теме нерекурсивных, или КИХ (FIR) фильтров.
Можно считать, что этот цикл статей написан в качестве моральной компенсации тем, кто ничего не понял в моих предыдущих статьях, посвященным БИХ — фильтрам… :-)
Сразу предупреждаю, что знания основ матана, ТФКП, линейной алгебры и ТОЭ по-прежнему обязательны!

КИХ — фильтры являются частным случаем БИХ фильтров. Рассмотрим рекуррентную формулу БИХ — фильтра:

Если мы подставим в эту формулу A0=1, а остальные значения коэффициентов Ai=0, получим формулу КИХ -фильтра.
X[i] — значения выборок на входе фильтра, Y[i] — значения отфильтрованного сигнала, N — порядок фильтра.
Таким образом КИХ- фильтр использует только текущее и предыдущие значения входного сигнала. Значения отфильтрованного сигнала не используются! Кстати, из-за этого КИХ- фильтр всегда устойчив.
КИХ — фильтры имеют не очень хорошие характеристики по подавлению, зато (в случае симметричных коэффициентов) имеют линейную ФЧХ, что в ряде приложений просто необходимо.
Простейшим типом КИХ- фильтра является фильтр скользящего среднего.
где Bi=1/(N+1), или:
Фильтр скользящего среднего — это простейший ФНЧ. Значение N будет определять частоту среза фильтра (чем больше N, тем меньше частота среза).
Передаточная характеристика БИХ — фильтра в z- области имеет вид:

Соответственно, для КИХ- фильтра:
Знание передаточной характеристики H(z) понадобится нам для построения АЧХ и ФЧХ полученных фильтров, а для того, чтобы посмотреть, как выглядит соответствующий аналоговый фильтр — понадобится характеристика H(S). Итак, если при проектировании БИХ фильтров мы сначала получали аналоговую характеристику H(S), переходили в z- область и по полученной характеристике H(z) выводили рекуррентную формулу, то сейчас «мы пойдём другим путём» (с).
Пусть задана формула ФНЧ скользящего среднего 1-го порядка: Y[n]=(X[n]+X[n-1])/2
(формула 2-го порядка Y[n]=(X[n]+X[n-1]+X[n-2])/3; 3-го порядка Y[n]=(X[n]+X[n-1]+X[n-2]+X[n-3])/4 и т.д.)
Легко увидеть, что для ФНЧ 1-го порядка B0=B1=1/2 и окончательно для H(z):

Если мы воспользуемся представлением H(z) в более общем виде (для БИХ- фильтров), то получим следующие значения коэффициентов Ai, Bi:
Это более удобно, так как позволяет пользоваться для расчёта АЧХ и ФЧХ одной и той же программой (для БИХ фильтров).
Программа расчёта (FORTRAN):
Subroutine ZT(HZ,z,A,B,N)
!А,В массивы коэффициентов размерностью N+1, N - порядок фильтра
!HZ - Комплексное значение H(z), z -аргумент 
complex*16 z,zz,Z1,Z2, HZ, H0
real*8, dimension (40) :: A,B
integer*4 i,N
H0=dcmplx(1.0,0.0)
Z1=dcmplx(B(1),0.0)
Z2=dcmplx(A(1),0.0)
zz=z*H0
do i=2,N+1
Z1=Z1+B(i)*zz
Z2=Z2+A(i)*zz
zz=zz*z	
end do
HZ=Z1/Z2
return 
end

Предупреждение! Индексы массивов в Фортране начинаются с 1!
Примечание. Был бы весьма признателен тому, кто эту подпрограмму переведёт на Си, ну и для полного счастья несчастных студентов напишет вспомогательные подпрограммы ввода значений коэффициентов из текстового файла, ну и соответственно вывод результатов в текстовый файл. Массивы значений можно потом легко Excelем подхватить и построить симпатичные графики. Я лично так и делаю… :-)
Вот АЧХ ФНЧ скользящего среднего для различных порядков фильтра. N=1 соответствует усреднению по двум точкам, N=2 — по трём точкам и т.д.

Частота — относительная (делённая на частоту Найквиста).

Теперь перейдём от H(z) к H(S), т.е. к аналоговому фильтру.
Внимание! Слабонервным эту часть статьи желательно пропустить!
Из статьи известен переход от коэффициентов H(S) к коэффициентам H(z) с помощью матриц z- преобразования.В матричной форме записи эти выражения имеют вид:

Аналогично и при переходе от коэффициентов H(z) к коэффициентам H(S):

Примечание. Для получения обратной матрицы z- преобразования ФНЧ достаточно поменять местами строки и столбцы исходной матрицы и умножить на коэффициент 1/(2^N). Обратная матрица z- преобразования ФВЧ равна исходной матрице (умноженной на такой же коэффициент)!
Итак для фильтра скользящего среднего 1 порядка:



Или окончательно:
Чтобы осознать, что же мы в конце концов получили, придётся приложить неимоверные интеллектуальные усилия и вспомнить ТОЭ (теоретические основы электротехники).
Рассмотрим вот такую схему:Uвых=Uвх/Z (-j/wC), где Z=R-j(1/wC). Перепишем выражение в виде: Uвых/Uвх=1/(jwRC+1). Таким образом, полученная нами передаточная характеристика фильтра скользящего среднего 1-го порядка — это элементарная RC — цепь при значениях RC=1!
Как и для БИХ- фильтров переход от ФНЧ к ФВЧ — элементарен. Достаточно всего одной таблэтки поменять знаки нечётных коэффициентов.
Формула ФВЧ 5 порядка: Y[n]=(X[n]-X[n-1]+X[n-2]-X[n-3]+X[n-4]-X[n-5])/6
АЧХ такого фильтра:
Соответственно, чем больше порядок фильтра N, тем больше частота среза фильтра.

Приложение. Другие типы фильтры скользящего среднего. Треугольник Паскаля.

КИХ — фильтр можно построить на биномиальных коэффициентах, которые последовательно могут быть определены из так называемого треугольника Паскаля:

Каждый коэффициент образуется путём сложения двух стоящих над ним (слева и справа). Крайние значения для любого N равны 1. Еще один способ определение биномиальных коэффициентов — прямое вычисление (1+x)^N
Обращаю Ваше внимание, что элементы треугольника Паскаля — входят в матрицы z- преобразования.
Из элементов треугольника Паскаля можно создать КИХ- фильтр:

Для примера приведу АЧХ такого фильтра 15 порядка:
Коэффициенты можно непосредственно взять из крайнего правого столбца матрицы z- преобразования ФНЧ 15-го порядка.
Если коэффициенты треугольника Паскаля являются коэффициентами характеристики H(S), то такой фильтр при переходе к цифровому всегда будет КИХ- фильтром. Пример для ФНЧ 3-го порядка:

Соответствующая передаточная характеристика в z- области:


Продолжение следует…
  • +8
  • 28 июня 2015, 14:54
  • Santik

Комментарии (73)

RSS свернуть / развернуть
Простейшим типом КИХ- фильтра является фильтр скользящего среднего
Кстати было бы сказать, что АЧХ такого фильтра имеет вид sin(x)/x.
Да, а табуированная лексика — это чтобы заинтересовать?
0
Ну зачем же сразу так асинусов пугать синусом, тем более кардинальным… :-) Картинки АЧХ я всё равно привожу. Табуированная лексика — в основном из отзывов благодарных читателей на мои предыдущие статьи. Уж не обессудьте.
0
передаточная характеристика фильтра скользящего среднего 1-го порядка — это элементарная RC — цепь при значениях RC=1
Что-то не так. Там монотонная функция, а sin(x)/x — не монотонная.
0
Модуль от кардинального синуса :-)
0
Модуль от кардинального синуса
«Модуль от»? Модуль sin(x)/x — тоже не монотонная функция.
0
А, Вы именно про фильтр 1 порядка? Потому что более высокие порядки — как раз модуль кардинального синуса. Я думаю, что это из-за того, что фильтр цифровой. И он не может через Найквиста перескочить.
0
Я про RC фильтр и про скользящее среднее.
У RC фильтра монотонная АЧХ. У скользящего среднего АЧХ вида sin(x)/x.
И почему модуль? Мне пока не нужна мощность.
А даже если модуль, то монотонность одной и немонотонность другой функции так и не стыкуются.
0
sin(x)/x может ведь принимать и отрицательные значения. Так что AЧХ скользящего среднего всегда вида |sin(x)/x|, т.е. всегда >=0.
Да, у RC фильтра монотонная АЧХ. Но это аналоговый фильтр, а «скользящее среднее» — цифровой. Невозможно добиться полной аналогии между цифровым и аналоговым фильтром хотя бы потому, что частота цифрового фильтра всегда ограничена частотой Найквиста.
0
К тому же RC-цепочка это БИХ, а скользящее среднее — КИХ. Для RC-цепочки есть цифровой аналог, но это не скользящее среднее.
+1
Да, RC- цепочка это в общем случае БИХ. В частном случае (RC=1) это КИХ.
0
Какие физические явления (законы, принципы) будут способствовать превращению RC фильтра в КИХ при некоторых частных значениях R и C?
0
По крайней мере, спаять такую цепочку не получится. Т.к. у любой физической цепочки отклик на ступеньку — экспонента.
А если выставить частоту среза больше Fs/2, в отклике вообще появляется «звон». Ясно, что никакая пассивная RC-цепочка дать такого отклика не сможет.



0
выставить частоту среза больше Fs/2
Больше Fs/4, разумеется.
0
А что на последней картинки за значения коэффициентов? У фильтра Баттерворта 1 порядка на частоте =0.5 Найквиста должно быть 1;1 и 2;0 — и именно там он и становится КИХ. Как только коэффициент а1 перестает быть нулевым — фильтр становится БИХ.
0
Картинка демонстриует ситуацию для частоты > 0.5 (скажем, 0.7). Это уже совсем на физическую RC не похоже. В отклике видны колебания.
0
То есть Вы утверждаете, что БИХ- фильтр неудовлетворительно описывает RC- цепочку?
0
Наоборот. Не любому БИХ-фильтру первого порядка можно поставить в соответствие RC-цепочку.
0
Вот это не очень понятно. Что значит «не любому»? В смысле фильтру Баттерворта нельзя, а какому-то другому типу можно? Или имеются ввиду, что при частоте такой-то фильтру Баттерворта уже нельзя поставить в соответствие RC- цепочку?
Или может Вы приведёте пример БИХ фильтра 1 порядка, чтобы все вопросы снять?
0
Я же и привёл на картинках. БИХ-фильтр Баттерворта 1 порядка, частота среза 0.7 Найквиста.
Коэффициенты: b0=1, b1=1, a0=1.51, a1=0.49.
Баттерворт 1 порядка — это RC цепочка? Но у приведённого фильтра отклик на ступеньку к отклику RC-цепочки и не близко, т.к. в нём присутствуют колебания.
0
А насколько этично на вход цифрового фильтра подавать «ступеньку» — т.е. сигнал со спектром значительно превышающим частоту Найквиста?
+1
Понял свою ошибку:-[ Спасибо.
+1
Но вопрос то изначальный был о возможности превращения БИХ 1 порядка в КИХ на частоте среза 0.5 Найквиста.
Вот EW1UA довольно категоричен в этом вопросе:
«Скользящее среднее не является аналогом RC цепи ни при каких порядках, частотах и значениях R и C.»
Хотя, ссылаясь на Костантинидиса, утверждает, что RC — это БИХ 1 порядка.
0
Меня изначально смущало отличие откликов цифрового и аналогового фильтров на ступеньку. А про спектр ступеньки и наложение алиасов я не подумал. Теперь вроде понятно как БИХ превращается в КИХ.
0
Я уже где-то говорил, что для Баттерворта 2 порядка КИХ не удаётся получить! Так, что, вероятно, я и пример привёл не самый лучший.
Как Вы считаете, эту тему нужно подробнее в статьях обсудить? В принципе вроде никакого практического применения эти свойства БИХ/КИХ не находят.
Так, для «общего понимания» вопроса.
0
Общее понимание никогда лишним не будет, правда в любом случае чтобы понять статьи нужно быть сильно в теме.
0
Да что вы такое говорите? Как это «неэтично» подавать ступеньку? Не только этично, но и полезно и нужно. И не только H-функцию Хевисайда, но даже δ-функцию Дирака.
Дело в том, что на вход цифрового фильтра подаётся не реальная ступенька, содержащая неограниченный спектр, а её дискретизированная модель, представляющая последовательность отсчётов
]..., 0, 0, 0, 1, 1, 1, ...[.
Такая модель уже не содержит частот более половины частоты дискретизации. Эта модель совпадает с реальной ступенькой точечно, совпадает в каждом своём дискретном отсчёте, но не определяет данных между отсчётами.
Если мы восстановим сигнал по этой модели при помощи интерполирующей функции sinc(x), то получим аналоговый сигнал также точечно совпадающий с идеальной ступенькой. А вот в промежутках будем иметь колебания, свойственные усечённому ряду Фурье (интегралу Фурье для непериодических сигналов).
Усечённые ряды Фурье, явление Гиббса
Иллюстрация к усечённым рядам Фурье периодической функции и явлению Гиббса.
0
Дело в том, что на вход цифрового фильтра подаётся не реальная ступенька, содержащая неограниченный спектр, а её дискретизированная модель, представляющая последовательность отсчётов
]..., 0, 0, 0, 1, 1, 1, ...[.
Такая модель уже не содержит частот более половины частоты дискретизации.
Да любая модель «уже не содержит частот более половины частоты дискретизации». Даже если такие частоты существуют в исходном сигнале!
«Ты видишь суслика? частоты больше Найквиста? А он они существуют!»(с)
Так что «ступенька», подаваемая на вход цифрового фильтра должна иметь такой вид, как будто она уже отфильтрована: ]..., 0, -0.1, -0.2, 1.2, 0.9, 1,1,1,1 ...[ (ну это приблизительно конечно).
И это только пункт 1 в задаче «как посмотреть характеристики цифрового фильтра». В дальнейшем я предлагаю дискуссию по этому вопросу перенести в форум в отдельную тему — или воспользоваться моей темой по рекурсивным фильтрам!
0
Так что «ступенька», подаваемая на вход цифрового фильтра должна иметь такой вид, как будто она уже отфильтрована
Можно ли узнать, откуда вы это взяли? Как по мне, так любая последовательность чисел на входе цифрового фильтра является легальной.
предлагаю дискуссию по этому вопросу перенести
По моему мнению, статью удобнее обсуждать там, где она написана, а не в другой теме.
Вы можете запретить комментирование, если не согласны.
0
Если предположить, что на входе АЦП стоит хороший фильтр — я согласен: " любая последовательность чисел на входе цифрового фильтра является легальной". Но как я понял Вы же этого не предполагаете ???
«Вы можете запретить комментирование, если не согласны.»- послать всех на… Это не наш метод. На самом деле Вы же серьёзные вопросы поднимаете, и не факт что я прав по всем позициям! Но в форуме у меня больше возможностей более аргументировано доказать свою правоту(или признать свои ошибки) в данном вопросе. Что мне здесь не нравится — невозможность редактирования — любую формулу поправить — новый пост приходится писать. Картинки не влезают полностью — в отличие от форума. Я уже не говорю о том, что следить за ответами — тяжело. Наша дискуссия уже в середине где-то…
0
Для слежения за ответами тут есть свои средства. Например, уведомления на почту, «прямой эфир» и вооон та кнопочка «обновить» справа. Если кликать на цифру под ней, то будет перекидывать на следующее новое сообщение.
К тому же, здесь дерево и можно отследить кто, кому и на что отвечает (стрелочка вверх под сообщением).
Остается только невозможность редактирования — это иногда мешает, согласен.
0
«ступенька», подаваемая на вход цифрового фильтра должна иметь такой вид, как будто она уже отфильтрована
Пропустив функцию Хевисайда через идеальный ФНЧ, мы получим такую же функцию, что и после восстановления с интерполяцией последовательности
]..., 0, 0, 0, 1, 1, 1, ...[.
Такая функция будет иметь вид свёртки sinc(x)*H(x).
А именно, это будет функция вида интегральный синус
Разница между H(x) и Si(x) — это и есть цена невозможности восстановления нефильтрованной функции, содержащей частоты более Чд/2.
Спектр этой разницы должен равняться спектру отрезанных высокочастотных полос.
Функцию Хевисайда вообще невозможно точно передать дискретными отсчётами, как и любую функцию с неограниченным спектром.
Поэтому, если нам нужно точно восстановить исходную функцию, то фильтрация необходима перед дискретизацией — аналоговая или аналитически-математическая.
Что же касается фильтрации уже дискретных отсчётов, то именно это и является задачей любых рассматриваемых цифровых фильтров. Это вы лишнее придумали — цифровой предфильтр перед цифровым фильтром, чтобы на него, не дай бог, не попали какие-то «не такие» отсчёты. По-вашему, какой пред-пред-фильтр будет фильтровать перед предфильтром? А перед ним кто?
0
Ф-ция Хевисайда и сигнум
Синус интегральный
Ronald N. Bracewell, The Fourier Transform and Its Applications. 3rd Ed. 2000. P. 580, 583.
0
Пропустив функцию Хевисайда через идеальный ФНЧ
Нам в данном случае идеальны фильтр не нужен.
А именно, это будет функция вида интегральный синус
Вы предполагаете, что я не знаю, что это такое (раз ссылку дали) ??? :-)
Функцию Хевисайда вообще невозможно точно передать дискретными отсчётами, как и любую функцию с неограниченным спектром.
Поэтому, если нам нужно точно восстановить исходную функцию, то фильтрация необходима перед дискретизацией — аналоговая или аналитически-математическая.
Здесь согласен на 116 % :-)
По-вашему, какой пред-пред-фильтр будет фильтровать перед предфильтром? А перед ним кто?
Согласен! А перед пред — пред -фильтром ещё один пред-фильтр должен стоять тогда и т.д. Но опять — это если Вы предполагаете, что перед АЦП ничего не стоит!
0
Я уже не говорю о том, что следить за ответами — тяжело.
Как раз таки легче, как мне кажется, потому что здесь комментарии в виде дерева.
Если предположить, что на входе АЦП стоит хороший фильтр — я согласен: " любая последовательность чисел на входе цифрового фильтра является легальной". Но как я понял Вы же этого не предполагаете ???
Нет, я не предполагаю ни АЦП, ни фильтра перед АЦП. И вы в цикле статей не упоминали ни АЦП, ни фильтров перед ним. И квантование по амплитуде не упоминали. Все расчёты аналитические, с абсолютной точностью. А на входе цифровых фильтров чистая дискретная численная последовательность. Если и есть некоторое устройство, то это только дискретизатор с идеальной импульсной характеристикой. И в этом случае любая численная последовательность является легальной. В том числе и последовательность
]..., 0, 0, 0, 1, 1, 1, ...[.
Что касается моего предыдущего сообщения, то есть у меня там сомнения по поводу потерянных высокочастотных «хвостов», надо бы перепроверить.
0
Ну, я так понял, что мы почти друг-друга почти поняли… (хотя и не согласились :-) Как бы это всё донести «до конечного пользователя»?
0
Зачем «доводить»?, умеющие читать да прочитают.
0
Зачем «доводить»?, умеющие читать да прочитают.
А вот я пессимист… Не надеюсь! Очень жалею, что про деформацию частотной шкалы при переходе к цифровому фильтру как-то «вскользь» упомянул. А это принципиальный вопрос! Я ожидал, что меня «пинать» будут только из-за этого… Но тишина пока… (Или ещё не вечер???) :-)
0
Если уж быть пессимистом, то как ни доводи, всё равно язык воинских уставов не превзойдёшь.
0
А меня, как пенсионера, с воинского учёта сняли давно! -:)
0
Хорошо, я согласен с вами.
Следовательно, в статье ошибка, как я уже обращал внимание.
0
Я уже несколько запутался в комментариях. Ошибка где? В том что у меня АЧХ принципиально не принимает отрицательных значений???
0
Здесь:
Таким образом, полученная нами передаточная характеристика фильтра скользящего среднего 1-го порядка — это элементарная RC — цепь при значениях RC=1!
Скользящее среднее не является аналогом RC цепи ни при каких порядках, частотах и значениях R и C.
-1
Система RC или LR первого порядка рассмотрена в книге Богнера и Константинидиса «Введение в цифровую фильтрацию» на с. 10-11. Это БИХ фильтр.
0
Я пока не могу с Вами согласиться.
Да в общем случае RC цепочка это БИХ фильтр1 порядка. Почему-то сложилось понимание, что БИХ и КИХ кардинально различаются. Я пытаюсь доказать, что это не так. КИХ фильтры — это частные случаи БИХ фильтров. И в общем то ничего удивительного, что при определённых условиях БИХ — фильтр стал КИХ. Ещё раз обращаю внимание — это справедливо только для случая RC=1
0
справедливо только для случая RC=1
Прошу прощения, что спрашиваю, какой физический смысл вы вкладываете в выражение «RC=1»?
0
При RC=1 H(S)=1/(S+1) Перейдём в z-область: S=(1-z^{-1})/(1+z^{-1})
H(z)=(1-z^{-1})/(1-z^{-1}+ 1+z^{-1})=(1-z^{-1})/2 — а это, как вы сами можете видеть, КИХ — фильтр
Вот пример, как КИХом становиться ФНЧ Баттерворта 1 порядка!:
Коэффициент А0=1, А1=0 (практически) — так что это КИХ 1 порядка.
0
Я пока никакого смысла физического не вкладываю, но мне кажется, что он есть! Вот смотрите какая интересная ситуация: Наиболее эффективные (с точки зрения числа операций) фильтры Баттерворта — с частотой среза равной половине частоты Найквиста! Все нечётные коэффициенты Ai при этом равны 0.
Поэтому я нисколько не удивился, что у меня в фильтре 1 порядка обнулился А1 и БИХ стал КИХом! А Баттерворт 1 порядка — это RC — цепочка! Ниже есть картинка ФНЧ Баттерворта 1 порядка.
0
У этих двух фильтров разные импульсные характеристики и разные переходные характеристики. ИХ RC цепочки никогда не дойдёт до нуля, ПХ никогда не дойдёт до единицы.
И у RC цепочки ни на каких частотах АЧХ не доходит до нуля, как у усредняющеко фильтра на графике.
0
Для RC-цепочки есть цифровой аналог, но это не скользящее среднее.
Этот БИХ фильтр рассмотрен в книге Богнера и Константинидиса «Введение в цифровую фильтрацию» на с. 9-11.
digteh.ru/LIB/Bogner/GigFiltr.djvu
0
Я конечно могу проконсультироваться по этому вопросу у Константинидиса лично. Но думаю, что этот вопрос вроде решён. БИХ 1-го порядка на частоте среза=0.5 Найквиста превращается в КИХ. Коэффициенты В[1;1] A[2;0]
0
Но думаю, что этот вопрос вроде решён.
Для вас вопрос решён, а я так пока и не убедился ни в наличии, ни в отсутствии ошибки в ваших выкладках.
0
И еще, RC- цепочка описывает только фильтр скользящего среднего 1 порядка, т.е. случай Y[n]=(X[n]+X[n-1)/2
0
И в этом частном случае АЧХ скользящего среднего будет не монотонной, и не будет соответствовать АЧХ RC-фильтра первого порядка.
0
Еще раз привожу картинку
Синяя кривая — фильтр скользящего среднего 1 порядка.
И она монотонно спадает с ростом частоты. До частоты Найквиста.
0
Да, в самом деле; а после частоты Найквиста АЧХ будет зеркально отображаться, а не продолжаться по формуле sin(x)/x.
0
Ну это у всех цифровых фильтров так будет, хоть КИХ, хоть БИХ.
Интересно, что вот БИХ Баттерврота 2 порядка в КИХ не переходит ни при каких условиях. Если это актуально, я могу RLC фильтр в статью добавить.
А про sin(x)/x я специально в Части 1 не упоминал, т.к. в Части 2 — кардинальный синус — во всей красе :-)
0
частота цифрового фильтра всегда ограничена частотой Найквиста
Что же, за частотой Найквиста жизни нет?
Невозможно добиться полной аналогии между цифровым и аналоговым фильтром
Характеристики должны совпадать в сетке точек, как в частотной области, так и во временно́й.
AЧХ скользящего среднего всегда вида |sin(x)/x|, т.е. всегда >=0
Модуль здесь не нужен, интересует амплитудно-частотная характеристика, а не коэффициент передачи мощности. Отклик скользящего среднего может принимать и отрицательные значения, то есть быть в противофазе ко входному сигналу.
sin(x)/x может ведь принимать и отрицательные значения
Вот-вот, АЧХ может заходить в область отрицательных значений.
-1
Да, можно сказать, что разумной жизни за частотой Найквиста нет!
У нас какие-то разногласия в определении АЧХ. АЧХ всегда положительна! АЧХ=(Re{H(z)}^2+Im{H(z)}^2)^0.5
AЧХ = arctg(Im{H(z)}/Re{H(z)}
0
О. Ошибся ФЧХ= arctg(Im{H(z)}/Re{H(z)}
0
разумной жизни за частотой Найквиста нет
Она есть и называется или aliases в нежелательных случаях или undersampling в преднамеренно используемых случаях.
АЧХ всегда положительна
Ладно, если вы по определению принимаете АЧХ как модуль некоторой комплекснозначной функции от частоты, то придётся смириться с таким определением.
А если мы возьмём серию чисел на входе, будем усреднять их и получим серию чисел на выходе? Ведь возможен отклик в противофазе. Вам знак не интересен? Мне интересен.
0
Для фазы есть ФЧХ. Иногда, правда, рисуют для наглядности отрицательную область АЧХ, но это не очень корректно (хотя бы потому что фаза может быть не только 0 или 180).
0
Я согласен с вами по всем пунктам.
Лично на мой вкус, предпочтительнее иметь график и с отрицательными значениями, но я не настаиваю. :-)
0
И все же про заинтересовать. Автор обычно знает материал от и до, а потому в пояснении «а для чего» не нуждается. В то время как читатель может быть не в теме вообще, или материал у него еле-еле резонирует с остатками университетского курса (последнее это я про себя).
А потому даже в солидных (в смысле реферируемых) журналах требуют во вступлении уделить 1-2 абзаца для общего описания проблемы или задачи. Ну а на подобных ресурсах и во все не грешно на пальцах пояснить.
Ну в самом деле Santik, вы же не для праздного интереса фильтры разбираете, приведите пример из жизни. И если про КИХ (лично мне) особых пояснений не нужно, то тот же цикл статей про БИХ не плохо бы начать как:
1. Есть такая то проблема(хитрый сигнал, кстати на форуме выложили, а в статье?!).
2. Попробовали то-то (теже КИХ, аналог или еще чего для примера) — мол видите не очень…
3. А вот если хотите лучше, то читайте статью, и еще мозги матаном придется напрячь.
PS Это я не от занудства, самого в подобные аспекты тыкали, а оно да напряжно.
0
Да я совершенно с Вами согласен. Сказывается отсутствие опыта и практики написания подобных статей. Про БИХ-фильтры я вообще в форуме пытался рассказать. Хорошо, что меня вовремя остановили и направили в Сообшество :-) Поэтому (особенно часть 1) статьи получились довольно «скомканными» на мой взгляд. Я понимаю, что можно было доходчивее написать…
0
Я против ненормативной лексии
+1
Ну если еще один голос наберётся против — удалю при передаче в раздел «Коллективные» :-)
0
Если это — одно слово, при чём процитированное с комментариев, то считайте, что не автор ругается.
0
Я против ненормативной лексики
Но это же новомоднейший тренд (в том числе вместе со всем остальным) в новейших образовательных технологиях от «быдла» выскочек (ну это с точки зрения академической науки и олдскульной/элитной части инженерного корпуса) для «дебилов»/недоучившихся/обленившихся/любителей.
-2
О, значит я в тренде?
0
Спасибо за статьи. Пишите еще! ))
0
Мне кажется все равно, тут больше матана, чем программирования. Мне, как не математику, трудновато.
Недавно ковырял начальный DSP, у него фильтр sin(x)/x всего 2 строчки кода, а если дробить на атомарные оперции, то 4 или 5. И все более менее понятно.
0
КИХ фильтр вида sin(x)/x описан во второй части статьи. И опять с матана начинается :-). Но получаемые в результате формулы фильтра настолько просты, что я даже примеры программ не стал приводить. Это пример того, что бывают случаи, когда математика предмета довольно сложная, а в результате — «две строчки кода». В идеале нужно конечно иметь представление «что откуда берётся». В будущем это может пригодится! А так особо вникать в эти проблемы нет необходимости. Пока не захочется какой-нибудь хитрый фильтр разработать… :-)
0
В статью добавлено приложение о треугольнике Паскаля. 05 июля 2015.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.