数字信号处理设计实验报告一、实验目的通过实验学会设计IIR和FIR数字滤波器分离多个信号,并用matlab实现。
二、实验内容用数字信号处理技术实现两个时域重叠信号的分离,及相位检波,设计分离和检波的方法,编写计算机程序,模拟信号处理过程,绘出时域和频域的处理结果。
)(1n s)(n a)()()(21t s t s t s += )(s n)(s 2n)(n b 三、程序设计模拟信号的时域波形,频谱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.25figure(1)subpl ot(321);pl ot(t,s1);titl e('s1时域波形');xlabel('时间t');ylabel('幅度');grid on;axis([0 0.1 -1 1])subpl ot(322);pl ot(F,S1);titl e('s1频谱');xlabel('频率F');ylabel('幅值');grid on;axis([-1000 1000 0 1])subpl ot(323);采样 滤波器滤波器滤波器2滤波器4pl ot(t,s2);titl e('s2时域波形');xlabel('时间t');ylabel('幅度');grid on;axis([0 0.05 -1 1])subpl ot(324);pl ot(F,S2);titl e('s2频谱');xlabel('频率F');ylabel('幅值');grid on;axis([-1000 1000 0 1])subpl ot(325);pl ot(t,st);titl e('st时域波形');xlabel('时间t');ylabel('幅度');grid on;axis([0 0.05 -1 1])subpl ot(326);pl ot(F,ST);titl e('st频谱');xlabel('频率F');ylabel('幅值');grid on;axis([-1000 1000 0 1])采样信号的时域波形,频谱Fs1=4000;t1=0:1/Fs1:4; N = 0:l ength(t1)-1s1n=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.25figure(2)subpl ot(321);stem(t1,s1n);titl e('s1n时域波形');xlabel('时间t');ylabel('幅度');grid on;axis([0 0.05 -1 1])subpl ot(322);pl ot(F1,S1N);titl e('S1N频谱');xlabel('频率F');ylabel('幅值');grid on;axis([-1000 1000 0 1])subpl ot(323);stem(t1,s2n);titl e('s2n时域波形');xlabel('时间t');ylabel('幅度');grid on;axis([0 0.025 -1 1])subpl ot(324);pl ot(F1,S2N);titl e('S2N频谱');xlabel('频率F');ylabel('幅值');grid on;axis([-1000 1000 0 1])subpl ot(325);stem(t1,sn);titl e('sn时域波形');xlabel('时间t');ylabel('幅度');grid on;axis([0 0.025 -1 1])subpl ot(326);pl ot(F1,SN);titl e('SN频谱');xlabel('频率F');ylabel('幅值');grid on;axis([-1000 1000 0 1])通过前级滤波器的波形fp1 = 300;fs1 = 400;Rp = 1;Rs=40Wp1=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=40Wp2=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)subpl ot(221);pl ot(t1,s3);titl e('通过前级低通滤波器1信号时域波形');xlabel('时间t');ylabel('幅值');grid onaxis([0 0.1 -1 1])subpl ot(222);pl ot(F1,S3);titl e('通过前级低通滤波器1信号频谱图');xlabel('频率f');ylabel('幅值');grid on;axis([-1000 1000 0 1])subpl ot(223);pl ot(t1,s4);titl e('通过前级高通滤波器1信号时域波形');xlabel('时间t');ylabel('幅值');grid onaxis([0 0.1 -1 1])subpl ot(224);pl ot(F1,S4);titl e('通过前级高通滤波器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)subpl ot(221);pl ot(t1,y1);titl e('通过后级低通滤波器1信号时域波形');xlabel('时间t');ylabel('幅值');grid on;axis([0.1 0.6 -1 1])subpl ot(222);pl ot(F1,Y1);titl e('通过后级低通滤波器1信号频谱图');xlabel('频率f');ylabel('幅值A');grid on;axis([-100 100 0 0.5])subpl ot(223);pl ot(t1,y2);titl e('通过后级低通滤波器2信号时域波形');xlabel('时间t');ylabel('幅值');grid on;axis([0.1 0.6 -1 1])subpl ot(224);pl ot(F1,Y2);titl e('通过后级低通滤波器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)。