MATLAB实现离散信号的DTFT和DFT

一、实验目的
加深对离散信号的DTFT和DFT的及其相互关系的理解。
二、实验原理及方法
        在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我们可以使用离散Fouier变换(DFT)。这一变换不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现。
        DTFT和DFT的主要区别就是DFT在时域和频域都是离散的,它带来的最大好处就是适合于数值计算,适合于计算机处理,DTFT和DFT有许多相似的性质。
        利用MATLAB工程计算语言按要求编写程序算法,实现对有限长序列的离散时间傅立叶变换(DTFT)和离散傅立叶变换(DFT)的求解。
三、实验内容
1.     已知序列:
        x(n) = cos \frac{5pai}{16}  n,0 ≤ n ≤ 15
        1) x(n) 的 16 点和 32 点 DTFT,绘出 X (e ʲw) 幅度谱图形;

        2) x(n) 的 16 点和 32 点 DFT,绘出 X (k ) 幅度谱图形;
讨论对正弦信号抽样及DTFT 和 DFT 之间的相互关系,试说明实验产生的现象的原因。
2.     已知序列: x(n)={1,2,3,4,5,6,6,5,4,3,2,1}
        1) 计算 x(n) 的 DFT 为 X (k ) ,绘出它的幅度和相位图;

        2) 计算 x(n) 的 DTFT 为 X (e ʲw ) ,绘出它的幅度和相位图;

        3) 利用 hold 函数,比较并验证 X (k ) 是 X (e ʲw ) 的采样。
参考流程图:

 五、实验报告要求
1.简述实验原理及目的.
2.写出实验程序,绘制实验结果.
3.总结实验结论.

9.1:
for N=16:16:32
n=0:15;
x1=cos(5*n*pi/16);
n=0:N-1;k=n;
x=zeros(1,N);
x(find(n<=15))=x1;
y=x*exp(-j*2*pi/N).^(n'*k);
w=linspace(-2*pi,2*pi,500);
y1=x*exp(-j*n'*w);
figure;
subplot(3,1,1);stem(n,x,'.');ylabel('x(n)');
subplot(3,1,2);plot(w/pi,abs(y1));xlabel('X pi');ylabel('X(w)');
subplot(3,1,3);stem(k,abs(y),'.');ylabel('mag X(k)');
end
9.2:
n=0:11;
x=[1,2,3,4,5,6,6,5,4,3,2,1];
k=n;
N=length(n);
y=x*exp(-j*2*pi/N).^(n'*k);%DFT
w=linspace(-2*pi,2*pi,500);
y1=x*exp(-j*n'*w);%DTFT
figure;
subplot(4,1,1);stem(n,x,'.');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,1,3);plot(w/pi,abs(y1));xlabel('X pi');ylabel('X(jw)');
subplot(4,1,4);plot(w/pi,angle(y1));xlabel('X pi');ylabel('arg(jw)');
figure;%mag
stem(2*k/N,abs(y),'filled');
hold on;
plot(w/pi,abs(y1));xlabel('X pi');title('mag');
figure;%arg
stem(2*k/N,angle(y),'filled');
hold on;
plot(w/pi,angle(y1));xlabel('X pi');title('arg');

要使用MATLAB实现离散时间傅里叶变换(DTFT),可以直接使用离散信号的定义来计算。首先,给定一个离散信号 x(n),可以使用MATLAB中的fft函数来计算其离散傅里叶变换(DFT)。 要计算信号 x(n) 的DTFT,可以按照以下步骤进行操作: 1. 定义离散信号 x(n),可以使用MATLAB中的数组来表示。例如,对于给定的序列 x(n) = cos(n),可以在MATLAB中定义为: ``` n = 0:15; x = cos(n); ``` 2. 使用MATLAB中的fft函数对信号进行DFT计算。代码示例如下: ``` X = fft(x); ``` 这将计算离散信号 x(n) 的DFT,并将结果存储在变量 X 中。 3. 可以使用MATLAB中的abs函数计算 DFT 结果的幅度谱。例如,可以使用以下代码绘制 16 点和 32 点的幅度谱图形: ``` Fs = 16; % 采样频率 f = 0:Fs-1; % 频率范围 X16 = abs(X(1:Fs)); % 16点DTFT幅度谱 X32 = abs(X(1:32)); % 32点DTFT幅度谱 plot(f, X16); plot(f, X32); ``` 运行以上代码将绘制出16点和32点DTFT的幅度谱图形。 所以,以上是使用MATLAB实现离散时间傅里叶变换(DTFT)的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【 MATLAB 】用 MATLAB 实现离散时间傅里叶变换(DTFT)的两个案例分析](https://blog.csdn.net/Reborn_Lee/article/details/83378894)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [用matlab实现DTFTDFT](https://download.csdn.net/download/tjusuguannan/2984046)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [MATLAB实现离散信号DTFTDFT](https://blog.csdn.net/m0_52316372/article/details/125644546)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

timerring

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值