武科大信号处理综合课程设计

  • 格式:doc
  • 大小:603.00 KB
  • 文档页数:16

二○一四~二○一五学年第一学期电子信息工程系课程设计报告书班级:电子信息工程学号:姓名:课程名称:信号处理综合课程设计学时学分: 2 周1 学分指导教师:杨永立二○一五年一月信号谱分析和滤波器设计一、设计任务和要求有一个含有500Hz 、1500Hz 和5000Hz 的混合正弦波信号()x t ,试设计滤波数字滤波器,分离这三个正弦波成分,要求输出的单个正弦波信号中其他正弦成分的衰减不小于50dB 。

要求:① 确定采样频率s f 、采样长度N ,对()x t 进行采样;② 分别用IIR 滤波器和FIR 滤波器实现信号分离;③ 分析并画出分离前后信号的频谱,画出滤波器的频率响应,评价分离的效果,评价设计的滤波器是否满足要求。

二、原理分析和设计1、根据要求可设混合正弦波信号为:()x t =sin(2π500t)+sin(2πt)+sin(2πt)其包含500Hz 、1500Hz 和5000Hz 频率成分,如图1所示。

-2-1012tx (t )混合正弦波信号x(t)5001000150020002500300035004000450050005500050100150200250单位:Hz幅值混合正弦波信号x(t)频谱图图1 混合正弦波信号及频谱图2、由于最高频率为5000Hz ,故采样频率应大于10000Hz ,实际设计中考虑到余量,采样频率可以取为20000~30000Hz 即可。

为显示出更好的滤波效果,本设计采用30000Hz 频率进行采样。

三、IIR 滤波器的设计(1) 第一步,为分离出500Hz 的正弦波成分,可以考虑采用低通滤波器,屏蔽掉1500Hz 和5000Hz 频率成分。

在这里,我采用了巴特沃斯低通滤波器的设计方法,MATLAB 中提供了用于设计巴特沃斯原型低通滤波器的函数,其调用格式如下:[N,Wn]=buttord(wp,ws,rp,rs,’s ’):其中,wp 和ws 分别是通带边界频率和阻带边界频率,单位为rad/s ;rp 和rs 分别为通带最大衰减和阻带最小衰减;返回的参数N 和Wn 分别为滤波器的阶数和3dB 截止频率。

为实现500Hz 频率分量的分离,可将通带边界频率设置为wp1=2π600rad/s ,阻带边界频率ws1=2π×1500rad/s ,通带最大衰减rp=1dB ,阻带最小衰减rs=60dB 。

并采用冲激响应不变法将模拟滤波器转换成数字滤波器。

巴特沃斯低通滤波器频率响应图如下:频率:Hz幅值:d B巴特沃斯低通滤波器频率响应图2 巴特沃斯低通滤波器频率响应同时将横轴归一化为频率Hz 。

混合正弦波经巴特沃斯低通滤波器后便可分理出500Hz 正弦波信号,其效果如图3所示:-1-0.500.51tx 1(t )500Hz 正弦波信号050100150200250单位:Hz幅值500Hz 正弦波信号x(t)频谱图图3 500Hz 频率分量的时域和频谱图和5000Hz 频率成分。

设置带通滤波器通带下限频率和上限频率分别为1300Hz 、1700Hz ,中心频率为1500Hz ,带宽B=400Hz ;阻带下限频率和上限频率分别为600Hz 、4000Hz ;通带最大衰减为1dB ,阻带最小衰减为100dB ,采用巴特沃斯带通滤波器设计。

并采用冲激响应不变法将模拟滤波器转换成数字滤波器。

巴特沃斯带通滤波器频率响应图如下:频率: Hz幅度: d B带通滤波器频率响应图4 带通滤波器频率响应同时将横轴归一化为频率Hz 。

混合正弦波经巴特沃斯带通滤波器后便可分理出1500Hz 正弦波信号,其效果如图5所示:-1-0.500.51tx 2(t )1500Hz 正弦波信号050100150200250单位:Hz幅值1500Hz 正弦波信号x(t)频谱图图5 1500Hz 频率分量的时域和频谱图和1500Hz 频率成分。

在高通滤波器设计中,将通带截止频率设置为5000Hz ,阻带截止频率为4000Hz ,并采用双线性变换法设计数字滤波器;通带最大衰减为1dB ,阻带最小衰减为60dB 。

巴特沃斯高通滤波器频率响应图如下:单位:Hz幅值: D B高通滤波器频率响应图6 高通滤波器频率响应同时将横轴归一化为频率Hz 。

混合正弦波经巴特沃斯高通滤波器后便可分理出5000Hz 正弦波信号,其效果如图7所示:tx 3(t )5000Hz 正弦波信号单位:Hz幅值5000Hz 正弦波信号x(t)频谱图图7 5000Hz 频率分量的时域和频谱图四、FIR 滤波器的设计MATLAB 提供了函数w=hamming (N ):产生一长度为N 的哈明窗;还有用来设计FIR 滤波器的函数h=fir1(N-1,Wc,’ftype ’,Window (N )):其中N 为滤波器的阶数;Wc 是截止频率,其取值在0~1之间,它是以π为基准频率的标称值,设计低通和高通滤波器时Wc 是标量,设计带通滤波器时Wc 是12的向量;设计低通和高通滤波器时,无需’ftype’,Window 表示设计滤波器所采用的窗函数类型,Window 的长度为N ,若Window 缺省,则fir1默认使用哈明窗;h 对应设计好的滤波器的系数h(n)。

(1) 滤除500Hz 频率成分,设计FIR 低通滤波器,取截止频率wp1= 0.0191π,窗宽N=180。

FIR 低通滤波器幅频和相频特性如图8所示,分离效果如图9所示。

频率:Hz分贝数:d B FIR 低通滤波器的幅频特性频率:Hz度FIR 低通滤波器的相频特性图8 FIR 低通滤波器幅频和相频特性-1-0.500.51500Hz 正弦波信号t幅值050单位:Hz幅值500Hz 正弦波信号x(t)频谱图图9 500Hz 频率分量的时域和频谱图(2)滤除1500Hz 频率成分,设计FIR 带通滤波器,取截止频率wp2=[0.066,0.16];,窗宽N=200。

FIR 带通滤波器幅频和相频特性如图10所示,分离效果如图11所示。

-80-60-40-20020频率:Hz分贝数:d B FIR 带通滤波器的幅频特性1000200030004000500060007000-2000-1500-1000-5000500频率:Hz度FIR 带通滤波器的相频特性图10 FIR 带通滤波器幅频和相频特性00.0020.0040.0060.0080.010.0120.0140.016-1-0.500.511500Hz 正弦波信号t幅值5001000150020002500300035004000450050005500050100150200250单位:Hz幅值1500Hz 正弦波信号x(t)频谱图图11 1500Hz 频率分量的时域和频谱图(3)滤除5000Hz 频率成分,设计FIR 高通滤波器,取截止频率wp3=[0.30,0.65],窗宽N=100。

FIR 高通滤波器幅频和相频特性如图12所示,分离效果如图13所示。

5001000150020002500300035004000450050005500-80-60-40-20020频率:Hz分贝数:d B FIR 高通滤波器的幅频特性010002000300040005000600070008000900010000-3000-2000-10000频率:Hz度FIR 高通滤波器的相频特性图12 FIR 带通滤波器幅频和相频特性0.0020.0040.0060.0080.010.0120.0140.016-0.50.5t幅值5000Hz 正弦波信号0100020003000400050006000100200300单位:Hz幅值5000Hz 正弦波信号x(t)频谱图图13 5000Hz 频率分量的时域和频谱图五、算法设计思路对于IIR 和FIR 数字滤波器的设计框图大致如下图所示:六、调试分析过程(1)无论是IIR 还是FIR 数字滤波器设计,采样频率的选择很重要,因为采样频率过小会导致混合正弦信号x(t)中的高频成分5000Hz 的频率分量无法分离,所以采样频率至少要大于x(t)中最高频的2倍,在上述设计中采用的30kHz 就能很好满足要求。

(2)在低通,带通和高通滤波器设计中,通带和阻带的截止频率选择对结果也有一定的影响。

由于混合频率成分分别为500Hz ,1500Hz 及5000Hz ,所以在选择相应的fp 、fs 时最好在一定的要求范围内。

否则,有可能造成分离结果不理想。

(3)任务要求输出的单个正弦波信号中其他正弦成分的衰减不小于50dB ,故在IIR 数字滤波器设计时要满足rs 50dB ,同时取rp=1dB 。

具体操作时,可以在实验中多次尝试取不同数值并观察对应滤波器频率响应的变化及分离效果,从而获得使结果更为理想的数值。

七、总结:在本次课程设计中,我再一次体会到了理论与实际相结合的重要性,光有纯粹的理论知识远远不够,而如何应用于实际的课程设计中更是一种能力的彰显。

这次的课程设计有四个题目可供选择,在选题时也颇为纠结,我原本是想做频分复用通信模型仿真研究,但是由于各种考试加上时间紧迫性,便改选了这个信号谱分析和滤波器设计。

通过本次IIR 数字滤波器的设计,我进一步加深了对模拟滤波器基本类型、特点和主要设计指标的了解,学回了用MATLAB 函数设计模拟原型低通滤波器;同时,在设计中,我分别采用了冲激响应不变法和双线性变换法将模拟滤波器转换为数字滤波器,从而对两者的区含有500Hz 、1500Hz 和5000Hz 的混合正弦波信号()x t巴特沃斯低通滤波分离出500Hz 正弦成分 巴特沃斯带通滤波巴特沃斯高通滤波分离出1500Hz 正弦成分分离出5000Hz 正弦成分别又有了进一步的认识和理解。

而对FIR数字滤波器的设计,我得以进一步学习用窗函数法设计FIR数字滤波器的原理及方法,同时在实验中了解各种窗函数对滤波器性能的影响。

此外,在运用IIR和FIR两种数字滤波器设计的过程中,我对与两者之间的区别也有了更为深层的认识。

从性能上来说,IIR可以用较低的阶数获得高的选择性,所用存储单元少,成本低,效率高;而对于同样的滤波器指标,FIR数字滤波器所要求的阶数比IIR高5~10倍,结果成本较高,延时较大。

从结构上看,IIR数字滤波器必须采用递归结构,极点必须在单位元内,否则系统不稳定;FIR数字滤波器主要采用非递归结构,不存在稳定性问题,同时FIR数字滤波器可以采用快速傅里叶变换算法,在相同阶数下,运算速度快很多。

总而言之,在借助于MATLAB这个软件工具下,课程设计让我们很好地把所学的知识应用起来。

虽然完成了课程设计的内容,但我要学习的东西还有很多,与此同时,我也会努力争取把之前已经做了大半部分的频分复用通信模型仿真研究项目给完成!八、附录MATLAB源代码及部分注释:(包括IIR数字滤波器设计和FIR数字滤波器设计)(1) IIR数字滤波器设计部分%**********混合正弦波信号x(t)和频谱图**********clear;clc;clf;fs=30000; %采样频率td=1/fs; %采样间隔f1=500;f2=1500;f3=5000; %3个混合正弦波频率t=0:td:500*td;x=sin(2*pi*f1.*t)+sin(2*pi*f2.*t)+sin(2*pi*f3.*t); %混合正弦波信号x(t)disp('********IIR滤波器设计********')figure(1)subplot(211);plot(t,x);xlabel('t');ylabel('x(t)');title('混合正弦波信号x(t)');axis tight;grid onX=fft(x,2048); %对信号作FFT变换n=fs*(0:1023)/2048;subplot(212);plot(n,abs(X(1:1024)));xlabel('单位:Hz');ylabel('幅值');title('混合正弦波信号x(t)频谱图');axis([0,5500,0,250]);grid on%**********IIR巴特沃斯低通滤波器**********fp1=600;fs1=1500;wp1=2*pi*fp1;ws1=2*pi*fs1;rp=1;rs=60;[N,Wn]=buttord(wp1,ws1,rp,rs,'s');[b,a]=butter(N,Wn,'s');[b1,a1]=impinvar(b,a,fs); %冲激响应不变法设计数字滤波器[h1,w1]=freqz(b1,a1,512);h1=20*log10(abs(h1));figure(2);w=w1/(2*td*pi); %归一化频率为Hzplot(w,h1);xlabel('频率:Hz');ylabel('幅值:dB');title('巴特沃斯低通滤波器频率响应');axis([0,5500,-150,20]);grid on;%**********500Hz频率分离**********f1=filter(b1,a1,x); %滤波figure(3)subplot(211);plot(t,f1);xlabel('t');ylabel('x1(t)');title('500Hz正弦波信号');axis tight;grid on;X=fft(f1,2048);n=fs*(0:1023)/2048;subplot(212);plot(n,abs(X(1:1024)));xlabel('单位:Hz');ylabel('幅值');title('500Hz正弦波信号x(t)频谱图'); axis([0,5500,0,250]);grid on;%**********IIR巴特沃斯带通滤波器**********fp2=[1300,1700]; %通带上下限频率fs2=[600,4000]; %阻带上下限频率wp2=2*pi*fp2;ws2=2*pi*fs2;rp=1;rs=100;[N,Wn]=buttord(wp2,ws2,rp,rs,'s');[b,a]=butter(N,Wn,'s');[b2,a2]=impinvar(b,a,fs); %冲激响应不变法[h2,w2]=freqz(b2,a2,512);h2=20*log10(abs(h2));w=w2/(2*td*pi); %归一化单位为Hzfigure(4)plot(w,h2)xlabel('频率: Hz');ylabel('幅度: dB')title('带通滤波器频率响应');axis([0,9000,-160,20]);grid on%**********1500Hz频率分离**********f2=filter(b2,a2,x);%滤波figure(5)subplot(211);plot(t,f2);xlabel('t');ylabel('x2(t)');title('1500Hz正弦波信号');axis tight;grid onX=fft(f2,2048);n=fs*(0:1023)/2048;subplot(212);plot(n,abs(X(1:1024)));xlabel('单位:Hz');ylabel('幅值');title('1500Hz正弦波信号x(t)频谱图'); axis([0,5500,0,250]);grid on%**********IIR巴特沃斯高通滤波器**********fp3=5000; %通带截止频率fs3=4000; %阻带截止频率wp3=2*pi*fp3;ws3=2*pi*fs3;rp=1;rs=60;[N,Wn]=buttord(wp3,ws3,rp,rs,'s');[b,a]=butter(N,Wn,'high','s');[bz3,az3]=bilinear(b,a,fs); %双线性变换法[h3,w3]=freqz(bz3,az3,512);h3=20*log10(abs(h3));w=w3/(2*td*pi);figure(6)plot(w,h3)grid onxlabel('单位:Hz');ylabel('幅值: dB');title('高通滤波器频率响应');%**********5000Hz频率分离**********f3=filter(bz3,az3,x); %滤波figure(7)subplot(211);plot(t,f3);xlabel('t');ylabel('x3(t)');title('5000Hz正弦波信号');axis tight;grid onX=fft(f3,2048);n=fs*(0:1023)/2048;subplot(212);plot(n,abs(X(1:1024)));xlabel('单位:Hz');ylabel('幅值');title('5000Hz正弦波信号x(t)频谱图'); axis([0,10000,0,250]);grid on(2) FIR数字滤波器设计部分%**********混合正弦波信号x(t)和频谱图**********clc;clear;clffs=30000; %采样频率td=1/fs; %采样间隔t=0:td:500*td;f1=500;f2=1500;f3=5000; %3个混合正弦波频率x=sin(2*pi*f1*t)+sin(2*pi*f2*t)+sin(2*pi*f3*t); %混合正弦波信号x(t)disp('********IIR滤波器设计********');figure(1)subplot(211);plot(t,x);xlabel('t');ylabel('幅值');title('混合正弦波信号x(t)')axis tight;grid onX=fft(x,2048); %对信号作FFT变换n=fs*(0:1023)/2048;subplot(212);plot(n,abs(X(1:1024)));xlabel('单位:Hz');ylabel('幅值');title('混合正弦波信号x(t)频谱图');axis([0,5500,0,300]);grid on;%**********FIR低通滤波器**********wp1=0.06; %截止频率N=180; %窗宽h1=fir1(N-1,wp1,hamming(N)); %采用汉明窗设计y1=fftfilt(h1,x); %利用重叠相加法基于FFT的FIR有限长单位冲激响应滤波w=0:0.01:pi;H=freqz(h1,1,w);dBH=20*log10(abs(H)/max(abs(H)));figure(2)subplot(211);plot(w/(2*pi*td),dBH); %归一化频率为Hzxlabel('频率:Hz');ylabel('分贝数:dB');title('FIR低通滤波器的幅频特性'); axis([0,5500,-80,20]);grid on;subplot(212); plot(w/(2*pi*td),180/pi*unwrap(angle(H)));xlabel('频率:Hz');ylabel('度');title('FIR低通滤波器的相频特性');axis([0,6000,-1500,0]);grid on;%**********500Hz频率分离**********figure(3)subplot(211);plot(t,y1);title('500Hz正弦波信号');xlabel('t');ylabel('幅值');axis tight;grid on;X=fft(y1,2048); %滤波后对y1进行FFT变换subplot(212);plot(n,abs(X(1:1024)));xlabel('单位:Hz');ylabel('幅值');title('500Hz正弦波信号x(t)频谱图');axis([0,5500,0,250]);grid on;%**********FIR带通滤波器**********wp2=[0.066,0.16]; %上下限通带频率N=200; %窗宽h2=fir1(N,wp2); %FIR滤波器设计y2=fftfilt(h2,x); %利用重叠相加法基于FFT的FIR有限长单位冲激响应滤波[H,f]=freqz(h2,1,1024,fs);%在0~2/fs内选取1024个频率点,计算相应的频率响应dBH=20*log10(abs(H));figure(4)subplot(211);plot(f,dBH);xlabel('频率:Hz');ylabel('分贝数:dB');title('FIR带通滤波器的幅频特性'); axis([0,5500,-80,20])grid on;subplot(212);plot(f,180/pi*unwrap(angle(H)));xlabel('频率:Hz');ylabel('度');title('FIR带通滤波器的相频特性');axis([0,7000,-2200,500]);grid on;%**********1500Hz频率分离**********figure(5)subplot(211);plot(t,y2);title('1500Hz正弦波信号');xlabel('t');ylabel('幅值');axis tight;grid onX=fft(y2,2048); %滤波后对y2进行FFT变换n=fs*(0:1023)/2048;subplot(212);plot(n,abs(X(1:1024)));xlabel('单位:Hz');ylabel('幅值');title('1500Hz正弦波信号x(t)频谱图'); axis([0,5500,0,250]);grid on;%**********FIR高通滤波器**********wp3=[0.30,0.65]; %阻带和通带截止频率N=100; %窗宽h3=fir1(N,wp3); %FIR滤波器y3=fftfilt(h3,x); %利用重叠相加法基于FFT的FIR有限长单位冲激响应滤波[H,f]=freqz(h3,1,1024,fs); %在0~2/fs内选取1024个频率点,计算相应频率响应dBH=20*log10(abs(H));figure(6)subplot(211);plot(f,dBH);xlabel('频率:Hz');ylabel('分贝数:dB');title('FIR高通滤波器的幅频特性'); axis([0,5500,-80,20]);grid on;subplot(212);plot(f,180/pi*unwrap(angle(H)));xlabel('频率:Hz');ylabel('度');title('FIR高通滤波器的相频特性')axis([0,10000,-3000,500]);grid on;%**********5000Hz频率分离**********figure(7)subplot(211);plot(t,y3);xlabel('t');ylabel('幅值');title('5000Hz正弦波信号');axis tight;grid on;X=fft(y3,2048); %滤波后对y3进行FFT变换n=fs*(0:1023)/2048;subplot(212);plot(n,abs(X(1:1024)));xlabel('单位:Hz');ylabel('幅值');title('5000Hz正弦波信号x(t)频谱图'); axis([0,6000,0,300]);grid on;。