当前位置:范文大全 > 教案设计 > [数字信号处理设计实验报告 西电]数字信号处理史林

[数字信号处理设计实验报告 西电]数字信号处理史林

时间:2021-11-06 17:00:54 浏览次数:

 . . .

 .. ..

 数字信号处理

 设计实验报告

 一、实验目的通过实验学会设计IIR和FIR数字滤波器分离多个信号,并用matlab实现。

 二、实验容

 用数字信号处理技术实现两个时域重叠信号的分离,及相位检波,设计分离和检波的方法,编写计算机程序,模拟信号处理过程,绘出时域和频域的处理结果。

 

 滤波器2滤波器1

 滤波器2

 滤波器1

 

 

 采样

 采样

 

 滤波器4滤波器3

 滤波器4

 滤波器3

 

 三、程序设计

 模拟信号的时域波形,频谱

 Fs=40000;

 t=0:1/Fs:4;

 s1=cos(2*pi*30*t).*cos(2*pi*100*t);

 s2=cos(2*pi*70*t).*cos(2*pi*700*t);

 st=s1+s2;

 S1=abs(fftshift(fft(s1)))/80000;

 S2=abs(fftshift(fft(s2)))/80000;

 ST=abs(fftshift(fft(st)))/80000;

 F = (-80000:80000)*0.25

 figure(1)

 subplot(321);

 plot(t,s1);title('s1时域波形');

 xlabel('时间t');ylabel('幅度');grid on;

 axis([0 0.1 -1 1])

 subplot(322);

 plot(F,S1);title('s1频谱');

 xlabel('频率F');ylabel('幅值');grid on;

 axis([-1000 1000 0 1])

 subplot(323);

 plot(t,s2);title('s2时域波形');

 xlabel('时间t');ylabel('幅度');grid on;

 axis([0 0.05 -1 1])

 subplot(324);

 plot(F,S2);title('s2频谱');

 xlabel('频率F');ylabel('幅值');grid on;

 axis([-1000 1000 0 1])

 subplot(325);

 plot(t,st);title('st时域波形');

 xlabel('时间t');ylabel('幅度');grid on;

 axis([0 0.05 -1 1])

 subplot(326);

 plot(F,ST);title('st频谱');

 xlabel('频率F');ylabel('幅值');grid on;

 axis([-1000 1000 0 1])

 采样信号的时域波形,频谱

 Fs1=4000;

 t1=0:1/Fs1:4; N = 0:length(t1)-1

 s1n=cos(2*pi*30*N/Fs1).*cos(2*pi*100*N/Fs1);

 s2n=cos(2*pi*70*N/Fs1).*cos(2*pi*700*N/Fs1);

 sn=s1n+s2n;

 S1N=abs(fftshift(fft(s1n)))/8000;

 S2N=abs(fftshift(fft(s2n)))/8000;

 SN=abs(fftshift(fft(sn)))/8000;

 F1 = (-8000:8000)*0.25

 figure(2)

 subplot(321);

 stem(t1,s1n);title('s1n时域波形');

 xlabel('时间t');ylabel('幅度');grid on;

 axis([0 0.05 -1 1])

 subplot(322);

 plot(F1,S1N);title('S1N频谱');

 xlabel('频率F');ylabel('幅值');grid on;

 axis([-1000 1000 0 1])

 subplot(323);

 stem(t1,s2n);title('s2n时域波形');

 xlabel('时间t');ylabel('幅度');grid on;

 axis([0 0.025 -1 1])

 subplot(324);

 plot(F1,S2N);title('S2N频谱');

 xlabel('频率F');ylabel('幅值');grid on;

 axis([-1000 1000 0 1])

 subplot(325);

 stem(t1,sn);title('sn时域波形');

 xlabel('时间t');ylabel('幅度');grid on;

 axis([0 0.025 -1 1])

 subplot(326);

 plot(F1,SN);title('SN频谱');

 xlabel('频率F');ylabel('幅值');grid on;

 axis([-1000 1000 0 1])

 通过前级滤波器的波形

 fp1 = 300;fs1 = 400;Rp = 1;Rs=40

 Wp1=2*fp1/Fs1;Ws1=2*fs1/Fs1; %%滤波器1

 [M1,Wc1]=buttord(Wp1,Ws1,Rp,Rs);

 [Bz1,Az1]=butter(M1,Wc1,'low');

 fp2 = 500;fs2 = 400;Rp = 1;Rs=40

 Wp2=2*fp2/Fs1;Ws2=2*fs2/Fs1; %%滤波器2

 [M2,Wc2]=buttord(Wp2,Ws2,Rp,Rs);

 [Bz2,Az2]=butter(M2,Wc2,'high');

 s3=filter(Bz1,Az1,sn); %信号通过低通滤波器

 S3=abs(fftshift(fft(s3)))/8000; %%还原真实幅值,由于是N个点的叠加

 s4=filter(Bz2,Az2,sn); %信号通过高通滤波器

 S4=abs(fftshift(fft(s4)))/8000; %%还原真实幅值,由于是N个点的叠加

 figure(3)

 subplot(221);

 plot(t1,s3);title('通过前级低通滤波器1信号时域波形');

 xlabel('时间t');ylabel('幅值');grid on

 axis([0 0.1 -1 1])

 subplot(222);

 plot(F1,S3);title('通过前级低通滤波器1信号频谱图');

 xlabel('频率f');ylabel('幅值');grid on;

 axis([-1000 1000 0 1])

 subplot(223);

 plot(t1,s4);title('通过前级高通滤波器1信号时域波形');

 xlabel('时间t');ylabel('幅值');grid on

 axis([0 0.1 -1 1])

 subplot(224);

 plot(F1,S4);title('通过前级高通滤波器1信号频谱图');

 xlabel('频率f');ylabel('幅值A');grid on;

 axis([-1000 1000 0 1])

 后级检波滤波输出

 L1=cos(2*pi*100*N/Fs1);

 L2=cos(2*pi*700*N/Fs1); %本振信号

 x1=L1.*s3;

 x2=L2.*s4;

 fp3 = 50;fs3 =90;

 Wp3=2*fp3/Fs1;Ws3=2*fs3/Fs1;Rp=1;Rs=40; %%后级滤波器LPF1

 [M3,Wc3]=buttord(Wp3,Ws3,Rp,Rs);

 [Bz3,Az3]=butter(M3,Wc3,'low');

 y1=filter(Bz3,Az3,x1); %信号通过低通滤波器

 Y1=abs(fftshift(fft(y1)))/8000;

 fp4 = 200;fs4 =300;

 Wp4=2*fp4/Fs1;Ws4=2*fs4/Fs1;Rp=1;Rs=40; %%后级滤波器LPF2

 [M4,Wc4]=buttord(Wp4,Ws4,Rp,Rs);

 [Bz4,Az4]=butter(M4,Wc4,'low');

 y2=filter(Bz4,Az4,x2); %信号通过低通滤波器

 Y2=abs(fftshift(fft(y2)))/8000;

 figure(4)

 subplot(221);

 plot(t1,y1);title('通过后级低通滤波器1信号时域波形');

 xlabel('时间t');ylabel('幅值');grid on;

 axis([0.1 0.6 -1 1])

 subplot(222);

 plot(F1,Y1);title('通过后级低通滤波器1信号频谱图');

 xlabel('频率f');ylabel('幅值A');grid on;

 axis([-100 100 0 0.5])

 subplot(223);

 plot(t1,y2);title('通过后级低通滤波器2信号时域波形');

 xlabel('时间t');ylabel('幅值');grid on;

 axis([0.1 0.6 -1 1])

 subplot(224);

 plot(F1,Y2);title('通过后级低通滤波器2信号频谱图');

 xlabel('频率f');ylabel('幅值A');grid on;

 axis([-100 100 0 0.5])

 实验结果及分析

 由上图可知,s1(t)的频谱分量分布在70hz、130hz、-70hz、-130hz处,s2(t)的频谱分量在630hz、770hz、-630hz、-770hz处,而s(t)的频谱是s1(t)、s2(t)的叠加。

 上图是s1(t)、s2(t)、s(t)采样后信号的时域频域波形图。

 S(t)通过前级低通滤波器后,低频分量被滤出,即分离出了s1(t);

 S(t)通过前级高通滤波器后,高频分量被滤出,即分离出了s2(t)。

 3图得到的波形进行相位检波后,就得到了两个余弦信号和,进行频谱分析后的频率分量分别分布在和处,可检验设计程序的正确性。

 实验心得

  通过此次实验,熟练掌握了巴特沃斯滤波器的matlab设计方法,验证了利用滤波器有效分离出信号的可能性。实验中遇到问题应积极查阅资料,尽量自行解决。