dft的matlab
时间: 2024-01-07 14:22:40 浏览: 83
DFT的matlab源代码-Project-1:专案1
以下是一个使用dft算法实现的Matlab程序:
```matlab
N = 12;
n = 0:N-1;
k = 0:N-1;
xn = cos(n*pi/6);
subplot(3,1,1);
stem(n, xn);
title('cos(n*pi/6)');
W = exp(-j*2*pi/N);
kn = n'*k;
Xk = xn*(W.^kn);
subplot(3,1,2);
stem(n, Xk);
title('N=12');
N = 100;
n = 0:N-1;
k = 0:N-1;
xn = cos(n*pi/6);
xn = [xn(1:1:12), zeros(1, N-12)];
W = exp(-j*2*pi/N);
kn = n'*k;
Xk = xn*(W.^kn);
subplot(3,1,3);
stem(n, Xk);
title('补零到N=100');
```
这个程序使用了dft的定义公式,其中WN=exp(-j2pi/N)。首先,我们生成一个长度为12的序列`xn`,然后计算其dft并绘制结果。接下来,我们将序列长度补零到100,并再次计算dft并绘制结果。补零后,实际上是对DFT结果进行了插值,克服了栅栏效应,使谱外观更加平滑。
阅读全文