给我一个matlab的源代码计算xn = [1 2 3 3 2 1 ]的N(N>=6)点离散傅里叶变换X(k),画出幅频特性和相频特性曲线
时间: 2024-03-17 22:41:14 浏览: 81
以下是一个MATLAB源代码示例,用于计算xn = [1 2 3 3 2 1 ]的N(N>=6)点离散傅里叶变换X(k),并画出其幅频特性和相频特性曲线。
```matlab
% 定义变量和参数
xn = [1 2 3 3 2 1]; % 输入信号
N = length(xn); % 离散傅里叶变换的点数
k = 0:N-1; % 频率序列
w = 2*pi*k/N; % 角频率序列
% 计算离散傅里叶变换
X = fft(xn);
% 绘制幅频特性曲线
subplot(2,1,1);
plot(w, abs(X));
xlabel('角频率');
ylabel('幅度');
title('离散傅里叶变换幅频特性');
% 绘制相频特性曲线
subplot(2,1,2);
plot(w, angle(X));
xlabel('角频率');
ylabel('相位');
title('离散傅里叶变换相频特性');
```
在上面的代码中,我们首先定义了输入信号xn,以及离散傅里叶变换的点数N、频率序列k和角频率序列w。然后,我们使用fft函数计算了离散傅里叶变换X(k)。最后,我们使用subplot函数绘制了幅频特性曲线和相频特性曲线。
阅读全文