Расчет частотной характеристики по коэффициентам фильтра - PullRequest
3 голосов
/ 04 июля 2010

Я не могу найти никакой понятной информации по этой теме. В голландской википедии я обнаружил, что вы можете применить z-преобразование, которое выдает формулу в следующем виде:
www.music.mcgill.ca / ~ Гэри / 618 / week1 / img15.gif

Этот FIR-фильтр используется в качестве примера:
upload.wikimedia.org / математика / б / 9 / е / b9e2ed5184f98621922f716e5216f33d.png

С z-преобразованием:
upload.wikimedia.org / математика / 4 / d / 6 / 4d6621be8fabf4db8816c12f34ed9877.png

И в этом примере e ^ it (натуральный логарифм, возведенный в мнимую единицу, и t = theta) заменяется на z: upload.wikimedia.org / math / 0/6 / e / 06eada8fedfb492bd63bb50491b042aa. PNG

Затем график этой функции используется и рассматривается как частотная характеристика. Я думал, что этот метод был простым способом для вычисления частотной характеристики фильтра. Однако допустим ли этот метод? Когда я подумал о небольшой задержке (которая «блокирует» исходный сигнал), мне пришло в голову, что частотная характеристика должна быть 1 для каждой частоты, поскольку сигнал не изменяется, а только задерживается, но с помощью этого метода я рассчитал, что АЧХ будет:

y(n) = 0*x(n) + 1*x(n-1)  

Z-Transform

H(z) = 0 + 1z^-1

Подставляя e ^ it (с t = theta):

H(e^it) = 0 + 1 * e^-it

Поскольку это создает синусоидальную волну как частотную характеристику, я должен что-то делать неправильно или что-то неправильно понимать. Я был бы очень рад, если бы кто-то мог мне помочь!

Ответы [ 4 ]

5 голосов
/ 04 июля 2010

Согласно комментарию Руонга, системная функция H дает вам фазовый и амплитудный отклик системы на определенной частоте. Это означает, что если на входе системы указано cos [ωn] = cos [2πfn], то на выходе будет a (f) cos [2πfn + Φ (f)], где a (f) = | H (f) | и (f) = фаза (H (f)). В вашем случае величина равна 1, поскольку сигнал никак не масштабируется, а только смещается во времени. А сдвиг фазы равен -ω, где ω - угловая частота синусоидального входа в систему.

Я надеюсь, что следующее не слишком элементарно для переполнения стека, но, возможно, изучение базовых основ анализа временных рядов будет полезно для мини-подшипников и других.

Если у вас есть система с импульсным откликом h [n] = δ [n-1] (где δ [n] - дельта-функция), как в вашем примере, это означает, что вы задерживаете ввод на 1 временной шаг. Подумайте, что это означает с точки зрения фазы синусоиды. Наиболее быстро меняющаяся синусоида имеет цифровую частоту 0,5 (то есть период 2 выборки), например сов [Пп]. Это серия [1, -1, ...]. Если вы задержите этот сигнал на 1, вы получите ряд [-1,1, ...], то есть cos [πn - π] = cos [π (n - 1)], т.е. фаза входного сигнала сдвинута на -π радиан. (-180 градусов). Посмотрите на сигнал с более длительным периодом с цифровой частотой 0,25 (то есть период с 4 выборками) - например, сов [0.5πn]. Это серия [1,0, -1,0, ...]. Задержка на единицу дает ряд [0,1,0, -1, ...], то есть cos [0,5πn - 0,5π] = cos [0,5π (n - 1)], т.е. фаза входного сигнала сдвинута на - π / 2 радиана (-90 градусов). Точно так же вы можете понять, что вход cos [0.25πn] дает выход cos [0.25π - 0.25π] = cos [0.25π (n - 1)], т.е. фаза входа смещена на -π / 4 радиана (-45 градусов) и т. Д. И т. Д.

Совершенно очевидно, что если входная угловая частота равна ω (например, 0.5π), выходной сигнал будет сдвинут по фазе на Φ = -ω. Думайте о сигнале как о поезде, идущем по кругу юнитов по маршруту против часовой стрелки, значения его временных рядов соответствуют остановкам на этом маршруте. Угловая частота 0,5π означает, что она делает 4 остановки при следующих значениях радиана: 0, 0,5π, π, 1,5π. Затем он возвращается к 0 и повторяет цикл снова и снова. Если этот поезд задерживается остановкой, это соответствует смещению -0,5π радиан на запланированном маршруте.

Возвращаясь к H (f), я надеюсь, что имеет смысл, почему он равен exp (-i2πf) = exp (-iω). Точно так же, если ваша система имеет задержку 2, то h [n] = δ [n-2] и H (f) = exp (-i4πf) = exp (-2iω) - это задержка на 2 остановки на единичный круг. Это все, что говорит нам частотный отклик системы / фильтра, т. Е. Насколько система масштабирует и задерживает каждую входную синусоиду в зависимости от частоты.

Системы FIR (то есть конечная импульсная характеристика, соответствующая модели скользящего среднего [MA]) являются простейшими, поскольку они представляют собой просто сумму дельта-функций (то есть масштабирования и задержки) на пути прямой связи. БИХ-системы (то есть бесконечный импульсный отклик, соответствующий модели авторегрессии [AR]) более интересны для анализа, поскольку они имеют путь обратной связи.

1 голос
/ 02 ноября 2010

Чит и использовать Matlab:)

для

y(n) = 0*x(n) + 1*x(n-1)  

сделать

b=[ 0 1 ];
a = 1;
freqz(b,a)
1 голос
/ 04 июля 2010

Один простой метод является графическим по своей природе: вы можете использовать его в качестве основы для алгоритма, или вы можете использовать его вручную для построения графика частотной характеристики, а также полезно получить быстрое представление о реакции "на глаз" , Это работает для FIR и IIR фильтров.

Сначала нарисуйте полюсы и нули на графике вместе с единичным кругом. Затем для любой заданной частоты, для которой вы хотите рассчитать величину частотного отклика:

  • Нарисуйте линии от всех нулей до соответствующей точки на единичной окружности и вычислите их длины.
  • Сделайте то же самое для полюсов.
  • Умножьте все нулевые длины строки, чтобы получить произведение N.
  • Сделайте то же самое для длин линий полюсов и назовите это D.
  • Тогда величина будет N / D.

Очевидно, что вы захотите повторить вышеописанную операцию для числа точек на круге единицы.

0 голосов
/ 24 февраля 2012

Здесь нет проблем.Вы сделали это правильно.Это не синусоидальная функция.Знаковая функция из уравнения Эйлера выглядит следующим образом: (e ^ jw - e ^ -jw) / j2

Другими словами, в результате получается комплексное число.Скажем, ваш ввод x [n] = cos (pi / 3 * n).Выходной сигнал для системы: y [n] = H (e ^ jw) * x [n]

Таким образом, вы умножаете свой вход на частотную характеристику с пи / 3 в качестве цифровой частоты.cos (pi / 3 * n) = (e ^ pi / 3 * n + e ^ -pi / 3 * n) / 2.Поэтому обрабатывайте ваш вход как два отдельных сигнала, один с частотой pi / 3, другой с частотой -pi / 3.В результате вы получите e ^ -j (pi / 3) * e ^ (pi / 3 * n) + e ^ j (pi / 3) * e ^ (- pi / 3 * n), чторавно 2 * cos (-pi / 3 * n - pi / 3).Это ожидается, так как сигнал задерживается.

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

...