Параметры для расчета фильтров
Уравнение нерекурсивного фильтра
Уравнение нерекурсивного фильтра
Частотная характеристика нерекурсивного фильтра
Частотная характеристика нерекурсивного фильтра
Расчет фильтра
Пример расчета фильтра
Расчет фильтра в Matlab
Пример расчета фильтра
Окна в цифровых фильтрах
Прямоугольное (Дирихле)
Окно Блэкмана
Спектральные образы окон – уровни боковых лепестков
Пример применения треугольного окна при расчете фильтра
Методика Кайзера расчета фильтра
Уровень флуктуаций АЧХ и размеры переходной зоны
Расчет параметра «альфа»
Смысл параметра
Функция Бесселя
Расчет КИХ-фильтров с окном Кайзера
АЧХ окна Кайзера
Размеры переходной зоны
Расчет минимального порядка фильтра
Расчеты по методике Кайзера в среде Matlab
Расчеты по методике Кайзера в среде Matlab
Недостатки оконного метода:
Сопоставление АЧХ фильтров: окно Кайзера и метод Чебышева
Теорема Чебышева об альтернансе
Алгоритм Ремеза (Е.Я. Ремез - украинский академик (1896-1975) )
Компьютерная реализация алгоритма Ремеза в Matlab
Пример: синтез НЧ фильтра с граничными частотами 500 Гц и 600 Гц, частотой дискретизации 2 кГц
Пример: результаты расчетов
Пример: пересчет девиаций в дБ
0.99M

Методы расчета КИХ-фильтров

1.

Методы расчета КИХ-фильтров

2. Параметры для расчета фильтров

3.

Нерекурсивные фильтры
3

4. Уравнение нерекурсивного фильтра

N
Несимметричная форма:
y(n) =
a k x(n - k)
k =0
a0
xn
z-1
Σ
yn
xn-1 a
1
xn-2
ak
0,5
k
a2
z-1
0,25 0,25
1 при n = 0
x(n) =
0 при n 0
z-1
xn-N
1
0
2
1
n
0
aN
z-1
y (n ) a n
0,5
0,25 0,25
n
0
1
2

5. Уравнение нерекурсивного фильтра

N
Cимметричная форма:
y(n) =
a k x(n - k)
k = -N
Пример: N=2
y(n) = a-2 x(n + 2) + a-1x(n + 1) + a0 x(n) + a1x(n - 1) + a2 x(n - 2)
будущие выборки
Cимметричная форма записи адекватна обработке записанных сигналов

6. Частотная характеристика нерекурсивного фильтра

Воздействие – комплексная гармоника:
yn
Отклик:
xn exp( j nTд )
N
ak exp[ j (n k )Tд ]
k N
Частотная характеристика:
yn
H д ( )
xn
xn exp( j nTд )
N
k N
k
ak exp( j kTд ) ak exp( j kTд )
N
a k
Четность-нечетность
коэффициентов:
ak
H д ( ) a0 2 a k cos kTд
k 1
N
a k
ak
H д ( ) 2 j ak sin kTд
k 1

7. Частотная характеристика нерекурсивного фильтра

ЧХ цифрового фильтра периодична:
H д ( ) H д ( r 2 Tд ), r 1,2,...
Коэффициенты:
T
д

ak
H д ( ) exp( j kTд ) d
2

8. Расчет фильтра

1 для c
H( )
0 для c
a k a k
Тд
c
sin k c
0
k c
2f c
1
cos
k
T
d
д



c
fc
c
2


ak a k
c sin k c
c
Sinc ( k c )
k c

9. Пример расчета фильтра

ak a k
c
Sa(k c )
f c 25 Гц
N=3
f д 100 Гц
a0 0.5
h(kTд ) Tд ak
a1 a 1 0.3183
a2 a 2 0
ИХ аналогового
фильтра
k
-3
-2 -1
0
1
2
3
a3 a 3 0.1061

10. Расчет фильтра в Matlab

% === freq_har.m === Частотная хар-ка ФНЧ ===
a0=0.5;
% нулевой коэффициент фильтра
ak=[0.3183 0 -0.1061];
% коэффициенты фильтра c 1 по 3
fd=100;
% частота дискретизацации
dt=1/fd;
% период (шаг) дискретизации
N=3;
% половина порядка фильтра
df=0.02*fd;
% шаг по частоте
f=-0.5*fd:df:1.5*fd;
% диапазон частот
% === расчет суммы ===
sum=0;
for k=1:N,
sum=sum+ak(k)*cos(2*pi*f*k*dt);
end;
H=a0+2*sum;
% частотная хар-ка
plot(f,H)
% построение графика
grid on
% построение сетки

11. Пример расчета фильтра

Частотная характеристика для N=3
Fd = 1/Td

12. Окна в цифровых фильтрах

ak wk ak
Прямоугольное (Дирихле)
yn
N
ak xn k
k N
w (n ) 1
w (n ) 1
Треугольное (Бартлетта)
Хэннинга (Ханна)
Хэмминга
Блэкмана
Ланцоша
n
N
n
n
w (n ) cos
0,5 1 cos
2N
N
2
n
w (n ) 0,54 0,46 cos
N
n
2n
w (n ) 0,42 0,5 cos 0,08 cos
N
N
n n
w (n ) sin
N N

13. Прямоугольное (Дирихле)

w (n ) 1
Уровень бокового лепестка: - 13 дБ

14. Окно Блэкмана

n
2n
w (n ) 0,42 0,5 cos 0,08 cos
N
N
Уровень бокового лепестка: - 58 дБ

15. Спектральные образы окон – уровни боковых лепестков

Тип окна
Уровень бокового лепестка
Прямоугольное
-13 дБ (0,224)
Треугольное, Ланцоша
-27 дБ (0,045)
Ханна
-32 дБ (0,025)
Хэмминга
-43 дБ (0,007)
Блэкмена
-58 дБ (0,001)

16. Пример применения треугольного окна при расчете фильтра

Частотная характеристика для N=9
Более гладкая АЧХ
Более пологие скаты

17. Методика Кайзера расчета фильтра

• Выбирают значение параметра «альфа», исходя
из уровня флуктуаций АЧХ
• Вычисляют порядок фильтра, исходя из:
- уровня флуктуаций АЧХ;
- размеров переходной зоны.
• Вычисляют коэффициенты ak методом обратного
преобразования Фурье
17

18. Уровень флуктуаций АЧХ и размеры переходной зоны

0 1 , 2 1
fp
fa
18

19. Расчет параметра «альфа»

min( 1 , 2 )
A 20 lg
A 21
0,
0.4
0.5842( A 21) 0.07886( A 21), 21 A 50
0.1102( A 8.7),
A 50
19

20. Смысл параметра

0:
wk
I 0 (0)
1, 0 k N
I 0 (0)
N=5; alfa=1; k=0:N;
beta=alfa*sqrt(1-(k/N).^2);
w= besseli(0,beta)/ besseli(0,alfa);
plot(k,w)
=1; 4; 9
n = 50; k=1:n; % кол-во отсчетов окна
w1 = kaiser(n,1); plot(k,w1); hold on;
w2 = kaiser(n,4); plot(k,w2);
w3 = kaiser(n,9); plot(k,w3); grid on;
legend('alfa = 1', 'alfa = 4', 'alfa = 9')
20

21. Функция Бесселя

I 0 ( x )
4
6
1
1
x
x
2
2
2
1
I 0 ( x) 1 x 2 2 2 2 2
1 2
1 2 3
2
Построение графика в Matlab:
>> syms x
>> I = besseli(0,x);
>> ezplot(I)
x
0
1
2
3
4
5
6
I = besseli(0,x)
1
1.266
2.280
4.881
11.302
27.240
67.234
21

22. Расчет КИХ-фильтров с окном Кайзера

N
y(n) =
w k ak x(n - k)
k =-N
I 0 ( k )
wk w k
, 0 k N
I 0 ( )
k
k 1
N
2
I 0 ( x) - функция Бесселя первого рода нулевого порядка
- специальный числовой параметр окна Кайзера
22

23. АЧХ окна Кайзера

% W1 – Фурье-образ окна Кайзера
[W1,f] = freqz(w1/sum(w1),1,512,2);
[W2,f] = freqz(w2/sum(w2),1,512,2);
[W3,f] = freqz(w3/sum(w3),1,512,2);
plot(f,20*log10(abs(W1))); hold on;
plot(f, 20*log10(abs(W2)), 'g');
plot(f, 20*log10(abs(W3)), 'r');
legend('a=1', 'a=4', 'a=9')
grid on
Уровень боковых лепестков
4
9
-45,2
-90,5
С ростом параметра «альфа»
изменяются АЧХ окна Кайзера:
1) уменьшается уровень боковых лепестков,
2) расширяется главный лепесток
23

24. Размеры переходной зоны

ФНЧ:
ФВЧ:
B f fa f p
B f f p fa
Bf
Bf
fc f p
2
fc fa
ПФ:
B f min ( f p1 f a1 ), ( f a 2 f p 2 )
f c1 f p1
fc2 f p2
Bf
2
Bf
2
2
РФ:
B f min ( f a1 f p1 ), ( f p 2 f a 2 )
f c1 f p1
fc2 f p2
Bf
2
Bf
2
24

25. Расчет минимального порядка фильтра

Учет уровня флуктуаций
Учет размеров
переходной зоны
Fs D
P
Bf
0.9222, A 21
D A 7.95
,
A
21
14.36
25

26. Расчеты по методике Кайзера в среде Matlab

Вычисление параметров окна Кайзера:
[p, Wn, alfa, ftype] = kaiserord(fcuts, mags, devs, Fs)
в полосе от нуля до fcuts(1) АЧХ равна mags(1),
в полосе от fcuts(2) до fcuts(3) АЧХ равна mags(2), … ,
в полосе от fcuts(end) до Fs/2 АЧХ равна mags(end)
Параметр devs д.б. вектором той же длины, что и mags
Вычисление отсчетов окна Кайзера:
w = kaiser(p+1,alfa)
Вычисление коэфф-в КИХ-фильтра с окном Кайзера:
a = fir1(p, Wn, ftype, kaiser(p+1, alfa), ‘noscale’)
Проверка расчетов путем построения АЧХ
freqz(a, 1, 512, Fs);
26

27. Расчеты по методике Кайзера в среде Matlab

p = 28
Пример:
Fs = 100;
fcuts = [25 33];
mags = [1 0];
devs = [0.05 0.01];
[p,Wn,alfa,ftype] = kaiserord(fcuts,mags,devs,Fs);
a = fir1(p,Wn,ftype,kaiser(p+1,alfa),'noscale');
freqz(a, 1, 512, Fs)
27

28.

Синтез оптимальных
(по Чебышеву) КИХ-фильтров
28

29. Недостатки оконного метода:

Теоретическое обоснование
Недостатки оконного метода:
• Уменьшение крутизны АЧХ в переходной зоне
• Трудно прогнозировать форму АЧХ фильтра
Синтез фильтров, оптимальных по Чебышеву –
задача оптимальной аппроксимации H(w):
J min(max[ H d ( ) H ( )])
- наилучшее равномерное приближение
Задаются:
1) Граничные частоты;
2) Величина предельно допустимых флуктуаций
29

30. Сопоставление АЧХ фильтров: окно Кайзера и метод Чебышева

АЧХ фильтра
синтезированного с
окном Кайзера
АЧХ фильтра
синтезированного по
методу Чебышева
30

31. Теорема Чебышева об альтернансе

Тригонометрический полином:
N
H д ( ) ak cos k t
k 0
Для наилучшего равномерного приближения функции H ( )
полиномом Hд( ) необходимо и достаточно, чтобы равенство
( ) H д ( ) H ( )
выполнялось не менее чем в N+2 точках (точках альтернанса),
принадлежащих интервалам аппроксимации,
причем знак разности чередуется от точки к точке
31

32.

Ограничения на ЧХ синтезируемого фильтра
Поведение в переходной
области не определено
H(f)
1
1
1
2
0

fs
f
32

33. Алгоритм Ремеза (Е.Я. Ремез - украинский академик (1896-1975) )

Составляется и решается система N+2 уравнений:
N
H ( ˆ i ) a0 2 ak cos( ˆ i kTд ) ( 1)i , i 1,2, , N 2
k 1
̂ i - частоты альтернанса;
a k - искомые коэффициенты.
Поскольку частоты альтернанса неизвестны:
на первой итерации они задаются приблизительно;
на последующих итерациях они уточняются.
Недостаток метода – может потребоваться много итераций
33

34. Компьютерная реализация алгоритма Ремеза в Matlab

1) определяют минимальный порядок фильтра n:
[n, f0, a0, w] = remezord(f, A, dev, Fs)
вспомогательные параметры
параметры f, A совместно задают кусочно-постоянную АЧХ
в зонах пропускания и задержания
2) вычисляют коэффициенты фильтра:
а = remez(n, f0, а0, w)
В последних версиях Matlab:
remezord
firpmord
Remez
remez
Parks, McClellan
firpm
34

35. Пример: синтез НЧ фильтра с граничными частотами 500 Гц и 600 Гц, частотой дискретизации 2 кГц

Rp = 3;
% Неравномерн. в полосе пропуск. (в дБ)
Rs = 40;
% Неравномерн. в полосе задерж. (в дБ)
Fs = 2000;
% Частота дискретизации
f = [500 600]; % Границы переходной зоны
A = [1 0];
% Желаемые значения АЧХ
% Расчет девиаций
dev = [(10^(Rp/20)-1)/(10^(Rp/20)+1) 10^(-Rs/20)];
[n, fo, ao, w] = remezord(f, A, dev, Fs);
a = remez(n, fo, ao, w);
freqz(a, 1, 1024, Fs);
title('Lowpass Filter Designed to Specifications');
35

36. Пример: результаты расчетов

36

37. Пример: пересчет девиаций в дБ

37
English     Русский Правила