使用Matlab仿真DTFT - OneSinc

时间:2024-03-09 07:19:04

通过DTFT的仿真以深入了模拟信号频率w和数字频率Ω的关系。

1)编写完成DTFT的M—Function

 1 function [X,m]= DTFT(x,n,equ)
 2 %
 3 %功能:实现离散序列傅立叶变换X(ejw);
 4 %x,n为输入序列
 5 %w从0~π分成equ份
 6 %
 7 %并画出了幅频特性图
 8 
 9 
10 k = 0:equ; w = (pi/equ) * k;
11 X = x * (exp(-j*pi/equ)) .^(n\'*k);
12 
13 magX = abs(X); angX = angle(X);
14 realX = real(X); imagX = imag(X);
15 subplot(2,2,1); plot(k/equ,magX);grid
16 xlabel(\'frequency in pi units\'); title(\'Magnitude Part\')
17 subplot(2,2,3); plot(k/equ,angX/pi);grid
18 xlabel(\'frequency in pi units\'); title(\'Angle Part\')
19 subplot(2,2,2); plot(k/equ,realX);grid
20 xlabel(\'frequency in pi units\'); title(\'Real Part\')
21 subplot(2,2,4); plot(k/equ,imagX);grid
22 xlabel(\'frequency in pi units\'); title(\'Imaginary Part\')

将以上代码保存为DTFT.m,并设置matlab工作目录为保存文件的目录。

2)设连续信号为x(t)=sin(0.5t),则Ω=0.5,f=1/(4*pi).

设fs=6*f,则T=2*pi/3,则x(n)=x(t)|t=nT=sin(0.5*2*pi*n/3)

由于x(t)是一个单频信号,所以其幅度谱在>0处应该只有一个高突出,<0对称(原因是实信号的傅立叶变换共轭对称)。

突出的位置应为:w = 2*pi*f/fs = 1/3 * pi,以pi为单位的话,那么突出点在0.333

仿真输入代码:

>> n=-100:100;x=sin(0.5*2*pi*n/3);
>> DTFT(x,n,500);

仿真结果:

显而易见,突出部分在0.333,与理论计算想符合。

3)思考

首先,验证了 w = Ω/fs 的w与Ω的映射关系 。

其次,x(n)=x(t)|t=nT=sin(0.5*2*pi*n/3),离散信号表达式已经包含了采样频率信息,而有时候往往只从离散信号表达式并不能分辨出采样频率,这需要预先知道。