如何用matlab求离散时间傅里叶变换

2024-11-01 00:14:53
有1个网友回答
网友(1):

我觉的有几个错误斗胡的地方需要修改:
因为N=12,所以只有12个数据。所以k=0:12.
所芹销芹以X也有12个数据。每一项都的重新计算。
正确代码如下:

clear;
n=0:11;
x=cos(n*pi/6);
k=0:11;
w=(pi/12)*k;
X = zeros(1,12);
for i=1:12
X(i)=sum(x.*(exp(-1i*n*i*2*pi/12)));
end

subplot(2,2,1);plot(w/pi,magX);grid;xlabel('');ylabel('模值 ');title('模值部分');subplot(2,2,2);plot(w/pi,angX);grid;xlabel('pi为单位');ylabel('弧度');title('相角部分');subplot(2,2,3);plot(w/pi,realX);grid;xlabel('');ylabel('实部');title('实部部分');subplot(2,2,4);plot(w/pi,imagX);grid;xlabel('pi为单位');ylabel('虚部嫌毕');title('虚部部分');