|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Aleksey V. Vaneev 2:5003/15.1 18 Sep 2002 09:12:33 To : Dmitry Luzin Subject : Цифpовой фильтp --------------------------------------------------------------------------------
DL> Цифровой фильтр верхних частот второго порядка (бесконечно ипульсная
DL> характеристика), частота дискретизации 100гц, разрядность 8 бит,
DL> частота среза ну предположим 50гц.
Че-то нашел, но второго ли это порядка - точно не знаю. Похоже на третий.
Q - добротность фильтра (или уровень резонанса)
frequency - частота среза
omega = 2*PI*frequency/sample_rate
sn = sin(omega)
cs = cos(omega)
alpha = sn/(2*Q)
b0 = (1 + cs)/2
b1 = -(1 + cs)
b2 = (1 + cs)/2
a0 = 1 + alpha
a1 = -2*cs
a2 = 1 - alpha
Это выражение используется для вычисления значения очередного отсчета:
y[n] = (b0/a0)*x[n] + (b1/a0)*x[n-1] + (b2/a0)*x[n-2] - (a1/a0)*y[n-1] -
(a2/a0)*y[n-2]
(у таком виде дается, потому что для разных типов фильтров подойдет - только
коэффициенты соотетствующие нужны)
В случае 8 бит лучше работать хотя бы в 16 битах, а потом приводить с дизером (1
битным шумом) к 8 битам отсечением младших разрядов. Вообще, в 8 битах будет
недопустамо велика погрешность вычислений.
e-mail: picoder@sbis.komi.ru
--- GoldED+/W32 1.1.5-20020105
* Origin: рева корова паска корова (2:5003/15.1)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/27083d880de0.html, оценка из 5, голосов 10
|