1、式中,为幅度误差加权函数,用来控制不同频带(一般指通带和阻带)的幅度逼近精度。等波纹最佳逼近法的设计在于找到滤波器的系数向量,使得在通带和阻带内的最大绝对值幅度误差为最小,这也就是最大误差最小化问题。二、等波纹逼近法设计滤波器的步骤和函数介绍1.根据滤波器的设计指标的要求:边界频率,通带最大衰减,阻带最大衰等估计滤波器阶数n,确定幅度误差加权函数2.采用Parks-McClellan算法,获得所设计滤波器的单位脉冲响应实现FIR数字滤波器的等波纹最佳逼近法的MATLAB信号处理工具函数为firpm和firpmord。 firpm函数采用数值分析中的多重交换迭代算法求解等波纹最佳逼近问题,求的满
2、足等波纹最佳逼近准则的FIR数字滤波器的单位脉冲响应firpmord根据逼近指标,计算采用Parks-McClellan算法等波纹最佳逼近滤波器的最低阶数,误差加权向量w,归一化边界频率向量f。3对firpm和firpmord的说明firpm函数功能:采用Parks-McClellan算法设计FIR滤波器函数格式:hn=firpm(n,f,m,w)n是滤波器的阶hn是数字滤波器的单位脉冲响应,其长度为n+1f是希望滤波器的边界频率向量,要求f是单调增向量,并且从0开始,以1结束,1对于数字频率m是与f对应的希望滤波器的幅度向量,m和f的长度相等,表示希望滤波器在频率点上的幅频响应,m和f给出了
3、希望滤波器的幅度特性。w是误差加权向量,其长度为f的一半。表示对m中第i个频率段幅度逼近精度的加权值。w缺省时,函数默认w全为1,即每个频率段的逼近误差加权值相同。firpmord函数根据逼近指标,计算采用Parks-McClellan算法等波纹最佳逼近滤波器的最低阶数n,误差加权向量w和归一化边界频率f。其返回参数作为firpm函数的调用参数。n,f,m,w=firpmord(f,m,rip,fs)f可以是归一化边界数字频率向量,也可以是模拟边界频率向量,但必须以0开始,以1结束或fs/2结束,并且其中省略了0和fs/2两个频率点。fs是时域采样频率,单位Hz。fs缺省时,函数默认fs=2H
4、z.但这是f的长度(包括省略0和fs/2两个频率点)是m的两倍,即m中的每个元素表示f给定的一个逼近频段上的希望逼近的幅度值。rip表示f和m描述的各逼近段允许的波纹振幅(幅频响应最大偏差)。4.注意事项:省略fs时,f必须是归一化的数字频率有时计算的阶数n略小,使设计结果达不到指标要求,这时要取n+1或n+2三、程序低通滤波器设计 % Lowpass filter: wp=, ws=, N=26 % peak passband ripple is , peak stopband ripple is clc;clear;clear all;wp_l=*pi; ws_l=*pi; N1=26;
5、deltal_1=; deltal_2=; %初始化参数 f_l=0 wp_l ws_l pi/pi; %设定归一化的firpm函数参数 deltal=deltal_1,deltal_2;a_l=1 1 0 0; %幅值 n,f,m,w_l=firpmord(f_l(2:3),1 0,deltal); %计算权值 fil_l=firpm(N1,f_l,a_l,w_l); %生成滤波器 figure(1); stem(fil_l,.);title(impulse response of lowpass filterxlabel(time sequence) ;ylabel(amplitudeff
6、t_l=fft(fil_l,1024);db_l=20*log10(abs(fft_l); %对数表示 figure(2);plot(0:length(fft_l)-1/length(fft_l),db_l); %将横坐归化到0-1,单位为1/1024 Log-magnitude response of lowpass filterNormalized frequencyMagnitude response (dB)axis(0 -100 10); %设坐标轴的范围,只取0-2pi的一半 afl=abs(fft_l); %取傅变的幅值 afl_p=zeros(1,1024/2);afl_s=z
7、eros(1,1024/2); %初始化两个一行512列的零序列 afl_p (1:fix(wp_l/(2*pi)*1024)=afl(1:fix(wp_l/(2*pi)*1024)-1; %将通带幅值赋给序列一 afl_s (fix(ws_l/(2*pi)*1024)+3:end)=afl(fix(ws_l/(2*pi)*1024)+3:end/2); %将阻带幅值赋给序列二 figure(3);1024/2-1/1024,afl_p+afl_s); %将通带和阻带的波形显示到一幅图像上 passband and stopband approximation error of lowpass
8、 filterNormalized frequency Passband and stopband ripple带通滤波器设计% Bandpass filter:ws1=, wp1=, wp2=, ws2=, N=80 % peak passband ripple is , each peak stopband ripple is ws_b1=*pi; wp_b1=*pi; wp_b2=*pi; ws_b2=*pi; N2=80; deltab_1=; deltab_2=; deltab_3=;deltab=deltab_1,deltab_2,deltab_3;f_b=0 ws_b1 wp_b
9、1 wp_b2 ws_b2 pi/pi;a_b=0 0 1 1 0 0;n,f,m,w_b=firpmord(f_b(2:5),0 1 0,deltab);fil_b=firpm(N2,f_b,a_b,w_b);figure(4);stem(fil_b,impulse response of bandpass filterfft_b=fft(fil_b,1024);db_b=20*log10(abs(fft_b);figure(5);length(fft_b)-1/length(fft_b),db_b); Log-magnitude response of bandpass filterafb
10、=abs(fft_b);afb_p=zeros(1,1024/2);afb_s=zeros(1,1024/2);afb_p(fix(wp_b1/(2*pi)*1024)+3:fix(wp_b2/(2*pi)*1024)=afb(fix(wp_b1/(2*pi)*1024)+3:fix(wp_b2/(2*pi)*1024)-1;afb_s (fix(ws_b2/(2*pi)*1024)+2:end)=afb(fix(ws_b2/(2*pi)*1024)+2:afb_s (1:fix(ws_b1/(2*pi)*1024)=afb(1:fix(ws_b1/(2*pi)*1024);figure(6)
11、; plot(0:1024/2-1/(1024),afb_p+afb_s);passband and stopband approximation error of bandpass filter高通滤波器设计% Highpass filter: ws=, wp=, N=34 ws_h=*pi; wp_h=*pi; N3=34; deltah_1=; deltah_2=;deltah=deltah_1,deltah_2;f_h=0 ws_h wp_h pi/pi;a_h=0 0 1 1;n,f,m,w_h=firpmord(f_h(2:3),0 1,deltah)fil_h=firpm(N3,
12、f_h,a_h,w_h);figure(7);stem(fil_h,impulse response of highpass filterfft_h=fft(fil_h,1024);db_h=20*log10(abs(fft_h);figure(8);length(fft_h)-1/length(fft_h),db_h); Log-magnitude response of highpass filterafh=abs(fft_h);afh_p=zeros(1,1024/2);afh_s=zeros(1,1024/2);afh_p (fix(wp_h/(2*pi)*1024)+5:end)=afh(fix(wp_h/(2*pi)*1024)+5:end/2)-1;afh_s (1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1