哈工大数字信号处理报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理
实验报告
课程名称:数字信号处理
院系:
班级:
姓名:
学号:
指导教师:
实验时间: 2013 年11月
实验一: 用FFT 作谱分析
一、 实验目的
1.进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一 种快速算法,所以FFT 的运算结果必然满足DFT 的基本性质)。 2.熟悉FFT 算法原理和FFT 子程序的应用。
3.学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出 现的分析误差及其原因,以便在实际中正确应用FFT 。
二、 实验步骤
1.复习DFT 的定义、性质和用DFT 作谱分析的有关内容。
复习FFT 算法原理与编程思想,并对照DIT —FFT 运算流图和程序框图, 2.读懂本实验提供的FFT 子程序。
3.编制信号产生子程序,产生以下典型信号供谱分析:
()()n R n x 41=
1+n , 30≤≤n
()=n x 2 n -8, 74≤≤n 0 , 其它n
n -4, 30≤≤n
()=n x 3 3-n , 74≤≤n
, 其它n
()n n x 4
cos 4π
= ()n n x 8
sin
5π
=
()t t t t x πππ20cos 16cos 8cos 6++=
应当注意,如果给出的是连续信号()t x a ,则首先要根据其最高频率确定采样速率s f 以及由
频率分辨率选择采样点数N ,然后对其进行软件采样(即计算()()nT x n x a =,
10-≤≤N n ),产生对应序列()n x 。对信号()t x 6,频率分辨率的选择要以能分辨开其中
的三个频率对应的谱线为准则。对周期序列,最好截取周期的整数倍进行谱分析,否则有可能产生较大的分析误差。 4. 编写主程序
下图给出了主程序框图,供参考。本实验提供FFT 子程序和通用绘图子程序。
主程序框图
三、 实验结果
直接运行程序,按照实验内容及程序提示键入1~8,分别对()n x 1~()n x 6及
()()()n x n x n x 547+=、()()()n jx n x n x 548+=进行谱分析。输出()()n x n x 51~的波形及
其8点DFT 和16点DFT ,()n x 6的16点、32点和64点采样序列及其DFT 。
开始
读入长度N
调用信号产生子程序产生实验信号
调用绘图子程序(函数)绘制时间序列波形图
调用FFT 子程序(函数)计算信号的DFT
调用绘图子程序(函数)绘制()
k X
曲线
结束
4.实验程序
X1 的实验程序
x1=[1 1 1 1 ];
y11=fft(x1,8);
y12=fft(x1,16);
subplot(2,3,1);
stem(0:3,x1);
title('函数x1的图像');box on
subplot(2,2,2);
stem(0:7,abs(y11));
title('N=8时,x1的DFT图像');box on
subplot(2,2,4);
stem(0:15,abs(y12));
title('N=16时,x1的DFT图像');box on X2 的实验程序
xa=1:1:4;
xb=4:-1:1;
x2=[xa xb];
y21=fft(x2,8);
y22=fft(x2,16);
subplot(2,2,1);
stem(0:7,x2);
title('函数x2的图像');
subplot(2,2,2);box on
stem(0:7,abs(y21));
title('N=8时,x2的DFT图像');box on
subplot(2,2,4);
stem(0:15,abs(y22));
title('N=16时,x1的DFT图像');box on X3的实验程序
xa=4:-1:1;
xb=1:1:4;
x3=[xa xb];
y31=fft(x2,8);
y32=fft(x2,16);
subplot(2,2,1);
stem(0:7,x3);
title('函数x3的图像');
subplot(2,2,2);
stem(0:7,abs(y31));
title('N=8时,函数x3的DFT图像'); subplot(2,2,3);
stem(0:15,abs(y32));
title('N=16时,函数x3的DFT图像'); title('N=16时,x2的DFT图像');box on
X4 X5 X7 X8的实验程序
subplot(441)
n=0:1:7
x4=cos(0.25*pi*n)
stem(n,x4)
xlabel('n')
ylabel('x4(n)')
title('x4(n)')
subplot(442)
n=0:1:15
x44=cos(0.25*pi*n)
stem(n,x44)
xlabel('n')
ylabel('x44(n)')
title('x44(n)')
subplot(443)
n=0:1:7
stem(n,abs(fft(x4)))
xlabel('n')
ylabel('|X4(k)|')
title('8 point FFT')
subplot(444)
n=0:1:15
stem(n,abs(fft(x44)))
xlabel('n')
ylabel('|X44(k)|')
title('16 point FFT')
subplot(445)
n=0:1:7
x5=sin(0.125*pi*n)
stem(n,x5)
xlabel('n')
ylabel('x5(n)')