Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Немного магии про фильтры
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
inventor
Такой глупый вопрос:
как по коэффициентам фильтра узнать
это НЧ фильтр или ВЧ или полосовой
просто посмотрев на эти коэффициенты.
Просто смотрю что получается в матлаб - не могу понять в чем отличия.
На графиках plot(n, x) получается практически
одна и та же картинка, а фильтры разные.
ViKo
Цитата(inventor @ Nov 10 2015, 10:03) *
Просто смотрю что получается в матлаб - не могу понять в чем отличия.
На графиках plot(n, x) получается практически
одна и та же картинка, а фильтры разные.

Давайте картинки, прикинем к носу.
SSerge
Посмотрите книжку
Г. Мошиц и П. Хорн Проектирование активных фильтров
там во второй главе есть картинки и прикидки "на пальцах".
V_G
Внешний вид графика коэффициентов КИХ-фильтра (он же - импульсная характеристика) мало дает информации о типе ЧХ.
Только пара фактов:
1. Сумма всех коэффициентов КИХ-фильтра равна его коэффициенту передачи по постоянному току. Т.е. если сумма ненулевая, можно ожидать, что это будет нечто вроде ФНЧ.
2. Импульсная характеристика в виде импульса с ВЧ-заполнением может свидетельствовать о том, что это полосовой фильтр с центральной частотой, равной частоте заполнения. Но и ФВЧ имеют чаще всего характеристику колебательного плана (помним, что сумма всех коэффициентов ФВЧ должна быть равной нулю)
ViKo
Если есть коэффициенты с абсолютными большими значениями, но разные по знаку, то это ФВЧ. Если знак одинаковый (плюс), то это ФНЧ. На краях импульсной характеристики мелкие коэффициенты могут быть с разными знаками, определяют форму АЧХ.
Santik
Цитата(inventor @ Nov 10 2015, 10:03) *
...как по коэффициентам фильтра узнать
это НЧ фильтр или ВЧ или полосовой
просто посмотрев на эти коэффициенты.

Будем считать, что у нас БИХ- фильтр.
Надо сделать обратное z- преобразование, т.е. из H(z) вернуться в H(S).
Если при S=0 H(S)=1, то это ФНЧ :-)
Проще воспользоваться обратными матрицами z- преобразования.
Первая строка в этой матрице для 2 порядка имеет вид: [1,-1,1] для третьего: [-1,1,-1,1] и т.д.
и определяет коэффициент при S^N, где N- порядок фильтра.
Последняя строка в этой матрице для 2 порядка имеет вид: [1,1,1] для третьего: [1,1,1,1] и т.д.
и определяет коэффициент при S^0,
Коэффициенты при S^N и S^0 числителя и знаменателя H(S) однозначно определяет ФНЧ/ФВЧ
Таким образом, чтобы определить тип фильтра надо:
Для определения коэффициента при S^0 числителя/знаменателя H(S)
просуммировать коэффициенты числителя H(z)
просуммировать коэффициенты знаменателя H(z)
Для определения коэффициента при S^N числителя/знаменателя H(S)
просуммировать коэффициенты числителя H(z) c изменением знака
просуммировать коэффициенты знаменателя H(z) c изменением знака
Эти 4 числа однозначно определят тип фильтра.
inventor
БЕРУ на обум 4 коэфицента
h=[ -0.2500 -0.7500 0.7500 -0.2500]
вызываю fvtool(h)
на рисунке получается что то похоже на ФВЧ (вроде так - HPF)

если меняю коэфициент
h = 0.2500 0.7500 0.7500 0.2500
получается похожее на ФНЧ (LPF)

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

Вобщем не совсем понял как они влияют на ачх


ViKo
Для ФВЧ надо было задать
h = [-0.25 0.75 -0.75 0.25]

Лучше
h = [-0.125 0.375 -0.375 0.125]

Интересно, что
h = [-0.13 0.37 -0.37 0.13]
уже дает боковые лепестки

И, вообще, хорошо, когда сумма всех коэффициентов без учета знака (модулей) равна 1. Тогда найдется частота, на которой к-т передачи равен 0 дБ (не обязательно).

upd. поменял цифры
ViKo
% Band Pass Filter
h = [0.0 -0.5 0.0 0.5]
Santik
КИХ фильтр - это частный случай БИХ фильтра:
H(z)=(b_0+b_1 z^{-1}+b_2 z^{-2}+b_3 z^{-3})/(a_0+a_1 z^{-1}+a_2 z^{-2}+a_3 z^{-3})
При a_0=1; a_1=0; a_2=0; a_3=0 получаем КИХ фильтр.

Матрица прямого z- преобразования H(S)-->H(z) для фильтра 3-го порядка имеет вид:

1 1 1 1
-3 -1 1 3
3 -1 -1 3
-1 1 -1 1

Матрица обратного z- преобразования H(z)-->H(S) для фильтра 3-го порядка имеет вид:
Код
1 -1  1 -1
3 -1 -1  3
3  1 -1 -3
1  1  1  1

Эту матрицу ещё надо умножить на 1/(2^3)=0.125
Чтобы найти коэффициенты числителя H(S) надо умножить эту матрицу на столбец коэффициентов числителя H(z)
Код
          | 1 -1  1 -1 |  |b_0|     |B_3|
          | 3 -1 -1  3 |  |b_1|     |B_2|
0.125     | 3  1 -1 -3 |  |b_2| =   |B_1|
          | 1  1  1  1 |  |b_3|     |B_0|

Аналогично для коэффициентов знаменателя
Код
          | 1 -1  1 -1 |  |a_0|     |A_3|
          | 3 -1 -1  3 |  |a_1|     |A_2|
0.125     | 3  1 -1 -3 |  |a_2| =   |A_1|
          | 1  1  1  1 |  |a_3|     |A_0|

Для КИХ- фильтра a_0=1; a_1=0; a_2=0; a_3=0
Код
          | 1 -1  1 -1 |  |1|              |1|
          | 3 -1 -1  3 |  |0|              |3|
0.125     | 3  1 -1 -3 |  |0| = 0.125      |3|
          | 1  1  1  1 |  |0|              |1|


H(S)=8*(B_0 S^3 +B_1 S^2+B_2 S+ B_3)/(S^3+3S^2+3S+1)

Для случая:
h = [-0.125 0.375 -0.375 0.125] найдём коэффициенты Bi
Код
          | 1 -1  1 -1 |  |-0.125|     |-1.0|
          | 3 -1 -1  3 |  | 0.375|     | 0.0|
0.125     | 3  1 -1 -3 |  |-0.375|=    | 0.0|   *0.125
          | 1  1  1  1 |  | 0.125|      |0.0|

Окончательно: H(S)=-S^3/(S^3+3S^2+3S+1) - ФВЧ!
ViKo
% Notch Filter
h = [0 0.5 0 0.5]
Santik
Цитата(ViKo @ Nov 11 2015, 11:57) *
% Notch Filter
h = [0 0.5 0 0.5]

H(S)=-(S^3-S^2+S-1)/(S^3+3S^2+3S+1)
S=jw
H(w)=[-(w^2-1)-jw(w^2-1)]/[1-3w^2+jw(3-w^2)]

Notch Filter
w=1 H(1)=0
H(0)=1; H(oo)=1
Santik
Так что никакой магии здесь нет... Это раньше рассчитать коэффициенты фильтра по заданной АЧХ мог только Великий Шаман с помощью Логарифмической Линейки.
С появлением Матлаба Великие Шаманы исчезли help.gif
ViKo
Возможно, магам DSP форма АЧХ сразу видна по формуле H(S). Мне - нет. А вот по коэффициентам фильтра представить можно, хотя бы качественно.
Santik
Цитата(ViKo @ Nov 15 2015, 09:52) *
Возможно, магам DSP форма АЧХ сразу видна по формуле H(S). Мне - нет. А вот по коэффициентам фильтра представить можно, хотя бы качественно.

Значит Вы в уме умеете делать преобразование Фурье и брать его модуль! Поздравляю! Вы -Великий Шаман!
(Осталось только на коэффициентах БИХ фильтра потренироваться:-)
ViKo
Зачем преобразование...? Возьмем два соседних, главных коэффициента. Если они имеют одинаковый знак, значит, выборки сигнала будут суммироваться. Низкочастотные составляющие - в фазе, а высокочастотные со сдвигом по фазе, и чем выше частота, тем больший сдвиг набежит между выборками. Очевидно же, они подавятся. ФНЧ. Если знаки коэффициентов разные, ситуация обратная. А для режекторного и полосового фильтров, если резонансная частота равна четверти от частоты выборок, нужно, чтобы коэффициенты через один были равны 0. Тем самым, частота выборок получается в 2 раза ниже, и все свойства периодичности АЧХ при аналого-цифровом преобразовании вылазят в интересующую нас полосу.
Santik
Цитата(ViKo @ Nov 16 2015, 08:24) *
Зачем преобразование...?

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

Tarbal
Ну так функцию синк все знают. Она и есть импульсная характеристика прямоугольного ФНЧ.

Вспомнил, что видел интересную статью по теме пару лет назад. Если найду, то дам ссылку. Там автор вручную делал импульсные характеристики. И если про ФНЧ а давно знаю, то после этой статьи понял и про ФВЧ.

Вот и здесь на пальцах рассказывают:
https://www.wavemetrics.com/products/igorpr...italfilters.htm


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.