其次明确各个参数的要求,然后用matlab软件编程实现。 参考文献
数字信号处理及应用(第二版)王华奎主编 高等教育出版社 数字信号处理 理论及应用 俞一彪 孙兵 编著 高等教育出版社
数字信号处理教程 程佩青 清华大学出版社
数字信号处理的matlab实现 方永革 编著 科学出版社 数字信号处理 楼志国 楼国红 陈友兴 张权 郝慧艳编著 科学出版社
数字信号处理 陈后金主编 薛健 胡健 编 高等教育出版社 程序清单
等波纹法设计程序清单
%利用等波纹最佳逼近法设计FIR数字滤波器 Fs=15000;f=[1500,2250];m=[1,0]; rp=0.25;rs=50;
delta1=(10^(rp/20)-1)/(10^(rp/20)+1);delta2=10^(-rs/20); rip=[delta1,delta2];
[M,fo,mo,w]=remezord(f,m,rip,Fs);%边界频率为模拟频率时必须加入采样频率
M=M+1;%估算的M直达不到要求,家1后满足要求 hn=remez(M,fo,mo,w);
[Hk,w] = freqz(hn,1); % 计算频率响应
mag = abs(Hk); % 求幅频特性 db = 20*log10(mag/max(mag)); % 化为分贝值 db1=db';
figure,plot(0:pi/511:pi,db1),grid on
axis([0,4.0,-80,5]),title('数字滤波器——等波纹最佳逼近法') 窗函数法设计程序清单 fp=1500;fs=2250; Fs=15000;As=50;
wp=2*pi*fp/Fs;ws=2*pi*fs/Fs; wc=(wp+ws)/2/pi;beta=0.1102*(As-8.7); N=ceil((As-8)/(2.285*(ws-wp))+1); ?il(x)为大于或等于x的最小整数 hdn=kaiser(N,beta);
%产生长度为N的凯塞窗函数 hn=fir1(N-1,wc,'low',kaiser(N,beta)); subplot(121); stem(0:N-1,hn,'k.'); %绘制滤波器时域波形 axis([0 N-1 -0.1 0.5]); xlabel('n'); ylabel('h(n)'); grid on;
omega=linspace(0,pi,512); mag=freqz(hn,[1],omega); %计算单位抽样响应的频率响应 magab=20*log10(abs(mag)); subplot(122);
plot(omega/pi,magab,'k'); %绘制对数幅度特性曲线 axis([0 1 -80 5]); xlabel('\\omega/\\pi');
ylabel('20lg[H(e^j^\\omega)]'); grid on;