1
10
10 −=
p
R
р
К ;
10
10
S
R
K
−
= .
4497,0
p
K , 0316,0
K .
Коэффициенты фильтра b рассчитываются с помощью функции fir1 и
окна Кайзера.
» Rp = 0.8; Rs = 30; % пульсации и миним-ое ослабление в децибелах
» Kp =(10^(Rp/10)-1)^0.5; Km = 10^(-Rs/10); % пересчет Rp, Rs
» f1 = 2.0*V; f2 = 3.0*V; % частота логической единицы и нуля
» f3 = 1.15*f2; f4=1.55*f2; f5 = 1.9*f2; f6 = 2.4*f2;
» [n,Wn,beta,ftype] = kaiserord ([f3,f4,f5,f6], [1 0 1], [Kp,Km,Kp], Fs);
» b = fir1(n, Wn, ftype, kaiser (n+1, beta), 'noscale');
Функция kaiserord возвращает минимальный порядок фильтра n = 38,
функция fir1 определяет коэффициенты b:
-0.0119 0.0002 0.0162 0.0140 -0.0046 -0.0134 -0.0043
-0.0006 -0.0126 -0.0090 0.0305 0.0570 0.0066 -0.0853
-0.0950 0.0233 0.1412 0.1004 -0.0689 0.8350 -0.0689
0.1004 0.1412 0.0233 -0.0950 -0.0853 0.0066 0.0570
0.0305 -0.0090 -0.0126 -0.0006 -0.0043 -0.0134 -0.0046
0.0140 0.0162 0.0002 -0.0119
Найденные коэффициенты не превышают по модулю единицы, следова-
тельно, не требуют масштабирования при вводе в формате 1.15.
Функция kaiserord использует простые эмпирические формулы для рас-
чета параметров и поэтому может давать неточные результаты, особенно если
в заданной АЧХ имеются частоты среза, близкие к нулю или частоте Найкви-
ста. Поэтому после синтеза фильтра с помощью функции fir1 необходимо про-
верить его АЧХ функцией freqz.
В некоторых вариантах курсовой работы при определении коэффициен-
тов b возможно появление сообщения об ошибке и подсказки в MATLAB о