当前位置:首页 > 电子科技大学信号处理实验4 - 数字滤波器设计及实现
安装了MATLAB软件的PC机一台。
七、实验步骤:
(1) 给定输入信号:FSK信号(输入的二进制待调信号为随机信号,码元
频率为100Hz,两个载频分别为2kHz和4kHz,采样频率为20kHz,)。利用MATLAB编程产生该信号,画出其时域和频域图。
(2) 利用MATLAB编程设计一个数字低通滤波器,指标要求如下:
通带截止频率:
fp?2.2kHz;阻带截止频率:
fs?3.5kHz;采样频率
??1[dB]?S?40[dB]。fT?20kHz;通带峰值起伏:p;最小阻带衰减:
分别用MATLAB中的IIR和FIR设计命令进行滤波器设计,得出需要的滤波器系数。
(3) 用MATLAB滤波器辅助设计软件对上述滤波器进行设计,并将得到的
滤波器系数对输入信号进行滤波,观察滤波结果。
(4) 将得到的滤波器系数在MATLAB中编程进行实现(选择直接型实现结
果进行实现),对(1)中的输入信号进行滤波(分别用FIR和IIR滤波器进行),观察滤波结果,画出时域和频域图像。
(5) (拓展要求)修改需要设计的滤波器的指标要求,比如:将通带截止
频率修改为2kHz,或者将最小阻带衰减改为?S?20[dB],这时再重复(3)和(5)的步骤,观察所得到的滤波器效果,并对这一结果进行解释。
(6) (拓展要求)利用“fdatool”设计IIR级联和并联实现的滤波器系数,分
析有限字长的影响,并与实际的滤波结果进行对比。
八、实验数据及结果分析:
需要的程序代码和结果:
(1) 产生FSK信号,画出其时域和频域图。
%FSK信号的产生程序 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,1,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,1,2); plot(f,abs(r)); title('FSK信号的频域图'); xlabel('频率/Hz');ylabel('幅值/A'); (2) 用MATLAB中滤波器设计相关函数编程完成IIR和FIR滤波器设计, 得出需要的滤波器系数。 %IIR 滤波器的设计程序 Ffs=20000; Wp=2200*2/Ffs; Ws=3500*2/Ffs; Rp=1; Rs=40; [N,Wn]=buttord(Wp,Ws,Rp,Rs); [num,den]=butter(N,Wn); freqz(num,den)
共分享92篇相关文档