1《数字信号处理系统》实践任务报告学号:3110411072姓名:王伟东班级:11级信计2班一、问题提出:1.1实验背景:滤波器是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电。对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就是得到一个特定频率或消除一个特定频率。经典滤波器按通频带分类可以分为低通(LP)、高通(HP)、带通(BP)、带阻(BS),按处理信号类型可以分为模拟滤波器和数字滤波器。通过Matlab语言可以快捷的设计出有软件组成的数字滤波器,其中FIR滤波器(即有限冲击响应滤波器)最大的优点就是在满足幅频特性的同时,还可以获得严格的线性相位特性。1.2实验要求:某一数字信号由500Hz、1000Hz和1500Hz三个频率组成,采样频率为4000Hz,请1.设计一个低通滤波器,将上述数字信号送入滤波器后只留下500Hz频率分量;2.设计一个带通滤波器,将上述数字信号送入滤波器后只留下1000Hz频率分量;3.设计一个高通滤波器,将上述数字信号送入滤波器后只留下1500Hz频率分量;4.设计一个带阻滤波器,将上述数字信号送入滤波器后滤除1000Hz频率分量;要求从时域和频域两个角度说明滤波前后信号的变化。1.3实验目的:1.熟悉FIR滤波器的滤波原理2.熟悉FIR滤波器的汇编实现3.熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解4.学习用MATLAB设计滤波器二、试验方法和过程2.1实验原理:数字滤波器的设计,是对提出的设计要求给出响应的性能指标,再通过计算,使物理可实现的实际滤波器频率响应特性,逼近给出的频率响应特性。设计完成后,可根据计算结果在MATLAB或DSP上实现。2应用Matlab设计FIR滤波器,即根据给定的性能指标,设计一个H(z、),使其逼近这一指标,进而计算并确定滤波器的系数b(n),再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求比较,对设计的滤波器进行优化,从而达到滤波的目的。FIR数字滤波器系统的传递函数为:10(z)(z)(n)z(z)NnnYHbX由此得到系统的差分方程:(n)(n)x(n)(1)x(n1)...b(N1)x[n(N1)]ybb若FIR数字滤波器的单位脉冲响应序列为好h(n),它就是滤波器系数向量b(n)。2.1实验工具:Matlab2.2试验方法:利用FilterDesign&AnalysisTools2.2.1FIR滤波器的窗函数设计法FIR滤波器的设计方法有许多种,这里采用如窗函数设计法。窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得优先长的的脉冲响应序列,主要设计步骤为:(1)通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。1sin[()]()2()txjwxdtxwnahnedwna(2)有性能指标确定窗函数W(n)和窗口长度N(3)求得实际滤波器的单位脉冲响应h(n),h(n)即为所设计FIR滤波器系数向量b(n)。()()()dhnhnWn(4)检验滤波器结果。2.3滤波器设计步骤:假设有某一合成信号,表达式如下:f=cos(2*pi*500*t)+5*cos(2*pi*1000*t)+10*cos(2*pi*1500*t)以下为请设计三个滤波器,分别提取出信号中各频率分量,并分别绘制出通过这三个滤波器后信号的时域波形和频谱。以FIR滤波器为例,程序如下:3某一数字信号由500Hz、1000Hz和1500Hz三个频率组成,采样频率为4000Hzclear;fs=4000;t=(1:1000)/fs;x=cos(2*pi*500*t)+5*cos(2*pi*1000*t)+10*cos(2*pi*1500*t);L=length(x);N=2^(nextpow2(L));Hw=fft(x,N);figure(1);subplot(2,1,1);plot(t,x);gridon;title('滤波前信号x');xlabel('时间/s');%原始信号subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw));%查看信号频谱gridon;title('滤波前信号频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');1.设计一个低通滤波器,将上述数字信号送入滤波器后只留下500Hz频率分量;%%x_1=cos(2*pi*500*t)Ap=1;As=60;%定义通带及阻带衰减dev=[(10^(Ap/20)-1)/(10^(Ap/20)+1),10^(-As/20)];%计算偏移量mags=[1,0];%低通fcuts=[60,100];%边界频率[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);%估算FIR滤波器阶数hh1=fir1(N,Wn,ftype,kaiser(N+1,beta));%FIR滤波器设计x_1=filter(hh1,1,x);%滤波x_1(1:ceil(N/2))=[];%群延时N/2,删除无用信号部分L=length(x_1);N=2^(nextpow2(L));Hw_1=fft(x_1,N);figure(2);subplot(2,1,1);plot(t(1:L),x_1);gridon;title('x_1=cos(2*pi*500*t)');xlabel('时间/s');subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw_1));%查看信号频谱gridon;title('滤波后信号x_1频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');2.设计一个带通滤波器,将上述数字信号送入滤波器后只留下1000Hz频率分量;%%x_2=5*cos(2*pi*1000*t)Ap=1;As=60;%定义通带及阻带衰减dev=[10^(-As/20),(10^(Ap/20)-1)/(10^(Ap/20)+1),10^(-As/20)];%计算偏移量mags=[0,1,0];%带通fcuts=[80,120,180,220];%边界频率[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);%估算FIR滤波器阶数hh2=fir1(N,Wn,ftype,kaiser(N+1,beta));%FIR滤波器设计x_2=filter(hh2,1,x);%滤波x_2(1:ceil(N/2))=[];%群延时N/2,删除无用信号部分L=length(x_2);N=2^(nextpow2(L));Hw_2=fft(x_2,N);figure(3);subplot(2,1,1);plot(t(1:L),x_2);gridon;title('x_2=5*cos(2*pi*1000*t)');xlabel('时间/s');subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw_2));%查看信号频谱gridon;title('滤波后信号x_2频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');43.设计一个高通滤波器,将上述数字信号送入滤波器后只留下1500Hz频率分量;%%x_3=10*cos(2*pi*1500*t)Ap=1;As=60;%定义通带及阻带衰减dev=[10^(-As/20),(10^(Ap/20)-1)/(10^(Ap/20)+1)];%计算偏移量mags=[0,1];%高通fcuts=[500,550];%边界频率[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);%估算FIR滤波器阶数hh2=fir1(N,Wn,ftype,kaiser(N+1,beta));%FIR滤波器设计x_3=filter(hh2,1,x);%滤波x_3(1:ceil(N/2))=[];%群延时N/2,删除无用信号部分L=length(x_3);N=2^(nextpow2(L));Hw_3=fft(x_3,N);figure(4);subplot(2,1,1);plot(t(1:L),x_3);gridon;title('x_3=10*cos(2*pi*600*t)');xlabel('时间/s');subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw_3));%查看信号频谱gridon;title('滤波后信号x_3频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');5.设计一个带阻滤波器,将上述数字信号送入滤波器后滤除1000Hz频率分量%%x_4=5*cos(2*pi*1000*t)fp=[5001500];fs=[8001200];rp=3;rs=18;Fs=4000;wp=fp*2*pi/Fs;ws=fs*2*pi/Fs;%%Firstlytofinishfrequencyprewarping;wap=2*Fs*tan(wp./2)was=2*Fs*tan(ws./2);[n,wn]=buttord(wap,was,rp,rs,'s');%Note:'s'![z,p,k]=buttap(n);[bp,ap]=zp2tf(z,p,k)%bw=wap(2)-wap(1)w0=sqrt(wap(1)*wap(2))[bs,as]=lp2bs(bp,ap,w0,bw)%带阻[h1,w1]=freqs(bp,ap);figure(1)plot(w1,abs(h1));grid;ylabel('lowpassG(p)')%w2=[0:Fs/2-1]*2*pi;h2=freqs(bs,as,w2);52.4实验结果:经过滤波后得到如下下的图像:某一数字信号由500Hz、1000Hz和1500Hz三个频率组成,采样频率为4000Hz1.设计一个低通滤波器,将上述数字信号送入滤波器后只留下500Hz频率分量;672.设计一个带通滤波器,将上述数字信号送入滤波器后只留下1000Hz频率分量;83.设计一个高通滤波器,将上述数字信号送入滤波器后只留下1500Hz频率分量;4.设计一个带阻滤波器,将上述数字信号送入滤波器后滤除1000Hz频率分量9