Сообразил в матлабе фильтр
Код
Fs=8000; % Sampling frequency 8 kHz
fc=800; % Passband cutoff frequency 800 Hz
fs=1600; % Stopband frequency 1.6 kHz
Rp=1; % Passband ripple in dB
Rs=20; % Stopband attenuation in dB
Wp=2*fc/Fs; % Normalized passband edge frequency
Ws=2*fs/Fs; % Normalized stopband edge frequency
[N,Wn]=buttord(Wp,Ws,Rp,Rs); % Filter order selection
[b,a]=butter(N,Wn); % Butterworth filter design
[Z,P,K]=tf2zp(b,a); % Transfer function to zero-pole
[sos,G]=zp2sos(Z,P,K); % Zero-pole to 2nd-order section
fc=800; % Passband cutoff frequency 800 Hz
fs=1600; % Stopband frequency 1.6 kHz
Rp=1; % Passband ripple in dB
Rs=20; % Stopband attenuation in dB
Wp=2*fc/Fs; % Normalized passband edge frequency
Ws=2*fs/Fs; % Normalized stopband edge frequency
[N,Wn]=buttord(Wp,Ws,Rp,Rs); % Filter order selection
[b,a]=butter(N,Wn); % Butterworth filter design
[Z,P,K]=tf2zp(b,a); % Transfer function to zero-pole
[sos,G]=zp2sos(Z,P,K); % Zero-pole to 2nd-order section
Пример взят из книжки.
Проверяю коэффициенты передаточной функции, все сходится.
А вот после преобразования в коэффициенты биквадратного блока начинаются проблемы.
Код
sos =
1.0000 2.0000 1.0000 1.0000 -0.8659 0.2139
1.0000 2.0000 1.0000 1.0000 -1.1249 0.5770
1.0000 2.0000 1.0000 1.0000 -0.8659 0.2139
1.0000 2.0000 1.0000 1.0000 -1.1249 0.5770
Коэффициенты нерекурсивной части фильтр почему-то округлились до целых чисел.
С матлабом работаю недавно и ни как не соображу, что делаю не верно.