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

Содержание

Слайд 2

Окно Кайзера - функция Бесселя первого рода нулевого порядка - специальный числовой параметр окна Кайзера

Окно Кайзера

- функция Бесселя первого рода нулевого порядка

- специальный числовой

параметр окна Кайзера
Слайд 3

Функция Бесселя >> syms x >> I = besseli(0,x); >> ezplot(I) Построение графика в Matlab:

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

>> syms x
>> I = besseli(0,x);
>> ezplot(I)

Построение графика в Matlab:

Слайд 4

Смысл параметра n = 50; k=1:n; % кол-во отсчетов окна w1

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

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')

=1; 4; 9

N=5; alfa=1; k=0:N;
beta=alfa*sqrt(1-(k/N).^2);
w= besseli(0,beta)/ besseli(0,alfa);
plot(k,w)

Слайд 5

Фурье-образ окна Кайзера % W1 – Фурье-образ окна Кайзера [W1,f] =

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

% 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

С ростом параметра «альфа»
изменяются свойства Фурье-образа окна Кайзера:
уменьшается уровень боковых лепестков,
расширяется главный лепесток

Уровень боковых лепестков

Слайд 6

Методика Кайзера Выбирают значение параметра «альфа», исходя из уровня флуктуаций ЧХ

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

Выбирают значение параметра «альфа», исходя из уровня флуктуаций ЧХ
Вычисляют порядок

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

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

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

fp

fa

Слайд 8

Размеры переходной зоны ФНЧ: ФВЧ: ПФ: РФ:

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

ФНЧ:

ФВЧ:

ПФ:

РФ:

Слайд 9

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

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

Слайд 10

Расчет минимального порядка фильтра Учет уровня флуктуаций Учет размеров переходной зоны

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

Учет уровня флуктуаций

Учет размеров переходной зоны

Слайд 11

Расчеты по методике Кайзера в среде Matlab 1) Вычисление параметров окна

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

2) Вычисление отсчетов окна Кайзера:

w = kaiser(p+1,alfa)

Параметр devs д.б. вектором той же длины, что и mags

3) Вычисление коэфф-в КИХ-фильтра с окном Кайзера:

a = fir1(p, Wn, ftype, kaiser(p+1, alfa), ‘noscale’)

4) Проверка расчетов путем построения АЧХ

freqz(a, 1, 512, Fs);

Слайд 12

Fs = 100; fcuts = [25 33]; mags = [1 0];

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)

Пример:

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

p = 28

Слайд 13

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

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

Sampling Frequency = 100;
Specifications:

Minimum Order = ’Yes’
Passband: Fp=25; Rp=26
Stopband: Fs=33; Rs=40

sptool

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

fdatool

Rp = Apass = - 20 lg

Rs=Astop = - 20 lg

Слайд 14

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

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

Слайд 15

Недостатки оконного метода Уменьшение крутизны АЧХ в переходной зоне Трудно прогнозировать

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

Уменьшение крутизны АЧХ в переходной зоне
Трудно прогнозировать форму АЧХ

фильтра

Теоретическое обоснование

Синтез фильтров, оптимальных по Чебышеву –
задача оптимальной аппроксимации H(w):

Задаются:
Граничные частоты;
Величина предельно допустимых флуктуаций

наилучшее равномерное приближение

Слайд 16

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

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

Слайд 17

Для наилучшего равномерного приближения функции полиномом необходимо и достаточно, чтобы равенство

Для наилучшего равномерного приближения функции
полиномом необходимо и достаточно, чтобы равенство


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

Тригонометрический полином:

выполнялось не менее чем в N+2 точках (точках альтернанса),
принадлежащих интервалам аппроксимации,
причем знак разности чередуется от точки к точке

Слайд 18

Ограничения на ЧХ синтезируемого фильтра Поведение в переходной области не определено

Ограничения на ЧХ
синтезируемого фильтра

Поведение в переходной
области не определено

1

δ1

δ2


fs


0

H(f)

f

δ1

Слайд 19

Алгоритм Ремеза - частоты альтернанса Составляется и решается система N+2 уравнений:

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

- частоты альтернанса

Составляется и решается система N+2 уравнений:

Поскольку частоты альтернанса

неизвестны:
1) на первой итерации они задаются приблизительно;
2) на последующих итерациях они уточняются

Недостаток метода – может потребоваться много итераций

Е.Я. Ремез - украинский академик (1896-1975)

- искомые коэффициенты

Слайд 20

Компьютерная реализация алгоритма Ремеза в Matlab Parks, McClellan определяют минимальный порядок

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

Parks, McClellan

определяют минимальный порядок

фильтра n:

[n, f0, a0, w] = remezord(f, A, dev, Fs)

параметры f, A совместно задают
кусочно-постоянную АЧХ в зонах пропускания и задержания

2) вычисляют коэффициенты фильтра:

а = remez(n, f0, а0, w)

remezord

firpmord

remez

firpm

вспомогательные параметры

В последних версиях Matlab:

Remez

Слайд 21

Пример: синтез НЧ фильтра с граничными частотами 500 Гц и 600

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

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

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