数字信号处理终稿
- 格式:doc
- 大小:1.10 MB
- 文档页数:19
《数字信号处理》课程设计报告任课教师:李春明指导教师:李春明学生学号:080701126学生姓名:王冬丽所学专业:电子信息工程2011年06月22日目录一、设计题目二、设计目的三、设计原理四、实现方法(包括MATLAB算法原理等)五、设计内容及要求(含有设计源程序)六、设计结果及改进建议(画出所有设计曲线,并加以说明)七、回答思考题八、设计体会九、参考文献一、 设计题目设计一、DFT 在信号频谱分析中的应用 设计八 、窗函数法设计FIR 数字低通滤波器二、设计目的(一)设计一、DFT 在信号频谱分析中应用的原理 1. 熟悉DFT 的性质。
2. 加深理解信号频谱的概念及性质。
3. 了解高密度谱与高分辨率频谱的区别。
(二)设计八 、窗函数法设计FIR 数字低通滤波器 1. 熟悉设计线性相位数字滤波器的一般步骤。
2. 掌握用窗函数法设计FIR 数字滤波器的原理和方法。
3. 熟悉各种窗函数的作用以及各种窗函数对滤波特性的影响。
4. 学会根据指标要求选取合适的窗函数。
设计低通FIR 滤波器的指标: 通带最大波动0.25,p R d B =,0.2p ωπ=阻带最小衰减 50,s A d B =,0.3s ωπ=三、设计原理(一)设计一、DFT 在信号频谱分析中应用的原理所谓信号的频谱分析就是计算信号的傅里叶变换。
连续信号与系统的傅里叶分析显然不便于直接用计算机进行计算,使其应用受到限制,而DFT 是一种时域和频域均离散化的变换,适合数值运算,成为分析离散信号和系统的有力工具。
工程实际中,经常遇到的连续信号Xa(t),其频谱函数Xa(jW)也是连续函数。
数字计算机难于处理,因而我们采用DFT 来对连续时间信号的傅里叶变换进行逼近,进而分析连续时间信号的频谱。
离散傅里叶变换(DFT )定义:设有限长序列x (n) 长为N (0≤n ≤N-1),其离散傅里叶变换是一个长为N 的频率有限长序列(0≤k ≤N-1),其正变换为()()[]()W nkN N n n x n x DFT k X ∑-===10 0≤k ≤N-1(W e N jN π2-=)离散傅里叶变换的实质是:把有限长序列当做周期序列的主值序列进行DFS 变换,x(n)、X(k)的长度均为N,都是N个独立值,因此二者具有的信息量是相等的。
已知x(n)可以唯一确定X(k),已知X(k)可以唯一确定x(n)。
虽然离散傅里叶变换是两个有限长序列之间的变化,但它们是利用DFS关系推导出来的,因而隐含着周期性。
(二)设计八、窗函数法设计FIR数字低通滤波器的原理1、设计步骤(1)给定所求的频率响应函数Hd(e jw);(2)求hd(n)=IDTFT[Hd(e jw)];(3)由过渡带宽及阻带最小衰减的要求,选定窗w(n)的形状及N的大小,一般N要通过几次试探而最后确定;(4)求得所设计的FIR滤波器的单位抽样响应h(n)=hd(n)w(n),n=0,1,…,N-1;(5)求H(e jw)=DTFT[h(n)],检验是否满足设计要求,如不满足,则需重新设计。
4、四种窗口函数(1)矩形窗(2)汉宁窗(升余弦窗)=0.5三部分矩形窗频谱相加,使旁瓣互相抵消,能量集中在主瓣,旁瓣大大减小,主瓣宽度增加1倍。
(3) 汉明窗(改进的升余弦窗)它是对汉宁窗的改进,在主瓣宽度(对应第一零点的宽度)相同的情况下,旁瓣进一步减小,可使99.96%的能量集中在主瓣内。
(4)布莱克曼窗(三阶升余弦窗)增加一个二次谐波余弦分量,可进一步降低旁瓣,但主瓣宽度进一步增加,增加N 可减少过渡带。
四、实现方法(包括MATLAB 算法原理等)(一)设计一、DFT 在信号频谱分析中应用的实现方法1. 用MATLAB 语言编写计算序列x(n)的N 点DFT 的m 函数文件dft.m 。
并与MATLAB 中的内部函数文件fft.m 作比较。
2. 对离散确定信号 ()cos(0.48)cos(0.52)x n n n ππ=+ 作如下谱分析: 截取()x n 使()x n 成为有限长序列N(0≤≤n N -1),(长度N 自己选)写程序计;算出()x n 的N 点DFT ()X k ,画出时域序列图xn ~n 和相应的幅频图()~X k k 。
(2) 将 (1)中()x n 补零加长至M 点,长度M 自己选,(为了比较补零长短的影响,M 可以取两次值,一次取较小的整数,一次取较大的整数),编写程序计算()x n 的M 点DFT, 画出时域序列图和两次补零后相应的DFT 幅频图。
(3)利用补零DFT 计算 (1)中N 点有限长序列()x n 频谱()j X e ω并画出相应的幅频图()~j X e ωω。
3. 研究高密度谱与高分辨率频谱。
对连续确定信号333()cos(2 6.510)cos(2710)cos(2910)a x t t t t πππ=⨯⨯+⨯⨯+⨯⨯以采样频率fs=32kHz 对信号()a x t 采样得离散信号()x n ,分析下列三种情况的幅频特性。
(1)采集数据()x n 长度取N=16点,编写程序计算出()x n 的16点DFT ()X k ,并画出相应的幅频图()~X k k(2) 采集数据()x n 长度N=16点,补零加长至M 点(长度M 自己选),利用补零DFT 计算 ()x n 的频谱1()j X e ω并画出相应的幅频图1()~j X e ωω。
(1) 采集数据()x n 长度取为M 点(注意不是补零至M ),编写程序计算出M 点采集数据()x n 的的频谱2()j X e ω并画出相应的幅频图2()~j X e ωω。
(二)设计八 、窗函数法设计FIR 数字低通滤波器的实现方法1.熟悉各种窗函数,在MATLAB 命令窗下浏览各种窗函数,绘出(或打印)所看到的窗函数图。
2.编写计算理想低通滤波器单位抽样响应hd(n)的m 函数文件ideal .m 。
3.编写计算N 阶差分方程所描述系统频响函数()j H e ω的m 函数文件fr.m 。
4.根据指标要求选择窗函数的形状与长度N 。
5.编写.m 程序文件,通过调用ideal .m 和fr .m 文件,计算你设计的实际低通FIR 滤波器的单位抽样响应h(n)和频率响应()j H e ω,打印在频率区间[O ,π]上的幅频响应特性曲线()~j H e ωω,幅度用分贝表示。
6.验证所设计的滤波器是否满足指标要求。
五、 设计内容及结果(应含有设计源程序)(一) DFT 部分程序清单1、计算序列x(n)的N 点DFT 的m 函数文件dft.m function Xk=dft(xn,N) if length(xn)<Nxn=[xn,zeros(1,N-length(xn))]; end n=0:N-1; for k=0:N-1Xk(1,k+1)=sum(xn.*exp((-1)*j*n*k*(2*pi/N))); end2、对离散确定信号 ()cos(0.48)cos(0.52)x n n n ππ=+ 作如下谱分析 参考程序如下: (假设N 取10,即0≤n ≤9 时, 编写程序,计算出X (n )的10点DFT Xk )n = 0:9;xn=cos(0.48*pi*n)+cos(0.52*pi*n); Xk = fft (xn, 10);subplot(2,1,1); stem(n, xn); grid; subplot(2,1,2); stem(n, abs(Xk)); grid;3、补零DFT算法及零点数目不同时的DFT图形:(假设M取15和M取60,即分别补5个0和50个0,得补零后15点的序列xn1和60点的序列xn2,编写程序,计算出xn1的15点DFT Xk1和xn2的60点DFT Xk2)n = 0:9; xn=cos(0.48*pi*n)+cos(0.52*pi*n);n1 = 0:14; xn1 = [xn, zeros(1,5)];n2= 0:59; xn2 = [xn, zeros(1,50)];Xk1 = fft(xn1, 15);Xk2 = fft(xn2, 60);subplot(3,1,1); stem(n, xn); grid;subplot(3,1,2); stem(n1, abs(Xk1)); grid;subplot(3,1,3); stem(n2, abs(Xk2));grid;4、用补零DFT 计算 (1)中N 点有限长序列()x n 频谱()j X e ω并画出相应的幅频图()~j X e ωω。
(假设M 取100)n = 0:9; xn=cos(0.48*pi*n)+cos(0.52*pi*n); n1 = 0:99; xn3 = [xn, zeros(1,90)]; Xk3 = fft(xn3, 100); plot(n1, abs(Xk3)); grid;5研究高密度谱与高分辨率频谱。
T=1/(32*10^3);t=(0:15);xn=cos(2*pi*6.5*10^3*t*T)+cos(2*pi*7*10^3*t*T)+cos(2*p i*9*10^3*t*T);Xk=fft(xn,16);subplot(2,1,1);stem(t,xn);grid;subplot(2,1,2);stem(t,abs(Xk));grid;T=1/(32*10^3);t=(0:15);xn=cos(2*pi*6.5*10^3*t*T)+cos(2*pi*7*10^3*t*T)+cos(2*p i*9*10^3*t*T);n1=0:30; xn1=[xn,zeros(1,15)];Xk1=fft(xn1,31);subplot(2,1,1);stem(n1,xn1);grid;subplot(2,1,2);plot(n1,abs(Xk1));grid;T=1/(32*10^3);t=[0:30];xn=cos(2*pi*6.5*10^3*t*T)+cos(2*pi*7*10^3*t*T)+cos(2*p i*9*10^3*t*T);Xk2=fft(xn,31);subplot(2,1,1);stem(t,xn);grid;subplot(2,1,2);plot(t,abs(Xk2));grid;(二)窗函数设计部分程序清单1、各窗函数图(假设N=67;)N=67;n=0:N-1;wn1=ones(1,N); stem(n, wn1);figurefigure;wn3=BARTLETT(N); stem(n, wn3);figure;wn4= Hanning(N); stem(n, wn4);2、计算理想低通滤波器单位冲激响应的源程序function[hd]=ideal(wc,N) q=(N-1)/2;n=0:N-1;m=n-q+eps;hd=sin(wc*m)./(pi*m);3、计算频率响应的源程序function[H]=fr(b,a,w);m=0:length(b)-1;l=0:length(a)-1;num=b*exp(-j*m'*w);den=a*exp(-j*l'*w);H=num./den;4、低通滤波器设计程序wp=0.2*pi;ws=0.3*pi;width=ws-wp;N=ceil(6.6*pi/width)+1;n=0:N-1;a=[1];wc=(ws+wp)/2;hd=ideal(wc,N);wn=(hamming(N))';h=hd.*wn;k=0:500;w=(pi/500)*k;[H]=fr(h,a,w);mag=abs(H);db=-20*log10((mag+eps)/max(mag));wth=pi/500;rp=max(db(1:1:wp/wth+1))as=round(min(db(ws/wth+1:1:500)))subplot(2,2,1);stem(n,hd);title('理想冲激响应');axis([0 N-1 -0.1 0.3]);ylabel('hd');subplot(2,2,2);stem(n,wn);title('海明窗');axis([0 N-1 0 1.1]);ylabel('wn');subplot(2,2,3);stem(n,h);title('实际冲激响应');axis([0 N-1 -0.2 0.3]);xlabel('n');ylabel('h');subplot(2,2,4);plot(w/pi,-db);title('幅度响应(dB)');axis([0 1 -100 10]);grid;xlabel('以pi为单位的频率')ylabel('分贝数');六、思考题回答与结论6. 简要回答如下思考题:(1)对比设计内容2中(1)(2) (3)的图,说明补零DFT的作用。