我想要找到fft的cos(2_pi_10*n)。我编写了这段代码,但它有两个问题。首先,估计的频率不是10赫兹。第二,从理论上我认为频率的振幅应该是π。我发现振幅与fft的大小有关。我很感谢你的帮助。
n = 0:1:9;
x = cos(2*pi*10*n);
xdft = fft(x);
w=0:2*pi/(10):2*pi-2*pi/(10);
plot(abs(xdft) )发布于 2021-03-13 09:23:17
你一定忽略了这样一个事实:既然你的信号的频率是10赫兹,你必须在不少于20赫兹的频率下取样,以免在光谱分析中出现别名:
for i=1:4
if i==1
fs=1; %this is the value originally considered in OP's code
elseif i==2
fs=8;
elseif i==3
fs=20;
else
fs=40;
end
n=0:(1/fs):9;
x=cos(2*pi*10*n);
xdft=fft(x);
f=(0:(numel(x)-1))/numel(x)*fs;
subplot(4,1,i);
stem(f,abs(xdft),'.-');
xlabel('Frequency [Hz]');
endhttps://stackoverflow.com/questions/66610875
复制相似问题