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/8);
X3k=dft(x3n,N);
subplot(2,3,1);stem(n,x1n,'.');
title('序列x1(n)');
xlabel('k');ylabel('x1(n)');
subplot(2,3,2);stem(n,x2n,'.');
title('序列x2(n)');
xlabel('k');ylabel('x2(n)');
subplot(2,3,3);stem(n,x3n,'.');
title('序列x3(n)');
xlabel('k');ylabel('x3(n)');
subplot(2,3,4);stem(n,abs(X1k),'.');
title('16点DFT[x1(n)]');
xlabel('k');ylabel('|X1(k)|');
subplot(2,3,5);stem(n,abs(X2k),'.');
title('16点DFT[x2(n)]');
xlabel('k');ylabel('|X2(k)|');
subplot(2,3,6);stem(n,abs(X3k),'.');
title('15点DFT[x3(n)]');
xlabel('k');ylabel('|X3(k)|');
% 
% 定制开发需求:qq 1762016542

子函数

function Xk=dft(xn,N)
n=[0:1:N-1];
k=[0:1:N-1];
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN.^nk;
Xk=xn*WNnk;
 

结果

欢迎关注公众号:算法工程师的学习日志

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值