数字信号处理 实验一 FFT变换及其应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 FFT变换及其应用
一、实验目的和要求
1.在理论课学习的基础上,通过本次实验,加深对DFT原理的理解,懂得
频域DFT与时域卷积的关系,进一步加深对DFT基本性质的理解;
2.研究FFT算法的主要途径和编程思路,掌握FFT算法及其程序的编写过程,
掌握最基本的时域基-2FFT算法原理及程序框图;
3.熟悉应用FFT实现两个序列的线性卷积的方法,利用FFT进行卷积,通过
实验比较出快速卷积优越性,掌握循环卷积和线性卷积两者之间的关系;
4.熟悉应用FFT对典型信号进行频谱分析的方法,初步了解用周期图法作随
机信号谱分析的方法,了解应用FFT进行信号频谱分析过程中可能出现的
问题,以便在实际中正确应用FFT;
5.掌握使用MATLAB等基本开发工具实现对FFT编程。
二、实验设备和分组
1.每人一台PC机;
2.Windows 2000/XP以上版本的操作环境;
3.MatLab 6.5及以上版本的开发软件。
三、实验内容
(一)实验准备
1.用FFT进行谱分析涉及的基础知识如下:
信号的谱分析就是计算信号的傅里叶变换。若信号是模拟信号,用FFT进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后用FFT来对连续信号进行谱分析。
若信号本身是有限长的序列,计算序列的频谱就是直接对序列进行FFT运算求得X(k),X(k)就代表了序列在[0,2]之间的频谱值。
幅度谱:
相位谱:
为避免产生混叠现象,采样频率fs 应大于2倍信号的最高频率fc ,为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器。 用FFT 对模拟信号进行谱分析的方框图如下所示。
图1.1 FFT 对模拟信号进行谱分析的方框图
2. 应用FFT 实现快速卷积涉及的基础知识如下: 一个信号序列x(n)与系统的卷积可表示为下式:
Y(n)=x(n)*h(n)=
∑+∞
-∞
=-m m n h m x )()(
当是一个有限长序列,且0≤n ≤N-1时,有:
Y(n)=
∑-=-1
)()(N n m n x m h
此时就可以应用FFT 来快速计算有限长度序列的线性卷积。
也就是先将输入信号x (n )通过FFT 变换为它的频谱采样值X(k),然后再和滤波器的频响采样值H(k)相乘,最后再将乘积通过快速傅里叶变换(简称IFFT )还原为时域序列,即得到输出。如下图所示。
图1.2 FFT 实现卷积的过程示意图
2.1.当序列x(n)和h(n)的长度差不多时
设x(n)的长度为N1,h(n)的长度为N2,则用FFT 完成卷积的具体步骤如下: ①为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度N ≥N1+N2-1
②用补零方法使x(n)和h(n)变成列长为N 的序列。 ③用FFT 计算x(n)和h(n)的N 点离散傅里叶变换 ④完成X(k)和H(k)的乘积Y(k)。
⑤用FFT计算的离散傅里叶反变换得 y(n)
2.2 当x(n)长度很长时可采用分段卷积的方法即重叠相加法和重叠保留法。
(二)实验项目
(1)用FFT进行频谱分析
1)对高斯序列进行频谱分析
代码如下:
n=0:15;
p=8;
q=2;
x =exp(-1*(n-p).^2/q);
close all;
subplot(3,1,1);
stem(fft(x)) ; %利用fft 函数实现傅里叶变换
subplot(3,1,2);
stem(abs(fft(x))); %绘制幅度谱
subplot(3,1,3);
stem(angle(fft(x))) %绘制相位谱
代码是为了得出此高斯序列的快速傅里叶变换,得到DFT的频谱特征图、幅频特征图和相频特征图。
a)固定信号参数P=8,改变q的值依次为2、4、8,结果如下图:
P=8,q=2
图2-1
P=8,q=4
图2-2
P=8,q=8
图2-3
结果分析:从图中可以看出,当固定p的值,改变q,可观察到:随着q的增加,幅频图中趋近与0和等于0的个数增多。可见q的增大使DFT幅频图中幅度平均值减小,且p是序列的对称轴,时域轴都关于n=8对称。当q=2、4、8时,频域变化越来越快,中间水平部分越来越大,混叠减弱。
b)固定信号参数q=8,改变p的值依次为8、13、14,结果如下图:
q=8,P=8
图2-4 q=8,p=13
图2-5 p=14,q=8
图2-6
结果分析:当固定q的值,改变p,可观察到:随着p的增大,图形越来越偏离真实值,当p=14时泄漏现象较明显,频域波形随p的增大频率
分量会增多,易产生混叠。
2)对正弦序列进行频谱分析
代码如下:
n=0:15; %定义序列长度
a=0.1;
f=0.0625;
x=exp(-a*n).*sin(2*pi*f*n);
close all;
subplot(2,1,1);
stem(x);
title('衰减正弦序列');
subplot(2,1,2);
stem(abs(fft(x))); %绘制幅度谱
title('x 信号的频谱')
a)固定参数a=0.1,改变f,分别为0.5625、0.4375、0.0625,结果如下图:
f=0.5625
图2-7