二○一一~二○一二学年第一学期电子信息工程系信号与系统课程设计报告班级:电子信息工程2009级3班学号:200904135104姓名:徐奎课程名称:数字信号处理课程设计学时学分:1周1学分指导教师:陈华丽二○一一年十二月三十日1、课程设计目的:数字信号处理”课程是信息和通信工程专业必修的专业技术基础课程,课程以信号与系统作为研究对象,研究对信号进行各种处理和利用的技术。
通过该课程的学习,学生应牢固掌握确定性信号和系统的分析方法、相关算法、系统实现等的相关知识的,借助于数字滤波器的设计及实现,学生可掌握数字系统的分析以及设计方法。
数字信号处理是理论性和工程性都很强的学科,本课程设计的目的就是使该课程的理论与工程应用的紧密结合, 使学生深入理解信号处理的内涵和实质。
本课程设计要求学生在理解信号处理的数学原理的基础上,应用计算机编程手段,实现一种信号分析或处理的设计,达到对所学内容融会贯通,综合各部分知识,按照题目要求独立设计完成。
2、课程设计内容:滤波器设计产生一个连续信号,包含低频,中频,高频分量,对其进行采样,进行频谱分析,分别设计低通,带通,高通滤波器对信号进行滤波处理,观察滤波前后信号的频谱。
独立完成以上设计,有能力的同学设计一个友好的人机交互界面,不限编程语言。
3、设计内容和步骤:①设定的连续信号为:s=sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30)可知:信号中包含了5Hz、15Hz、30Hz频率分量,对其采样的频率取100Hz。
用plot函数画出其时域波形,代码如下,结果如下图所示:% 程序功能:产生一个连续信号,包含低频,中频,高频分量,对其进行采样,进行频谱分析,分别设计低通,带通,高通滤波器对信号进行滤波处理,观察滤波前后信号的频谱。
Fs=100;t=(1:100)/Fs;s1=sin(2*pi*t*5);s2=sin(2*pi*t*15);s3=sin(2*pi*t*30);s=s1+s2+s3;figure(1);plot(t,s); % 画出信号的时域波形xlabel('t');ylabel('s');title('原始信号的时域波形');% 程序功能:画出信号的频谱图。
S=fft(s,512); % 对s进行快速傅立叶变换w=(0:255)/256*(Fs/2);figure(2);plot(w,abs(S(1:256))); % 画出信号的幅度图xlabel('频率');ylabel('幅度');title('幅度谱');axis([0 35 0 60]);grid;figure(3);plot(w,angle(S(1:256))); % 画出信号的相位图xlabel('频率');ylabel('相位');title('相位谱');0.10.20.30.40.50.60.70.80.91-2.5-2-1.5-1-0.500.511.522.5ts原始信号的时域波形图一用fft 函数对其进行快速傅里叶变换,画出其频谱图,即幅度谱和相位谱,如下图所示:05101520253035102030405060频率幅度幅度谱05101520253035404550-4-3-2-101234频率相位相位谱②使用矩形窗设计不同特性的数字滤波器:A 、先设计理想低通滤波器,并将其保存为函数ideal_lp ,设计代码如下:%理想低通滤波器函数function hd = ideal_lp(wc,M) n = 0:M-1; alpha = (M-1)/2; m = n-alpha;hd = sin(wc*m)./(pi*m);B 、设计低通滤波器对给定的模拟信号进行滤波并比较结果,设计代码如下,结果如下如所示:% 程序功能:设计低通滤波器并画出其频谱图:fb=10; fc=13; % 设置滤波器截止频率 fs=100; wb=2*pi*fb/fs; ws=2*pi*fc/fs; wc=0.5*(wb+ws);tr_width=ws-wb; % 过渡带宽 M=ceil(1.8*pi/tr_width);hd=ideal_lp(wc,M); % 产生一理想低通滤波器w_box=(boxcar(M))'; % 矩形窗窗函数h=hd.*w_box;n=[0:1:M-1];figure(4)subplot(2,2,1);stem(n,hd); % 理想脉冲响应xlabel('n');ylabel('hd(n)'); title('理想冲击响应');subplot(2,2,2);stem(n,w_box); % 矩形窗xlabel('n');ylabel('w(n)'); title('矩形窗函数');subplot(2,2,3);stem(n,h); % 实际脉冲响应xlabel('n');ylabel('h(n)'); title('实际冲击响应');w=0:0.01:pi;H=freqz(h,1,w); %实际滤波器的幅频特性dbH=20*log10(abs(H)/max(abs(H)));subplot(2,2,4);plot(w/pi,dbH);title('幅频响应');xlabel('w/pi');ylabel('分贝数');sf=filter(h,[1],s); % sf为滤滤波后的信号figure(5)plot(t,sf); % 画出滤波后信号的时域波形xlabel('t');ylabel('时域波形');axis([0 1 -1 1]);title('滤波后信号的时域波形');figure(6)SF=fft(sf,512); % 对sf进行快速傅里叶变换w=(0:255)/256*(Fs/2);plot(w,abs(SF(1:256))); % 画出滤波后信号的幅度图xlabel('频率');ylabel('幅度谱');title('滤波后信号的幅度谱'); grid; figure(7)plot(w,angle(SF(1:256))); % 画出滤波后信号的相位图 xlabel('频率'); ylabel('相位谱');title('滤波后信号的相位谱'); figure(8)plot(w,abs([S(1:256)' SF(1:256)'])); % 将滤波前后信号的幅度谱画在一起 xlabel('频率'); ylabel('幅度');grid;legend({'before','after'}); %对两个曲线进行区分命名 title('滤波前后信号对比');0102030nh d (n )理想冲击响应0102030n w (n )102030nh (n)实际冲击响应0.51-80-60-40-200幅频响应w/pi分贝数0.10.20.30.40.50.60.70.80.91-1-0.8-0.6-0.4-0.200.20.40.60.81t时域波形0510152025303540455051015202530354045频率幅度谱滤波后信号的幅度谱05101520253035404550-4-3-2-101234频率相位谱05101520253035404550102030405060频率幅度滤波前后信号对比C 、设计低通滤波器对给定的模拟信号进行滤波并比较结果,设计代码如下,结果如下如所示:% 程序功能:设计带通滤波器并画出其频谱图:fc1=5; fb1=12;fb2=18;fc2=21;fs=100; % 设置滤波器截止频率wb1=2*pi*fb1/fs;ws1=2*pi*fc1/fs;wb2=2*pi*fb2/fs;ws2=2*pi*fc2/fs;wc1=0.5*(wb1+ws1);wc2=0.5*(wb2+ws2);tr_width=min((wb1-ws1),(ws2-wb2)); % 过渡带宽M=ceil(1.8*pi/tr_width);hd=ideal_lp(wc2,M)-ideal_lp(wc1,M); % 产生一理想带通滤波器w_box=(boxcar(M))'; % 矩形窗h=hd.*w_box;figure(9)subplot(2,2,1);stem(n,hd); % 理想脉冲响应xlabel('n');ylabel('hd(n)'); title('理想冲击响应');subplot(2,2,2);stem(n,w_box); % 矩形窗xlabel('n');ylabel('w(n)'); title('矩形窗函数');subplot(2,2,3);stem(n,h); % 实际脉冲响应xlabel('n');ylabel('h(n)'); title('实际冲击响应');w=0:0.01:pi;H=freqz(h,1,w); %实际滤波器的幅频特性dbH=20*log10(abs(H)/max(abs(H)));subplot(2,2,4);plot(w/pi,dbH);title('幅频响应');xlabel('w/pi');ylabel('分贝数');sf=filter(h,[1],s); % sf为滤滤波后的信号figure(10)plot(t,sf); % 画出滤波后信号的时域波形xlabel('t');ylabel('时域波形');axis([0 1 -1 1]);title('滤波后信号的时域波形');figure(11)SF=fft(sf,512); % 对sf进行快速傅里叶变换w=(0:255)/256*(Fs/2);plot(w,abs(SF(1:256))); % 画出滤波后信号的幅度图 xlabel('频率'); ylabel('幅度谱');title('滤波后信号的幅度谱'); grid; figure(12)plot(w,angle(SF(1:256))); % 画出滤波后信号的相位图 xlabel('Frequency (Hz)'); ylabel('相位谱');title('滤波后信号的相位谱'); figure(13)plot(w,abs([S(1:256)' SF(1:256)'])); % 将滤波前后信号的幅度谱画在一起 xlabel('频率'); ylabel('幅度');grid;legend({'before','after'}); %对两个曲线进行区分命名 title('滤波前后信号对比');0102030nh d (n )0102030n w (n )102030nh (n)0.51-80-60-40-200幅频响应w/pi分贝数0.10.20.30.40.50.60.70.80.91-1-0.8-0.6-0.4-0.200.20.40.60.81t时域波形0510152025303540455051015202530354045频率幅度谱滤波后信号的幅度谱05101520253035404550-4-3-2-101234Frequency (Hz)相位谱05101520253035404550102030405060频率幅度滤波前后信号对比D 、设计低通滤波器对给定的模拟信号进行滤波并比较结果,设计代码如下,结果如下如所示:% 程序功能:设计高通滤波器并画出其频谱图:fb=25;fc=22;fs=100; % 设置滤波器截止频率wb=2*pi*fb/fs;ws=2*pi*fc/fs; wc=0.5*(wb+ws);tr_width=wb-ws; % 过渡带宽M=ceil(1.8*pi/tr_width);hd=ideal_lp(pi,M)-ideal_lp(wc,M); % 产生一理想带通滤波器w_box=(boxcar(M))'; % 矩形窗h=hd.*w_box;figure(14)subplot(2,2,1);stem(n,hd); % 理想脉冲响应xlabel('n');ylabel('hd(n)'); title('理想冲击响应');subplot(2,2,2);stem(n,w_box); % 矩形窗xlabel('n');ylabel('w(n)'); title('矩形窗函数');subplot(2,2,3);stem(n,h); % 实际脉冲响应xlabel('n');ylabel('h(n)'); title('实际冲击响应');w=0:0.01:pi;H=freqz(h,1,w); %实际滤波器的幅频特性dbH=20*log10(abs(H)/max(abs(H)));subplot(2,2,4);plot(w/pi,dbH);title('幅频响应');xlabel('w/pi');ylabel('分贝数');sf=filter(h,[1],s); % sf为滤滤波后的信号figure(15)plot(t,sf); % 画出滤波后信号的时域波形xlabel('t');ylabel('时域波形');axis([0 1 -1 1]);title('滤波后信号的时域波形');figure(16)SF=fft(sf,512); % 对sf进行快速傅里叶变换w=(0:255)/256*(Fs/2);plot(w,abs(SF(1:256))); % 画出滤波后信号的幅度图 xlabel('频率'); ylabel('幅度谱');title('滤波后信号的幅度谱'); grid; figure(17)plot(w,angle(SF(1:256))); % 画出滤波后信号的相位图 xlabel('频率'); ylabel('相位谱');title('滤波后信号的相位谱');% 程序功能:对滤波前后信号进行比较 figure(18)plot(w,abs([S(1:256)' SF(1:256)'])); % 将滤波前后信号的幅度谱画在一起 xlabel('频率'); ylabel('幅度');grid;legend({'before','after'}); %对两个曲线进行区分命名 title('滤波前后信号对比');0102030nh d (n )理想冲击响应0102030n w (n )102030nh (n )实际冲击响应0.51-80-60-40-200幅频响应w/pi分贝数0.10.20.30.40.50.60.70.80.91-1-0.8-0.6-0.4-0.200.20.40.60.81t时域波形05101520253035404550510152025303540频率幅度谱滤波后信号的幅度谱05101520253035404550-4-3-2-101234频率相位谱05101520253035404550102030405060频率幅度滤波前后信号对比4、出现的问题及解决办法:在本课程设计中出现的问题主要是开始在截止频率的选择上出现的错误,在滤波器截止频率的选择上,由于原始信号包含5Hz、15Hz、30Hz频率分量,开始时在设计低通滤波器选择了10Hz和20Hz,结果对处于过渡带的15Hz滤波不很理想,最后改为10Hz和13HZ,之后从对比图中可以看出,滤波的效果就很理想了。