当前位置:首页 > 电子科技大学信号处理实验4 - 数字滤波器设计及实现
%FIR滤波器的实现 T=0.1; format long fw_b=100; fw1=2000; fw2=4000; fs=20000; ts=1/fs; tw=1/fw_b; tb=0:tw:T; N=length(tb); t=0:ts:T;
random=rand(1,N); x_b=zeros(1,N); for n=1:N
if(random(n)>=0.5) x_b(n)=1; else
x_b(n)=0; end end
x=zeros(1,length(t)); m=1; for n=2:N
for k=m:length(t) if (t(k) x(k)=cos(2*pi*fw1*t(k)); else x(k)=cos(2*pi*fw2*t(k)); end m=k+1; end end end figure(1); subplot(2,2,1); plot(t,x); title('FSK信号的时域图'); xlabel('时间/s');ylabel('y'); nn=length(x); r=fft(x)/n; r=fftshift(r); f=linspace(-fs/2,fs/2,nn); subplot(2,2,2); plot(f,abs(r)); title('FSK信号的频域图'); xlabel('频率/Hz');ylabel('幅值/A'); rp=1; rs=40; Ffs=20000; Ff=[2200,3500]; a=[1,0]; dev=[(10^(rp/20)-1)/(10^(rp/20)+1),10^(-rs/20)]; [N,fo,ao,w]=firpmord(Ff,a,dev,Ffs); Wn=2200/Ffs*2; h_fir=fir1(N,Wn); y=filter(h_fir,1,x); subplot(2,2,3); plot(t,y); title('FIR滤波器滤波后的时域图'); xlabel('时间/s');ylabel('y'); r_f=fft(y)/n; r_f=fftshift(r_f); subplot(2,2,4); plot(f,abs(r_f)); title('FIR滤波器滤波后的频域图'); xlabel('频率/Hz');ylabel('幅值/A'); (5) 修改滤波器的指标后的代码和结果图。(拓展要求) %IIR滤波器的实现,将通带截止频率修改为2000Hz T=0.1; format long fw_b=100; fw1=2000; fw2=4000; fs=20000; ts=1/fs; tw=1/fw_b; tb=0:tw:T; N=length(tb); t=0:ts:T; random=rand(1,N); x_b=zeros(1,N); for n=1:N if(random(n)>=0.5)
共分享92篇相关文档