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

数字信号处理实验一:FFT算法的应用

来源:用户分享 时间:2020-06-30 本文由酒话醉人心 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验题目:实验1 FFT算法的应用

姓 名: 学 号: 上课时间: FFT算法的应用

1. 实验目的:

离散傅氏变换(DFT)的目的是把信号由时域变换到频域,从而可以在频域分析处理信息,得到的结果再由逆DFT变换到时域。FFT是DFT的一种快速算法。在数字信号处理系统中,FFT作为一个非常重要的工具经常使用,甚至成为DSP运算能力的一个考核因素。

本实验通过使用MATLAB函数中的FFT命令计算离散时间信号的频谱,以加深对离散信号的DFT的理解及其FFT算法的运用。

2. 实验要求:

对实验内容中给定的序列求给定点数N的FFT和IFFT,利用MATLAB编程完成计算,绘出相应图形。并与理论计算相比较,说明实验结果的原因。

3. 实验原理:

一.数字滤波器设计:

(一)基—2按时间抽取FFT算法

对于有限长离散数字信号{x[n]},0 ? n ? N-1,其离散谱{x[k]}可以由离

X?k???x[n]en?0N?1?j(2?)nkNk?0,1,...,N?1散付氏变换(DFT)求得。DFT的定义为

可以方便的把它改写为如下形式: 不难看出,WN是周期性的,且周期为N,即

N?1nlN?0(n?mN)(k?)nkWN?WNnkX?k???x[n]WNk?0,1,...,N?1m,l?0,?1,?2...WN的周期性是DFT的关键性质之一。为了强调起见,常用表达式WN取代W以便明确其周期是N。

由DFT的定义可以看出,在x[n]为复数序列的情况下,完全直接运算N点DFT需要(N-1)2次复数乘法和N(N-1)次加法。因此,对于一些相当大的N值(如1024)来说,直接计算它的DFT所作的计算量是很大的。FFT的基本思想在于,将原有的N点序列序列分成两个较短的序列,这些序列的DFT可以很简单的组合起来得到原序列的DFT。例如,若N为偶数,将原有的N点序列分成两个(N/2)点序列,那么计算N点DFT将只需要约[(N/2)2 ·2]=N2/2次复数乘法。即比直接计算少作一半乘法。因子(N/2)2表示直接计算(N/2)点DFT所需要的乘法次数,而乘数2代表必须完成两个DFT。上述处理方法可以反复使用,即(N/2)点的DFT计算也可以化成两个(N/4)点的DFT(假定N/2为偶数),从而又少作一半的乘法。这样一级一级的划分下去一直到最后就划分成两点的FFT运算的情况。比如,一个N = 8点的FFT运算按照这种方法来计算FFT可以用下面的流程图来表示:

x(0)W0x(1)W0x(2)W0x(3)x(4)W0x(5)W0x(6)W0x(7)W2X(7)W3X(6)W2X(5)W2W0W1X(3)X(4)X(2)X(1)X(0)

关于蝶形结运算的具体原理及其推导可以参照讲义,在此就不再赘述。按频率抽取的FFT的原理也可查阅相关资料,这里就不再推导了。

二.使用到的MATLAB命令:

函数fft(x)可以计算R点序列的R点DFT值;而fft(x,N)则计算R点序列的N点DFT,若R>N,则直接截取R点DFT的前N点,若R

4.实验内容:

(1) 计算一个实数序列x[n]?1,0?n?256的1024点FFT,注意使用将此序列组

合成一复数序列后再计算的方法。 (1)实验分析:

求某实信号y(n)的复谱,可认为是将实信号加上数值为零的虚部变成复信号(x(n)+j0),再用FFT求其离散付里叶变换。这种作法很不经济,因为把实序列变成复序列,存储器要增加一倍,且计算机运行时,即使虚部为零,也要进行涉及虚部的运算,浪费了运算量。合理的解决方法是利用复数据FFT对实数据进行有效计算。

用一个N点的FFT运算获得一个2N点实序列的DFT

设x(n)是2N点的实序列,现人为地将x(n)分为偶数组x1(n)和奇数组x2(n)

x1(n)=x(2n) n=0,1,…,N-1 x2(n)=x(2n+1) n=0,1,…,N-1

然后将x1(n)及x2(n)组成一个复序列y(n)=x1(n)+jx2(k) 通过N点FFT运算可得到 Y(k)=X1(k)+jX2(k) 根据前面的讨论,得到

为求2N点x(n)所对应的X(k),需求出X(k)与X1(k),X2(k)的关系

nk所以 X(k)=X1(k)+WNX2(k)。

这样,由x1(n)及x2(n)组成复序列,经FFT运算求得Y(k)后,再利用共轭对称性求出X1(k),X2(k),最后利用上式求出X(k),从而达到了用一个N点的FFT计算一个2N点实序列DFT的目的。 (2)matlab源程序:

function [ xk ] = gongshijun2( )

x1=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];

x2=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; yn=x1+1i*x2; yk=fft(yn,512); x3=x1(end:-1:1); x4=x2(end:-1:1); yn=x3+1i*x4;

ynk=fft(yn,512); x1k=0.5*(yk+conj(ynk)); x2k=-(1i)*0.5*(yk-conj(ynk)); xk=x1k+x2k*exp(1i*360/1024*512); m=0:length(xk)-1; plot(m,xk,'b-'); end

(3)实验结果截图:

(4)实验图截图:

(2) 分别计算两个实数序列

x(n)?sinx(n?)5?cno?sn?16,和01285?n,0?n?128的128点FFT,注意使用将此二序列组合成一复16数序列后再计算的方法。 (1)实验分析:

一个N点FFT同时计算两个N点实序列的DFT

设x1(n),x2(n)是彼此独立的两个N点实序列,且X1(k)=DFT[x1(n)],X2(k)=DFT[x2(n)]

可通过一次FFT运算同时获得X1(k),X2(k)。算法如下: 首先将x1(n),x2(n)分别当作一复序列的实部及虚部,令 x(n)=x1(n)+jx2(n)

通过FFT运算可获得x(n)的DFT值

X(k)=DFT[x1(n)]+jDFT[x2(n)]=X1(k)+jX2(k) 利用离散付里叶变换的共轭对称性

有了x(n)的FFT运算结果X(k),由上式即可得到X1(k),X2(k)的值。 则,由题目的设

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新教学研究数字信号处理实验一:FFT算法的应用 全文阅读和word下载服务。

数字信号处理实验一:FFT算法的应用 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1107519.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top