
数字信号处理 实验 信号处理中fft应用.doc
12页数字信号处理实验报告数字信号处理实验报告实验名称:实验名称: 信号处理中 FFT 的应用学号:学号: 姓名:姓名: 评语:评语: 成绩:成绩: 一、实验目的一、实验目的 1、理解用 FFT 对周期序列进行频谱分析时所面临的问题并掌握其解决方法 2、掌握用时域窗函数加权处理的技术 3、理解用 FFT 对非周期信号进行频谱分析所面临的问题并掌握其解决方法二、实验原理与计算方法二、实验原理与计算方法1、对周期序列进行频谱分析应注意的问题 对时间序列 作 FFT 时,实际 上要作周期延拓 (如果取长序列 的一段进行计算 还要先作截断) 周期序列是无限 长时间序列,如 果截断区间刚好 就是该序列周期 的整数倍,那么 在进行周期延拓后,将还原出原来的周期序列,由此可以较精确地计算出的该周期序列的 频谱反之,如果截断区间并不是该序列周期的整数倍,那么在进行周期延拓后,就不可 能还原出原来的周期序列,由此计算出的频谱与该周期序列的频谱存在误差,而且误差的 大小与截断区间的选取直接相关,如图 4-1 所示,其中幅度频谱的量值表示为,)(log20kX以 dB(分贝)为单位这种误差是由于周期序列与矩形截断序列相乘在频域产生二者的频谱卷积形成的。
矩形窗的频谱是抽样函数序列,如图 4-2 所示除了k = fNjeffN) 1( )sin()sin( 0 处主瓣内集中了大部分的能量外,两旁的较小峰值处的旁瓣也分散了一部分能量,它与 周期序列频谱卷积的结果使原来集中的频谱展 宽,称为频率泄漏 如果对已知周期的信号作频谱分析,在进 行时域截断时,完全可以选取其周期的整数倍 裁取,从而可以避免这种频率泄漏的发生不 过,通常需要进行频谱分析的信号是周期未知 的信号,或随机信号,无法判断它的周期值, 为了尽量避免频率泄漏对结果的影响,在作时 间截断时,就应选取其频谱的旁瓣较小的截断函数,以减轻泄漏问题 2、时域窗函数的应用 作为截断函数,矩形窗在作时间截断时,对所截取区间内的信号不加以任何影响,而 其它的窗函数都将对所截取区间内的信号作加权处理除了在实验二中已经介绍过三角窗、)(kX)(kXk k (a)时域周期整数倍截断 (b)时域非周期整数倍截断图 4-1 周期函数的幅频曲线tsin)(kXk图 4-2 矩形窗的频谱Hanning 窗和 Hamming 窗外,常用的窗函数还有很多,例如 Parzen 窗、Kaiser 窗、 Chebyshev 窗、Tukey 窗、Poisson 窗、Caushy 窗、Gaussian 窗和 Blackman 窗等等。
本次 实验仍是采用实验二中的几种窗函数,但是利用窗函数作时域加权截断图 4-3 中给出了采用 Hanning 窗对正弦函数作非整周期的时域加权截断后的波形和频 谱,与图 4-1(b)比较,泄漏已明显减少 应该指出,前面所给出的窗函数都是定义为以 0 点为中心、宽度为 N +1 的加权函数,在这里应用时,需要将其右移,成为区间内的加权函数 2NN03、对非周期序列进行频谱分析应注意的问题 (1)混叠 一般非周期信号作 FFT 之前要进行时域采样和周期延拓(无限长时间信号还应先截断再 延拓)根据 Fourier 变换理论,经等周期的冲激采样后,离散序列的sT)()()(~ttxnTxTs频谱是原信号频谱以为周期的周期延拓按照ns snffXTfX)(1)(~)( fXssTf1Nyquist 采样定理,由采样引起周期延拓后频谱之间不发生混叠的条件是:(1)原信号应该 是有限带宽信号,设其频带宽度为 fm;(2)频谱的周期,即采样周期应满足 Nyquist msff2条件msfT21由于实际上有限长时间信号的 FT是频域的无限函数,因此采样所得的离散)(tx)( fX序列的频谱必定产生混叠,减小采样周期只能减小而不能消除混叠。
对于时间有限函数,sT 当采样周期较大时,也会在 FFT 得到的频域出现混叠,形成频谱失真,造成频谱分析结果 与原信号的实际频谱的差异,也无法恢复出原信号当然,实际工作中只要采样和截断产 生的误差在许可的范围内就行了,但应该认识到混叠是引起频谱分析误差的一个主要原因还应该注意 的是,离散 Fourier 变换的 频域也是周期化 的,区间内1,, 12NNL的样点实际上是 负频率区的量值, 因此如果出现混 叠,就将在一个周期内出现,并发生在附近的区域,如图 4-4 所示要减少混叠,就要尽量减小采样周2N期)()sin(nwn)(kX0 t0 k(a) 正弦函数的加权的非周期时域截断 (b)减小了泄漏的频谱图 4-3 采用 Hanning 窗加权后的时域截断和频谱)(nueanT)(kX0 n 0 N/2 N(a)时域按周期 Ts采样 (b)频域一个周期内在 N/2 附近出现混叠图 4-4 非周期函数采样后的幅频曲线te(2)泄漏 周期函数截断引起的频率泄漏问题,在非周期函数截断处理后同样存在,这种误差是 由于采样后的离散序列与矩形截断序列相乘在频域造成二者的频谱卷积形成的。
矩形窗的频谱是抽样函数序列,它与离散序列频谱卷积的结果使原来集中于每一fNjeffN) 1( )sin()sin( 个样点处的频谱展宽,其影响在高频区(接近N/2 的样点)特别明显,如图 4-5 所示同样, 为了尽量避免频率泄漏对结果的影响,在对非周期函数作时间截断时,除尽量增加截断序 列的宽度外,也应选取其频谱的旁瓣较小的截断函数,以减轻泄漏问题在选取了适当的窗函数后,应当使窗函数的宽度与被处理的序列长度相同,如果作变 换前还需要补零(例如为了作卷积运算或避免栅栏效应) ,则应将原序列与窗函数相乘后再 补零,即补零的样点不用窗函数加权处理 (3)栅栏效应非周期信号应具有连续的频谱,在对作抽样后进行 DFT,得到的是离散的频)(tx)(tx谱如果排除混叠和泄漏等误差的影响,所得的结果也只是的连续频谱上的个样)(tx12N值这就象通过栅栏上的等间距缝隙观看到的另一边的景象,故此称栅栏效应被栅栏遮 住的景象中有可能存在与显现出的频谱差异较大的变化,即显示信号特征的频谱分量为 了使被栅栏遮住的部分能尽可能地显现出来,可以采用增加频域样点密度的方法,即在不 增加信号采样点的情况下,用时域补零加宽变换尺度 N 来实现,称为补零重构。
例如原来 信号采样得到 12 个样点,在其后面再加上 4 个零,使序列的总长度为 16 个样点这样处理的结果原来信号的采样间隔和频率都没有改变,设采样频率为,经补零重构之后,采sf样频率仍然为,但是原来频域样点间宽度为/12,经补零重构之后频域样点间宽度为sfsf/16这就使补零重构之后频域样点密度增加,而且显示出原来没有显露的一些频率位置sf的频谱三、实验内容三、实验内容(1)将余弦函数 cos(2t)以 Ts=1/53 s 抽样,对余弦序列做样点数为 N=128 的 FFT, 画出频谱曲线,观察并记录频率泄漏现象,然后用 Hamming 窗和三角窗作加权截断,观察 并记录泄漏的衰减 实验代码:实验代码: n=[0:127];N=128;Ts=1./53;t=n.*Ts;xn=cos(2.*pi.*t);)(nweanT)(kX0 n 0 N/2 N(a)时域截断 (b)频域一个周期内在 N/2 附近出现泄漏图 4-5 函数采样后作截断的幅频曲线tew1=hamming(N);w2=bartlett(N);H=xn.*w1';B=xn.*w2';figure(1);subplot(2,1,1);stem(n,xn,'.');title('xn函数') subplot(2,1,2);stem(abs(fft(xn,N)),'.');title('xn频谱曲线') figure(2);subplot(2,1,1);stem(n,H,'.');title('Hamming窗加权') subplot(2,1,2);stem(abs(fft(H,N)),'.');title('Hamming窗加权频谱曲线') figure(3);subplot(2,1,1);stem(n,B,'.');title('三角窗加权') subplot(2,1,2);stem(abs(fft(B,N)),'.');title('三角窗加权频谱曲线')实验截图:实验截图:(2)将幅度为 1,周期为 2 的方波信号,按 Ts=1/37 s 的间距抽样,做样点数 N=128 的 FFT,画出频谱曲线,然后用 Hamming 窗和三角窗作加权截断,观察并记录作不同的加 权截断引起的频谱差异。
实验代码: n=[0:1:127];N=128;Ts=1./37;t=n.*Ts;xn=square(1.*pi.*t,50);w1=hamming(N);w2=bartlett(N);H=xn.*w1';B=xn.*w2';figure(1)subplot(2,1,1);stem(n,xn,'.');title('方波函数') subplot(2,1,2);stem(abs(fft(xn,N)),'.');title('方波频谱曲线') figure(2)subplot(2,1,1);stem(n,H,'.');title('Hamming窗加权') subplot(2,1,2);stem(abs(fft(H,N)),'.');title('Hamming窗加权频谱曲线') figure(3)subplot(2,1,1);stem(n,B,'.');title('三角窗加权') subplot(2,1,2);stem(abs(fft(B,N)),'.');title('三角窗加权频谱曲线')实验截图:(3)将单边指数函数 x(t)=e-tu(t)抽样截断后作 FFT,首先选取不同的抽样周期 Ts=0.05,0.1,0.5 s,并取 N = 128,观察频谱混叠。
然后作不同宽度的截断,选取矩形窗宽为 4,8,32 等,并保持 N = 128,观察频谱泄漏 实验代码: n=[0:3];N=128;Ts=0.05;t=n.*Ts;xn=exp(-t).*u(t);f=boxcar(4);J=xn.*f';subplot(3,2,1);stem(abs(fft(xn)),'.');title('Ts=0.05抽样函数') subplot(3,2,2);stem(abs(fft(J,N)),'.');title('矩形窗宽4加权频谱曲线') n=[0:7]N=128Ts=0.1t=n.*Tsxn=exp(-t).*u(t)f=boxcar(8)J=xn.*f'subplot(3,2,3);stem(abs(fft(xn)),'.');title('Ts=0.1抽样函数') subplot(3,2,4);stem(abs(fft(J,N)),'.');title('矩形窗宽8加权频谱曲线') n=[0:31]N=128Ts=0.5t=n.*Tsxn=exp(-t).*u(t)f=boxcar(32)J=xn.*f'subplot(3,2,5);stem(abs(fft(xn)),'.');title('Ts=0.5抽样函数') subplot(3,2,6);s。
