您好,欢迎访问三七文档
实验二:FIR数字滤波器设计与软件实现主函数:clearall;closeall;%==调用xtg产生信号xt,xt长度N=1000,并显示xt及其频谱,=========N=1000;xt=xtg;fp=120;fs=150;Rp=0.2;As=60;Fs=1000;%输入给定指标%(1)用窗函数法设计滤波器wc=(fp+fs)/Fs;B=2*pi*(fs-fp)/Fs;Nb=ceil(11*pi/B);hn=fir1(Nb-1,wc,blackman(Nb));%要求填入参数Hw=abs(fft(hn,1024));%要求填入参数ywt=fftfilt(hn,xt,N);%要求填入参数%以下为用窗函数法设计法的绘图部分(滤波器损耗函数,滤波器输出信号波形)f=[0:1023]*Fs/1024;figure(2)subplot(2,1,1)plot(f,20*log10(Hw/max(Hw)));grid;title('(a)低通滤波器幅频特性')axis([0,Fs/2,-120,20]);xlabel('f/Hz');ylabel('幅度')t=[0:N-1]/Fs;Tp=N/Fs;subplot(2,1,2)plot(t,ywt);grid;axis([0,Tp/2,-1,1]);xlabel('t/s');ylabel('y_w(t)');title('(b)滤除噪声后的信号波形')%(2)用等波纹最佳逼近法设计滤波器fb=[fp,fs];m=[1,0];%确定remezord函数所需参数f,m,devdev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)];[Ne,fo,mo,W]=remezord(fb,m,dev,Fs);hn=remez(Ne,fo,mo,W);%要求填入参数Hw=abs(fft(hn,1024));%要求填入参数yet=fftfilt(hn,xt,N);%要求填入参数%以下为用等波纹设计法的绘图部分(滤波器损耗函数,滤波器输出信号波形)figure(3);subplot(2,1,1)f=[0:1023]*Fs/1024;plot(f,20*log10(Hw/max(Hw)));grid;title('(c)低通滤波器幅频特性')axis([0,Fs/2,-80,10]);xlabel('f/Hz');ylabel('幅度')subplot(2,1,2);plot(t,yet);grid;axis([0,Tp/2,-1,1]);xlabel('t/s');ylabel('y_e(t)');title('(d)滤除噪声后的信号波形')调用函数xtg:functionxt=xtgN=1000;Fs=1000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;fc=Fs/10;f0=fc/10;mt=cos(2*pi*f0*t);ct=cos(2*pi*fc*t);xt=mt.*ct;nt=2*rand(1,N)-1;fp=150;fs=200;Rp=0.1;As=70;fb=[fp,fs];m=[0,1];dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];[n,fo,mo,W]=remezord(fb,m,dev,Fs);hn=remez(n,fo,mo,W);yt=filter(hn,1,10*nt);xt=xt+yt;fst=fft(xt,N);k=0:N-1;f=k/Tp;subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');axis([0,Tp/5,min(xt),max(xt)]);title('(a)信号加噪声波形')subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('(b)信号加噪声波形的频谱')axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度')运行结果:
本文标题:数字信号上机2
链接地址:https://www.777doc.com/doc-2387636 .html