Часть 1. Расчет КИХ-фильтров с окном Кайзера
Окно Кайзера
Функция Бесселя
Смысл параметра
Фурье-образ окна Кайзера
Методика Кайзера
Уровень флуктуаций АЧХ и размеры переходной зоны
Размеры переходной зоны
Расчет параметра «альфа»
Расчет минимального порядка фильтра
Расчеты по методике Кайзера в среде Matlab
Расчеты по методике Кайзера в среде Matlab
Расчеты по методике Кайзера в sptool и fdatool
Недостатки оконного метода
Сопоставление АЧХ: окно Кайзера и метод Чебышева
Теорема Чебышева об альтернансе
Алгоритм Ремеза
Компьютерная реализация алгоритма Ремеза в Matlab
Пример: синтез НЧ фильтра с граничными частотами 500 Гц и 600 Гц, частотой дискретизации 2 кГц
Пример: результаты расчетов
Пример: пересчет девиаций в дБ
500.50K
Категория: ФизикаФизика

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

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

Методы обработки акустических сигналов
Два специальных метода
расчета КИХ-фильтров
Часть 1. Расчет КИХ-фильтров
с окном Кайзера
Кафедра акустики и акустоэлектроники
НТУУ (КПИ)

2. Окно Кайзера

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

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

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

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

0:
I 0 (0 )
wk
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')

5. Фурье-образ окна Кайзера

% 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) расширяется главный лепесток

6. Методика Кайзера

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

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

0 1, 2 1
fp
fa

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

ФНЧ:
ФВЧ:
B f fa f p
B f f p fa
Bf
Bf
fc f p
ПФ:
fc fa
2
B f min ( f p1 f a1 ), ( f a 2 f p 2 )
f c1 f p1
f c2 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 p 2
Bf
2
Bf
2

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

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

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

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

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

1) Вычисление параметров окна Кайзера:
[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
2) Вычисление отсчетов окна Кайзера:
w = kaiser(p+1,alfa)
3) Вычисление коэфф-в КИХ-фильтра с окном Кайзера:
a = fir1(p, Wn, ftype, kaiser(p+1, alfa), ‘noscale’)
4) Проверка расчетов путем построения АЧХ
freqz(a, 1, 512, Fs);

12. Расчеты по методике Кайзера в среде 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)

13. Расчеты по методике Кайзера в sptool и fdatool

sptool
Sampling Frequency = 100;
Specifications: Minimum Order = ’Yes’
Passband: Fp=25; Rp=26
Stopband: Fs=33; Rs=40
Rp 20 lg 0.05 26, Rs 20 lg 0.01 40
fdatool
Filter Type = Lowpass;
Designe Method: FIR, Window
Window Specifications: Kaiser
Fs (Sampling Frequency) = 100;
Filter order: Minimum Order = ’Yes’
Fpass = 25; Fstop = 33; Apass = 26; Astop = 40
Rp = Apass = - 20 lg
1
Rs=Astop = - 20 lg 2

14.

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

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

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

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

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

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

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

18.

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

fs
f

19. Алгоритм Ремеза

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

20. Компьютерная реализация алгоритма Ремеза в 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

21. Пример: синтез НЧ фильтра с граничными частотами 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');

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

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

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