s5700 28c si:用Remez算法设计一个低通滤波器

来源:百度文库 编辑:中财网 时间:2024/04/29 14:13:26

clc
clear
%%%用Remez算法设计一个低通滤波器,分别满足性能参数:
%                                  滤波器1             滤波器2             滤波器3
%采样率Fs:                          20kHz               20kHz               20kHz
%通带:                               0-3                0-4kHz              0-5kHz
%带内波纹:                          0.1dB               0.1dB                0.1dB
%带内衰减:                            60dB               60dB                 60dB

%filter 1
fo=2e4;                               %采样率
rp=0.1;rs=60;                         %通带波动、阻带衰减
fp=2900;                              %通带截止频率
fs=3100;                              %阻带截止频率
a=[1 0];                              %期望幅度变化
dev = [(10^(rp/20)-1)/(10^(rp/20)+1)  10^(-rs/20)];%【阻带最大幅度  通带最大波动】
[n,fc,mo,w]=remezord([fp,fs],a,dev,fo);
b = remez(n,fc,mo,w);
figure(1)
impz(b);
figure(2)
freqz(b,1,1024,fo);
title('Lowpass Filter Designed to Specifications');

%filter2

fp=3900;                              %通带截止频率
fs=4100;                              %阻带截止频率
a=[1 0];                              %期望幅度变化
dev = [(10^(rp/20)-1)/(10^(rp/20)+1)  10^(-rs/20)];%【阻带最大幅度  通带最大波动】
[n,fc,mo,w]=remezord([fp,fs],a,dev,fo);
b = firpm(n,fc,mo,w);
figure(3)
impz(b);
figure(4)
freqz(b,1,1024,fo);
title('Lowpass Filter Designed to Specifications');
%filter3

fp=4900;                              %通带截止频率
fs=5100;                              %阻带截止频率
a=[1 0];                              %期望幅度变化
dev = [(10^(rp/20)-1)/(10^(rp/20)+1)  10^(-rs/20)];%【阻带最大幅度  通带最大波动】
[n,fc,mo,w]=remezord([fp,fs],a,dev,fo);
b = firpm(n,fc,mo,w);
figure(5)
impz(b);
figure(6)
freqz(b,1,1024,fo);
title('Lowpass Filter Designed to Specifications');