《数字信号处理》课程
(2010-2011学年第1学期 ) 成绩:
实验二 快速傅里叶变换(FFT)及其应用
学生姓名:闫春遐
所在院系:电子信息工程学院自动化系
年级专业:2008级自动化系
学 号:00824049
指导教师:王亮
完成日期:2010年9月27日
实验二 快速傅里叶变换(FFT)及其应用 闫春遐 00824049
实验二 快速傅里叶变换(FFT)及其应用
一、实验目的
(1)在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。
(2)应用FFT对典型信号进行频谱分析。
(3)了解应用FFT进行信号频谱分析过程可能出现的问题,以便在实际中正确应用FFT。
(4)应用FFT实现序列的线性卷积和相关。
二、实验内容
实验中用到的信号序列: a)高斯序列
??(n?p)?qxa(n)??e??020?n?15
其他b)衰减正弦序列
?e?ansin(2?fn)0?n?15 xb(n)??
0其他?c)三角波序列
0?n?3?n?xc(n)??8?n4?n?7?0其他?
d)反三角波序列
?4?n0?n?3?xd(n)??n?44?n?7?0其他?
上机实验内容:
(1)观察高斯序列的时域和幅频特性,固定信号xa(n)中参数p?8,改变q的值,使q分别等于2、4、8,观察他们的时域和幅频特性,了解当q取不同值时,对信号的时域和幅频特性的影响;固定q?8,改变p,使p分别等于8、13、
第1页 共19页
实验二 快速傅里叶变换(FFT)及其应用 闫春遐 00824049
14,观察参数p变化对信号序列的时域及幅频特性的影响,注意p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。
解答: >> n=0:1:15;
>> xn=exp(-(n-8).^2/2);
>> subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)'); >> xk1=fft(xn);xk1=abs(xk1);
>> subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');
>> xn=exp(-(n-8).^2/4);
>> subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)'); >> xk1=fft(xn);xk1=abs(xk1);
>> subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');
第2页 共19页
实验二 快速傅里叶变换(FFT)及其应用 闫春遐 00824049
>> xn=exp(-(n-8).^2/8);
>> subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)'); >> xk1=fft(xn);xk1=abs(xk1);
>> subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');
>> xn=exp(-(n-13).^2/8);
>> subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)'); >> xk1=fft(xn);xk1=abs(xk1);
>> subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');
>> xn=exp(-(n-14).^2/8);
>> subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)'); >> xk1=fft(xn);xk1=abs(xk1);
>> subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');
第3页 共19页
实验二 快速傅里叶变换(FFT)及其应用 闫春遐 00824049
随着q值的增大,时域信号幅值变化缓慢,频域信号频谱泄露程度减小。 随着p的增大,时域信号幅值不变,会在时间轴移位。
(2)观察衰减正弦序列xb(n)的时域和幅频特性,a?0.1,f?0.0625,检查普峰出现的位置是否正确,注意频谱的形状,绘出幅频特性曲线,改变f,使
f分别等于0.4375和0.5625,观察这两种情况下,频谱的形状和普峰出现的位
置,有无混叠和泄漏现象?说明产生现象的原因。
解答: >> n=0:1:15;
>> xn=exp(-0.1*n).*sin(2*pi*0.0625*n);
>> subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)'); >> xk1=fft(xn);xk1=abs(xk1);
>> subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');
第4页 共19页