- 10
- 0
- 约4.34千字
- 约 26页
- 2017-05-21 发布于浙江
- 举报
实验三 快速傅立叶变换
实验三 快速傅立叶变换
一、实验目的
加深对离散傅立叶变换 (DFT)的理解。
掌握利用MATLAB语言进行离散傅立叶变换和逆变换的
方法。
加深对离散傅立叶变换基本性质的理解。
掌握离散傅立叶变换快速算法的应用。
二、实验原理及方法
有限长序列通过离散傅里叶变换 (DFT)将其频域离
散化成有限长序列.但其计算量太 (与N的平方成
正比), 很难实时地处理问题, 因此引出了快速
傅里叶变换 (FFT)。
FFT并不是一种新的变换形式,它只是DFT的一种快
速算法.并且根据对序列分解与选取方法的不同而
产生了FFT的多种算法.
DFT的快速算法—FFT是数字信号处理的基本方法和基
本技术,是必须牢牢掌握的。
时间抽选FFT算法的理论推导和流图详见 《数字信号处
理》教材。该算法遵循两条准则:
(1)对时间奇偶分;(2)对频率前后分。
这种算法的流图特点是:
(1)基本运算单元都是蝶形
M
任何一个长度为N=2 的序列,总可通过M次分解最后
成为2点的DFT计算。如图所示:
k
W 称为旋转因子
N
计算方程如下:
k
X (p)=X (p)+W X (q)
m+1 m N m
k
X (q)=X (p)-W X (q)
m+1 m N m
(2)同址 (原位)计算
这是由蝶形运算带来的好处,每一级蝶形运算的结果
X (p)无须另外存储,只要再存入X (p)中即可,X (q)
m+1 m m+1
亦然。这样将大大节省存储单元。
(3)变址计算
输入为 “混序” (码位倒置)排列,输出按自然序排
列,因而对输入要进行 “变址”计算 (即码位倒置计算)。
“变址”实际上是一种 “整序”的行为,目的是保证 “同
址”。
FFT的应用
凡是利用付里叶变换来进行分析、综合、变换的
地方,都可以利用FFT算法来减少其计算量。
FFT主要应用在
1、快速卷积
2、快速相关
3、频谱分析
快速傅立叶变换的MATLAB实现
提供fft函数计算DFT
格式
X=fft(x) X=fft(x,N)
如果x的长度小于N,则在其后填零使其成为N点序列,
反之对x进行截断,若省略变量N,则DFT的长度即为x
的长度。
如果N为2的幂,则得到高速的基-2FFT算法;若N不是2
的乘方,则为较慢的混合算法。
如果x是矩阵,则X是对矩阵的每一列向量作FFT。
快速傅立叶逆变换 (IFFT)
函数调用格式
y=ifft(x)
y=ifft(x,N)
当N小于x长度时,对x进行截断,当N大于x长
度时,对x进行补零。
fftshift函数
功能:
对fft的输出进行重新排列,将零频分量移到频谱的中
心。
调用格式
y=fftshift(x)
当x为向量时,fftshift(x)直接将x中左右两半交换而
产生y。
当x为矩阵时,fftshift(x)直接将x中左右、上下进行
交换而产生y。
例:已知信号由15Hz幅值0.5的正弦信号和40Hz
幅值2的正弦信号组成,数据采样频率为100Hz,
试绘制N=128点DFT的幅频图。
由题目
原创力文档

文档评论(0)