Дифференцирующие цифровые фильтры

Пример расчета полосового фильтра.

Произвести расчет ПФ при следующих исходных параметрах:

wн = 0.3p, wв = 0.6p, Dp = 0.1p, d = 0.02.

1. А = -20 log d. А = 34. 2. N = p (A-7.95)/(14.36 Dp). N = 18.

3. b= 0.5842(A-21)0.4 +0.07886(A-21). b= 2.62. 4. hо = (wв-wн)/p. hо = 0.3

5. h(n)= (sin nwв-sin nwн)/(np). h(n)= 0.04521, -0.24490, -0.09515,..., 0.02721.

6. pn= Jo{b} / Jo{b}. pn = 1.00, 0.997, 0.9882,.......

7. Оператор фильтра: hn = h(n)pn, n = 0,1,2,...,N. h-n = hn. hn = 0.3000, 0.04508, -0.2420,....

8. Проверка по формуле: H(w) =hn cos nw, 0 £ w £ p.

Для оценки формы передаточной функции количество точек спектра в интервале 0-p достаточно задать равным 2N, т.е. с шагом Dw £ p/36.

Передаточная функция.

Из выражения для производной d(exp(jwt))/dt = jw exp(jwt) следует, что при расчете фильтра производной массива данных необходимо аппроксимировать рядом Фурье передаточную функцию вида H(w) = jw. Поскольку коэффициенты такого фильтра будут обладать нечетной симметрией (h-n = -hn) и выполняется равенство

hn [exp(jwn)-exp(-jwn)] = 2j hn sin nw,

то передаточная характеристика фильтра имеет вид:

H(w) = 2j(h1 sin w + h2 sin 2w +... + hN sin Nw),

т.е. является мнимой нечетной, a сам фильтр является линейной комбинацией разностей симметрично расположенных относительно sk значений функции. Уравнение фильтрации:

yn = hn(sk+n - sk-n).

Если дифференцированию подлежит низкочастотный сигнал, а высокие частоты в массиве данных представлены помехами, то для аппроксимации в пределах главного частотного диапазона задается передаточная функция фильтра вида:

H(w) = w, w £ wв, H(w) = 0, wв< w £ wN.

Оператор дифференцирующего фильтра:

h(n) = (1/p)H(w) sin(npw/wN) dw, n = 0,1,2,... (5.4.1)

Принимая, как обычно, wN = p (Dt = 1) и решая (5.4.1) при H(w) = w, получаем:

hn = (1/p)[sin(nwв)/n2 - wв cos(nwв)/n], (5.4.2)

hо = 0, h-n = -hn.

Проверка: H(w) =hn sin nw = 2hn sin nw. (5.4.3)

На рис. 5.4.1 приведен пример расчета коэффициентов дифференцирующего фильтра на интервал {0-0.5}p при Dt=1 (wв = p/2). Операторы дифференцирующих фильтров, как правило, затухают очень медленно и, соответственно, достаточно точная реализация функции (5.4.3) весьма затруднительна.

Рис. 5.4.1. Коэффициенты оператора фильтра.

Ряд (5.4.3) усекается до N членов, и с помощью весовых функций производится нейтрализация явления Гиббса. Явление Гиббса для дифференцирующих фильтров имеет весьма существенное значение, и может приводить к большим погрешностям при обработке информации, если не произвести его нейтрализацию. Примеры ограничения оператора, приве- денного на рис. 5.4.1, и соответствующие передаточные функции H'(w) усеченных операторов показаны на рис. 5.4.2.

Рис. 5.4.2. Частотные функции фильтров.

Для оценки возможных погрешностей дифференцирования усеченными операторами произведем расчет фильтра при wв = p/2. По формулам (5.4.2) определяем:

h0-10 = 0, 0.3183, 0.25, -0.0354, -0.125, 0.0127, 0.0833, -0.0065, -0.0625, 0.0039, 0.05.

Произведем проверку работы фильтра на простом массиве данных sn = n, производная которого постоянна и равна 1. Для массива с постоянной производной фильтр может быть проверен в любой точке массива, в том числе и в точке n=0, для которой имеем:

у =hn so-n = 2n hn,

при этом получаем: у=0.5512 при N=5, у=1.53 при N=10.

Рис. 5.4.3. Погрешность дифференцирования.

Такое существенное расхождение с действительным значением производной объясняется тем, что при w=0 тангенс угла наклона реальных передаточных функций фильтра, как это видно на рисунке 5.4.2, весьма существенно отличается от тангенса угла наклона аппроксимируемой функции H(w)= w. На рис. 5.4.3 приведены частотные графики относительной погрешности дифференцирования s = Hн'(w)/Hн(w) с вычислением значений на нулевой частоте по пределам функций при N ® ¥. На рис. 5.4.4 приведен пример операции дифференцирования s*h гармоники s с частотой wo оператором с N=10 в сопоставлении с точным дифференцированием ds/dk.

Рис. 5.4.4. Пример операции дифференцирования.

Применим для нейтрализации явления Гиббса весовую функцию Хемминга. Результат нейтрализации для фильтра с N=10 приведен на рис. 5.4.5. Повторим проверочный расчет дифференцирования на массиве sn = n и получим результат у=1.041, т.е. погрешность дифференцирования уменьшается порядок.

Рис. 5.4.5. Дифференцирование с применением весовой функции.

Аналогично производится расчет и полосовых дифференцирующих фильтров с соответствующим изменением пределов интегрирования в (5.4.1) от wн до wв. При этом получаем:

hn = (wнcos nwн-wвcos nwв)/(np) + (sin nwв-sin nwн)/(n2p).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: