77范文网 - 专业文章范例文档资料分享平台

毕业论文-快速傅里叶变换算法及其在信号处理中的应用(4)

来源:网络收集 时间:2019-06-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

武汉工程大学毕业设计(论文)说明书

k?11?WNz ? (3-24)

1?2cos((2?/N)k)z?1?z?2与此相应的信号流图示于图3-3。由式(3-24)可见,滤波器是一个二阶系统,有一对复数共轭极点和一个复数零点。

为了便于运算,在图3-3所示的流图中,设立状态变量 u和v。按照图3-3计算X(k)时,步骤有二,即: 1.实现一对复数极点

输入点依次取 x(0),x(1),x(2),...,x(n?1),进行递推运算。每次运算中,更新状态变量u和v。作N次迭代所需的计算量是2N次实数乘法和4N次实数加法。 2.实现复数零点。

x(n)是一个N点序列, n?0,1,2,...,N?1。在x(N)?0点上。计算状态变量u和v。

这时,按照图3-2算出滤波器的输出yk(N),此即X(k)。所需的计算量是4次实数乘法和4N次实数加法[11]。

综上所述,计算一点X(k)需要进行2(N?2)次实数乘法和4(N?1)次实数加法。这种算法要求的乘法次数约为直接算法的一半。在这种较为有效的方案中,

k仍具有这样的优点,即必须计算和存储的系数只有cos((2?/N)k)和WN。

还要说明图3-3所示的算法的另一个优点。当输入序列为实序列时,离散付里叶变换序列X(k)是对称的,即X(k)?X*(N?k)。容易证明,图3-3的网络形式在计算X(N?k)时和计算X(k)时具有完全相同的极点,但前者的零点系数与后者的零点系数成复共轭关系。由于零点仅在最后的迭代中实现,所以诸极点要求的

2N次乘法和 4N 次加法可以用来计算离散付里叶变换的两个值。因此,若用Goertzel 算法计算离散付里叶变换的所有N个点的值,需要的乘法次数近似为

N2,加法次数近似为2N2。然而,它同直接计算离散付里叶变换一样,计算量

仍然正比于N2。

12

武汉工程大学毕业设计(论文)说明书

4.快速傅里叶变换在信号处理中的理论应用

4.1 连续时间信号的快速傅里叶变换

设x(t)是连续时间信号,并假设t?0时x(t)?0,则其傅里叶变换由下式给出:

X(?)??x(t)e?i?tdt (4-1)

0?令?是一固定的正实数,N是一个固定的正整数。当??k?,k?0,1,2,,N?1时,利用FFT算法可计算X(?)。

已知一个固定的时间间隔T,选择让T足够小,使得每一个T秒的间隔

nT?t?(n?1)T内,x(t)的变化很小,则式中积分可近似为

X(?)??(?n?0??(n?1)TnTe?iwtdt)x(nT)

??[n?0?1?i?tt?(n?1)Te]t?nTx(nT) i?1?e?i?T ?i??en?0??i?nT x(nT) (4-2)

假设N足够大,对于所有n?N的整数,幅值x(nT)很小,则式(4-2)变为

1?e?i?T X(?)?i??en?0N?1?i?nT x(nT) (4-3)

当??2?k/NT时,式(4-2)两边的值为

2?k1?e?i2?k/N X()?NTi2?k/NT?en?0N?1?i2?nk/N1?e?i2?k/Nx(nT)?X[k] (4-4)

i2?k/NT其中X[k]代表抽样信号x[n]?x(nT)的N点DFT。最后令??2?/NT,则上式变为

1?e?i2?k/NX[k]k?0,1,2, X(k?)?i2?k/NT,N?1 (4-5)

,?时的1首先用FFT算法求出X[k],然后可用上式求出k?0,1,2,N

13

武汉工程大学毕业设计(论文)说明书

X(k?)。

应该强调的是,式(4-3)只是一个近似表示,计算得到的X(?)只是一个近似值。通过取更小的抽样间隔T,或者增加点数N,可以得到更精确的值。如果

??B时,幅度谱X(?)很小,对应于奈奎斯特抽样频率?s?2B,抽样间隔T选

择?/B比较合适。如果已知信号只在时间区间0?t?t1内存在,可以通过对

nT?t1时的抽样信号x[n]?x(nT)补零,使N足够大[12]。

将连续时间傅立叶变换进行数字近似,用函数fft(快速傅立叶算法)高效地计算这个近似值。很多信号都能用(4-1)式连续时间傅立叶变换(CTFT)来表示。利用MATLAB可以计算(CTFT)积分的数值近似。利用在密集的等间隔t的样本上的求和来近似这个积分,就可以用函数fft高效地计算这个近似值。所用的近似式是根据积分的定义得到的,即

????x(t)e?j?tdt?lim?x(n?)e?j?n?? (4-6)

??0n????对于一般信号,在足够小的τ下,上式右边的和式是对于CTFT积分的一个好的近似。若信号x(t)对于t?0和t?T为零,那么这个近似式就能写成

????x(t)e?j?tdt??x(t)e0T?j?tdt??x(n?)e?j?n?? (4-7)

n?0N?1式中T?n?,N为一整数。可以利用函数fft对一组离散的频率?k计算上式中的和式。如果N个样本x(n?)是存在向量x内的话,那么调用函数X=tau*fft(x)就可以计算出 X(k?1)???x(n?)en?0N?1?j?nk??X(j?k) (4-8)

N?2?k 0?k??N?2式中 ?k????2?k?2? N?1?k?N ??2?N?

以及N假设为偶数。为了计算高效,fft在负的频率样本之前先产生正频率样本。为了将频率样本置于上升的顺序,能用函数fftshift。为了将存入X中的X(j?k)的样本排列成使X(K?1)就是对于0?k?N?1,在????(2?kN?)上求得

14

武汉工程大学毕业设计(论文)说明书

的CTFT,可用X=fftshift(tau*fft(x))。

例4-1 利用FFT计算傅里叶变换 如图4-1所示的信号

?t?10?t?2 x(t)??0其它?其傅里叶变换为:

X(?)??cos(?)?sin(?)?i?2ei 2?利用下面的命令,可得到x(t)的近

似值和准确值。 图4-1 连续时间信号x(t)

N=input('Input N:'); T=input('Input T:'); %计算X(w)近似值 t=0:T:2;

x=[t-1 zeros(1,N-length(t))]; X=fft(x); gamma=2*pi/(N*T); k=0:10/gamma;

Xapp=(1-exp(-i*k*gamma*T))/(i*k*gamma)*X; %计算真实值X(w) w=0.05:0.05:10;

Xact=exp(-i*w)*2*i.*(w.*cos(w)-sin(w))./(w.*w); plot(k*gamma,abs(Xapp(1:length(k))),'o',w,abs(Xact)); legend('近似值','真实值');

xlabel('频率(rad/s)');ylabel('|X|')

运行程序后输入N=128,T=0.1,此时??0.4909,得到实际的和近似的傅里叶变换的幅度谱如图4-2所示,此时近似值已经相当准确。通过增加NT可以增加更多的细节,减少T使得到的值更精确。再次运行程序后输入N=512,T=0.05,此时??0.2454,得到实际的和近似的傅里叶变换的幅度谱如图4-3所示。

15

武汉工程大学毕业设计(论文)说明书

图4-2 N=128,T=0.1时的幅度谱

图4-3 N=512,T=0.05时的幅度谱

16

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库毕业论文-快速傅里叶变换算法及其在信号处理中的应用(4)在线全文阅读。

毕业论文-快速傅里叶变换算法及其在信号处理中的应用(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/650996.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: