基于MATLAB的序列DFT实现.docx
《基于MATLAB的序列DFT实现.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的序列DFT实现.docx(13页珍藏版)》请在冰豆网上搜索。
基于MATLAB的序列DFT实现
课程设计
课程设计名称:
数字信号处理课程设计
专业班级:
电子信息工程0604
学生姓名:
学号:
20064300406
指导教师:
课程设计时间:
2009年6月14日
数字信号处理专业课程设计任务书
学生姓名
专业班级
电信0604
学号
20064300406
题目
基于MATLAB的序列DFT实现
课题性质
其他
课题来源
自拟课题
指导教师
同组姓名
主要内容
根据已学的知识并结合MATLAB对下面三个序列计算在N=16和N=8时序列的N点DFT,并画出幅频特性曲线,最后用DFT理论解释为何两种N值下的DFT结果差别如此之大?
复正弦序列
余弦序列
正弦序列
任务要求
1、写出设计原理和设计思路,画出程序流程图
2、用MATLAB画出序列的N点DFT及其幅频特性曲线
3、用MATLAB画出N点DFT的幅频特性曲线
参考文献
1.程佩青著,《数字信号处理教程》,清华大学出版社,2001
2.SanjitK.Mitra著,孙洪,余翔宇译,《数字信号处理实验指导书(MATLAB版)》,电子工业出版社,2005年1月
3.郭仕剑等,《MATLAB7.x数字信号处理》,人民邮电出版社,2006年
审查意见
指导教师签字:
教研室主任签字:
年月日
说明:
本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页
一设计内容与技术要求
1.设计内容:
设计题目:
基于MATLAT的序列DFT实现
内容要求:
根据已学的知识并结合MATLAB对下面三个序列计算在N=16和N=8时序列的N点DFT,并画出幅频特性曲线,最后用DFT理论解释为何两种N值下的DFT结果差别如此之大?
复正弦序列
余弦序列
正弦序列
2技术要求:
1.写出设计原理和设计思路,画出程序流程图
2.用MATLAB画出序列的N点DFT及其幅频特性曲线
3.用MATLAB画出N点DFT的幅频特性曲线
二 设计原理及设计思路
离散傅里叶变换(DFT),是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换(DTFT)频域的采样。
在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。
即使对有限长的离散信号作DFT,也应当将其看作经过周期延拓成为周期信号再作变换。
时域中N点序列x[n]的DFT定义为
X[k]=∑x[n]exp[-j*2pi*kn/N]
三 程序流程图
输入相对应的参数
N=16;N=8
分别调用序列复正弦序列,正弦序列,余弦序列
通过matlab仿真得出结果
根据幅频特性曲线对结果进行分析
四 程序源代码
设计过程:
1.对于余弦序列
k=16;
n1=[0:
1:
15];
xa1=cos(2*pi*n1/k);
subplot(2,2,1)
plot(n1,xa1)
xlabel('t/T');ylabel('x(n)');
xk1=fft(xa1);xk1=abs(xk1);
subplot(2,2,2)
stem(n1,xk1)
xlabel('k');ylabel('X(k)');
n2=[0:
1:
7];
xa2=cos(2*pi*n2/k);
subplot(2,2,3)
plot(n2,xa2)
xlabel('t/T');ylabel('x(n)');
xk2=fft(xa2);xk2=abs(xk2);
subplot(2,2,4)
stem(n2,xk2)
xlabel('k');ylabel('X(k)');
所得原序列和幅频特性曲线:
2.对于正弦序列
k=16;
n1=[0:
1:
15];
xa1=sin(2*pi*n1/k);
subplot(2,2,1)
plot(n1,xa1)
xlabel('t/T');ylabel('x(n)');
xk1=fft(xa1);xk1=abs(xk1);
subplot(2,2,2)
stem(n1,xk1)
xlabel('k');ylabel('X(k)');
n2=[0:
1:
7];
xa2=sin(2*pi*n2/k);
subplot(2,2,3)
plot(n2,xa2)
xlabel('t/T');ylabel('x(n)');
xk2=fft(xa2);xk2=abs(xk2);
subplot(2,2,4)
stem(n2,xk2)
xlabel('k');ylabel('X(k)');
所得原序列和幅频特性曲线:
3.对于复正弦序列
N=16;N1=8;
n=0:
N-1;k=0:
N1-1;
x1n=exp(j*pi*n/8);
X1k=fft(x1n,N);
X2k=fft(x1n,N1);
Subplot(2,2,1);stem(n,abs(X1k),'.');axis([0,20,0,20]);ylabel('|X1(k)|')
title('16点的DFT[x1(n)]')
Subplot(2,2,3);stem(k,abs(X2k),'.');axis([0,20,0,20]);ylabel('|X1(k)|')
title('8DFT[x1(n)]')
五.结果分析:
N点离散傅里叶变换的一种物理解释就是X(k)是x(n)以N为周期的周期延拓序列的离散傅里叶级数系数的主值区间序列。
当N=16时,x1(n),x2(n),x3(n)正好分别是exp(j*pi*n/8),cos(pi*n/8),sin(pi*n/8)。
所以x1(n),x2(n),x3(n)的周期延拓序列就是这三个单一频率的正弦序列。
当N=8时,x1(n),x2(n),x3(n)正好分别是exp(j*pi*n/8),cos(pi*n/8),sin(pi*n/8)的半个周期,所以x1(n),x2(n),x3(n)的周期延拓序列就不再是单一的正弦序列,而是含有丰富的谐波成分,其离散傅里叶级数的系数与N=16时的差别很大。
因此对信号进行频谱分析的时候一定要截取整个周期,负责得到错误的频谱。
参考文献:
1.程佩青著,《数字信号处理教程》,清华大学出版社,2001
2.SanjitK.Mitra著,孙洪,余翔宇译,《数字信号处理
实验指导书(MATLAB版)》,电子工业出版社,2005
年1月
3.郭仕剑等,《MATLAB7.x数字信号处理》,人民邮电出版社,2006年
课程设计心得
一周的DSP课程设计,一次思维的深入再拓展,一次把所学知识和实践结合验证的机会,这次设计让人感受颇深,首先我想谈论一下我们小组遇到的问题,对于正弦和余弦基本上没问题,在做复数DFT时,我们最先想到的是转换形式,将幂函数转换为实部加虚部,然后再依照前面的两个例子累加,但是在程序实现的时候,遇到的问题是如何考虑这个虚部,一个j,虽然出来了幅频特性曲线,但总感觉不放心,觉得又写不妥,始终没有找到原因,我们用该种方法得到的图形如下:
当N=16时,该
当N=8时
我们经过分析,这两种方法所得到的幅频特性曲线应该是一样的,经过对比,N=16时,呈现单一离散频率序列,当N=8时,不再呈现单一离散频率序列,而是含有丰富的谐波成分,请老师对比分析一下。
这次课程设计,让我收益匪浅,学到了不少东西,由于对课本知识掌握不牢,对matlab知识的欠缺,让我在设计过程中遇到不少困难,但是最终通过和同学探讨,查找资料相关知识,我们小组最终取得了成功,我想这正是我们做课程设计的真正目的,特别是对于复数序列的两种思考方法,我感到莫大的成就感,两种方法得出的结果基本相同,虽然还不知道第二种方法是否正确,但我想,课程设计的目的已经达到,发散思维,掌握知识。
同时,对matlab操作环境有了更进一步的认识,更加熟练掌握了一些基本操作知识,同时在和同学探讨的时候,对一些知识的漏点进行了弥补,查找资料,分析结果,对比图形,我们小组互相合作,这种团队合作让我们受益匪浅,我们也取得了一定的成果。
对于matlab的使用,在今后的毕业设计中,工作学习中,我想它都会起到很大的作用,这次课程设计真的很开心,受益很大,感谢我们小组成员李腾,查找资料,探讨分析,我们或许不是最好的,但我们是最努力的。
同时也感谢老师的指导,我会继续努力,不断提高自己。
2009年6月14日
信息科学与工程学院课程设计成绩评价表
课程名称:
数字信号处理课程设计
设计题目:
基于MATLAB的序列DFT实现
专业:
电子信息工程班级:
电信0604姓名:
彭绪坤学号:
20064300406
序号
评审项目
分数
满分标准说明
1
内容
20
思路清晰;语言表达准确,概念清楚,论点正确;实验方法科学,分析归纳合理;结论严谨,设计有应用价值。
任务饱满,做了大量的工作。
2
创新
10
内容新颖,题目能反映新技术,对前人工作有改进或突破,或有独特见解
3
完整性、实用性
10
整体构思合理,理论依据充分,设计完整,实用性强
4
数据准确、可靠
10
数据准确,公式推导正确
5
规范性
10
设计格式、绘图、图纸、实验数据、标准的运用等符合有关标准和规定
6
纪律性
20
能很好的遵守各项纪律,设计过程认真;
7
答辩
20
准备工作充分,回答问题有理论依据,基本概念清楚。
主要问题回答简明准确。
在规定的时间内作完报告。
总分
综
合
意
见
指导教师年月日