实验用MATLAB计算傅里叶变换
实验二 用MATLAB计算傅立叶变换
(2课时)
实验目的
1、掌握用MATLAB计算DTFT及系统频率响应的方法。
2、掌握用MATLAB计算DFT和IDFT的方法。
3、掌握用DFT计算圆周卷积和线性卷积的方法。
实验设备
计算机一台,装有MATLAB软件。
实验原理和基本操作
1.用MATLAB计算DTFT
对于序列x(n),其离散时间傅立叶变换(DTFT)定义为:
(1)
序列的傅立叶变换(DTFT)在频域是连续的,并且以=2π为周期。因此只需要知道的一个周期,即=[0,2π],或[-π,π]。就可以分析序列的频谱。
用MATLAB计算DTFT,必须在-π≤≤π范围内,把用很密的、长度很长的向量来近似,该向量中各个值可用下式表示:
w=k*dw=k* (2)
其中:d= 称为频率分辨率。它表示把数字频率的范围2π均分成K份后,每一份的大小,k是表示频率序数的整数向量,简称为频序向量,它的取值可以有几种方法:通常在DTFT中,频率取-π≤
k
如果K为奇数,则取
k
可以为奇偶两种情况综合出一个共同的确定频序向量k的公式;
k= : (3)
上式中表示向下取整。
在MATLAB中的向下取整函数为floor,floor(x)的作用是把x向下(向-方向)取整,所以与(3)式等价的MATLAB语句为
k (4)
给定了输入序列(包括序列x及其位置向量n),又设定了频率分辨率d及频序向量k,则DTFT的计算式(1)可以用一个向量与矩阵相乘的运算来实现。
(5)
如果频率向量表为=[,,……,]=k*d,而序列的位置向量为nx=[n1:nN],则(5)式中的矩阵的指数部分可以写成-j*nT*,用MATLAB语句表达时,把代以w,转置符号nT换成M