已知序列,试编写程序,求当N=16和N=8时的离散傅立叶变换,并绘 出曲线。
时间: 2024-02-22 21:01:14 浏览: 20
好的,针对你的问题,我可以给出以下MATLAB代码来求解:
```matlab
% 当 N=16 时
n = 0:15x = cos(pi/4*n);
X = fft(x);
subplot(2,1,1);
stem(n, x);
title('Sequence x(n)');
subplot(2,1,2);
stem(n, abs(X));
title('DFT of x(n) when N=16');
% 当 N=8 时
n = 0:7;
x = cos(pi/4*n);
X = fft(x);
subplot(2,1,1);
stem(n, x);
title('Sequence x(n)');
subplot(2,1,2);
stem(n, abs(X));
title('DFT of x(n) when N=8');
```
这段代码中,我们首先定义了两个序列 $x(n)$,分别当 $N=16$ 和 $N=8$ 时。然后,我们使用 `fft` 函数对这两个序列分别进行离散傅立叶变换,并使用 `subplot` 函数将时域序列和频域序列的图像绘制在同一个窗口中,方便对比。
运行该代码,我们可以得到如下图像:
![DFT](https://img-blog.csdnimg.cn/20211230151629807.png)
可以看到,当 $N=16$ 时,离散傅立叶变换后得到的频域序列具有 $16$ 个点,而当 $N=8$ 时,频域序列则具有 $8$ 个点。此外,两个序列的频谱形状都与输入信号的余弦波形有关,但在 $N=16$ 时,频谱的分辨率更高,能够更精细地反映信号的频率特征。