MATLAB实现离散傅里叶变换DFT
一、实验目的
1.通过实验加深对DFT 的理解。
2.理解如何用DFT计算离散信号频谱。
二、实验原理及方法
我们知道,在信号的时域表示形式和频域表示形式之间,一个域的周期性对应于另一个域的离散性,一个域的非周期性对应于另一个域的连续性。所以,周期的离散时间信号的频谱是离散频率的周期函数。
当信号在时域和频域中都是抽样的离散函数时,按照傅里叶变换的概念,他们在两个域中也必然是周期的。但是,用计算机去完成这样无限长序列的运算,显然是不可能的。同时由于这些序列的周期性,他们的信息均包含在一个周期之中,因此也没有必要作无限长序列的运算。这样,就有必要从时域和频域都缩减到一个限定的范围内来进行。这个范围,就是时间函数的一个周期Tp 和频谱函数的一个周期Ωp 。把离散信号在时域和频域的函数中各取一周期,并定义他们是离散傅里叶变换对,如以 DFT 表示离散傅里叶正变换,IDFT 表示离散傅里叶反变换,则有X (k ) = DFT[x(n)],x(n) = IDFT[ X (k )]
由此可见,离散傅里叶变换已经不是通常意义的傅里叶变换了。这种变换的特点,是信号在
频域和时域中都只取有限个离散数据,只有当这些数据按一定的周期分别构成周期性的离散时间函数和周期性得离散频率函数时,他们才成为通常意义的傅里叶变换对。
说明了离散傅里叶变换的意义后,现在可以来进一步研究如何计算离散傅里叶变换,既由 x(n) 计算 X (k ) 。有了周期的离散信号 ~x (n) 的频谱函数 ~X(k),按定义,只要取 ~ 的一个周期 X (k ) ,它就是 ~x (n) 一个周期 x(n) 的离散傅里叶变换。
三、实验内容及步骤
用 DFT 分析各种离散信号的幅频特性。
参考流程图 1:
参考流程图3:
4.设 x(n) 为长度 N=5 的矩形序列,求离散傅立叶变换 X (k )
(1) 绘出有限长序列 x(n) ;
(2) 由 x(n) 形成的周期序列 ~x (n) ;
(3) 对应于 ~x (n) 的傅立叶级数x(e ʲ▷ ) ;~X (k )和 x(n) 的傅立叶变换的幅度特性
(4)x(n) 的 DFTX (k ) 。
若将长度改成 N=10 的矩形序列,绘出有限长序列 x(n) ;周期序列 ~x (n) ;DFT 的幅值。
程序流程图:
四、思考题
1. 用连续傅里叶变换分析(被抽样的)连续信号,将其结果与抽样信号的离散傅里叶
变换结果相比较,你能发现什么问题?如何解释?
2. 计算抽样序列的连续傅里叶变换,将其结果与抽样序列的离散傅里叶变换结果相比
较,你又能发现什么问题?
五、实验报告要求
1. 简述实验原理及目的。
2.有能力者自行编制信号频谱的相频特性程序,分析信号的相频特性。
3. 写出实验程序绘制图形,总结DFT 的物理意义.
4. 简要回答思考题。
8.1:
f=32;
dt=1/f;
N=32;
n=0:N-1;k=n;
n=n*dt;
x=0.15*sin(2*pi*n)+sin(2*pi*2*n)-0.1*sin(2*pi*3*n);
y=x*exp(-j*2*pi/N).^(n'*k);
subplot(3,1,1);stem(n,x,'filled');ylabel('x');
subplot(3,1,2);stem(k,abs(y),'filled');ylabel('mag X(k)');
subplot(3,1,3);stem(k,angle(y),'filled');ylabel('ang X(k)');
8.2:
N=16;
n=0:N-1;k=n;
x=sin(pi*n/8)+sin(pi*n/4);
y=x*exp(-j*2*pi/N).^(n'*k);
subplot(3,1,1);stem(n,x,'filled');ylabel('x');
subplot(3,1,2);stem(k,abs(y),'filled');ylabel('mag X(k)');
subplot(3,1,3);stem(k,angle(y),'filled');ylabel('ang X(k)');
8.3:
for N=8:8:16
n=0:N-1;k=n;
x=[n<=3];
y=x*exp(-j*2*pi/N).^(n'*k);
figure;
subplot(3,1,1);stem(n,x,'filled');ylabel('x(n)');
subplot(3,1,2);stem(k,abs(y),'filled');ylabel('mag X(k)');
subplot(3,1,3);stem(k,angle(y),'filled');ylabel('ang X(k)');
end
8.4:
for N=5:5:10
n=0:N-1;k=n;
x=[n>=0];
n1=0:6*N-1;k1=n1;
x1=x(mod(n1,N)+1);
y=x*exp(-j*2*pi/N).^(n'*k);
y1=x1*exp(-j*2*pi/N).^(n1'*k1);
w=linspace(-2*pi,2*pi,500);
y2=x*exp(-j*n'*w);
figure;
subplot(4,2,1);stem(n,x,'.');ylabel('x');
subplot(4,2,2);stem(n1,x1,'.');ylabel('x~(n)');
subplot(4,2,3);stem(k,abs(y),'.');ylabel('mag X(k)');
subplot(4,2,4);stem(k,angle(y),'.');ylabel('ang X(k)');
subplot(4,2,5);stem(k1,abs(y1),'.');ylabel('mag X~(k)');
subplot(4,2,6);stem(k1,angle(y1),'.');ylabel('ang X~(k)');
subplot(4,1,4);plot(w/pi,abs(y2));xlabel('X pi');ylabel('X(w)');
end
MATLAB实现离散傅里叶变换DFT相关推荐
- MATLAB做离散傅里叶变换DFT
主函数 N=16; n=0:N-1; x1n=exp(j*pi*n/8); X1k=dft(x1n,N); x2n=cos(pi*n/8); X2k=dft(x2n,N); x3n=sin(pi*n/ ...
- matlab中idfs,【 MATLAB 】离散傅里叶变换(DFT)以及逆变换(IDFT)的MATLAB实现
刚刚写过一篇用MATLAB实现离散傅里叶级数的博文,如下: 离散傅里叶变换不是一种神奇的东西,它和离散傅里叶级数关系很紧密,紧密到使用MATLAB编写离散傅里叶变换以及逆变换的函数一模一样,只需改个名 ...
- Matlab如何进行利用离散傅里叶变换DFT (快速傅里叶变换FFT)进行频谱分析
文章目录 1. 定义 2. 变换和处理 3. 函数 4. 实例演示 例1:单频正弦信号(整数周期采样) 例2:单频正弦信号(非整数周期采样) 例3:含有直流分量的单频正弦信号 例4:正弦复合信号 例5 ...
- 【 MATLAB 】离散傅里叶变换(DFT)以及逆变换(IDFT)的MATLAB实现
刚刚写过一篇用MATLAB实现离散傅里叶级数的博文,如下: [ MATLAB ]离散傅里叶级数(DFS)及 IDFS 的 MATLAB 实现 离散傅里叶变换不是一种神奇的东西,它和离散傅里叶级数关系很 ...
- dft对称性 matlab实验,数字信号处理实验 matlab版 离散傅里叶变换的性质
数字处理实验 matlab版 山大学生最适用 本人自己写的 因为时间比较久了 不能完全保证出现代码都能运行 但95%还是能保证的 谢谢 实验13 离散傅里叶变换的性质 (完美格式版,本人自己完成,所有 ...
- 【算法】离散傅里叶变换(DFT)
真实的系统是会离散的,时变的.理想者将瞬时态看成时线性的系统,将时变系统分成了不同阶段.离散在围观层面是连续的,但从表层感受时,变化是迅猛的,可以忽略不计变化的过程,因而成为了离散. 一.离散系统 离 ...
- 傅里叶级数FS,连续时间傅里叶变换CTFT,离散时间傅里叶变换DTFT,离散傅里叶变换DFT,推导与联系(一)
本文主要从傅里叶级数 FS,连续时间傅里叶变换 CTFT,离散时间傅里叶变换 DTFT,以及离散傅里叶变换 DFT 之间的区别与联系进行了比较详细的讨论,主要注重于公式形式上的推导,略去了相关的图像示 ...
- 离散傅里叶变换 (DFT)、快速傅里叶变换 (FFT)
目录 离散傅里叶变换 (DFT) 离散傅里叶变换的基 离散傅里叶变换 快速傅里叶变换 (FFT) 卷积 线性时不变系统 傅里叶级数 参考文献 离散傅里叶变换 (DFT) 离散傅里叶变换的基 对于周期为 ...
- 傅里叶变换、离散傅里叶变换(DFT)、快速傅里叶变换(FFT)详解
前置知识 以下内容参考<复变函数与积分变换>,如果对积分变换有所了解,完全可以跳过忽略 复数的三角表达式如下 Z=r(cosθ+isinθ)Z=r(cos\theta+isin\theta ...
- 傅里叶级数FS,连续时间傅里叶变换CTFT,离散时间傅里叶变换DTFT,离散傅里叶变换DFT,推导与联系(二)
由于本文公式所占用的字符比较多,无法在一篇博客中完整发布,所以将其分为两篇博客.本篇主要介绍了离散傅里叶变换 DFT 的内容,以及相关的总结.对于前置内容,包括傅里叶级数 FS,连续时间傅里叶变换 C ...
最新文章
- 登录mysql报错2059,navicat连接mysql报错2059如何解决
- 导出目录结构_Selenium Webdriver 3.X源码分析之核心目录结构
- 据说这份高考卷,只有程序员能得满分!
- 信息学奥赛一本通(2040:【例5.7】筛选法找质数)
- LookupError: unknown encoding: utf-8
- mysql 字段唯一效率_对于同一个字段使用唯一性索引和非唯一性索引,效率有区别吗???...
- java 单元测试 网络请求_Spring Boot 系列(二)单元测试网络请求
- 《the django book》part2 django的安装使用
- 前端实现拖动滑块完成验证
- 计算机文件夹中看不到桌面图标,电脑文件夹内不显示图标
- mcc460_最新MCC和MNC国家代码运营商对应表
- C#(Csharp)基础教程(上)(菜鸟教程笔记)
- 华为服务器euler系统,华为euler服务器
- 爬取(明星网)明星面部数据
- 电源的降压(Buck)与升压(Boost)模式
- 数据结构 - 二叉树的遍历
- USTC高级软件工程课程学习总结和心得
- <script type=“text/html“>是怎么回事?
- 游戏建模中3DMax的那些神技巧
- 0201 设置/修改元素内容和属性