[問題]新手請教FFT 已回收
小弟是MATLAB新手
目前的CODE是參考HELP內,想把z轉換成頻域並秀圖
z(i)=sin(x(i)*10)+0.1*sin(x(i)*30+0.2)+0.05*sin(x(i)*70+0.1)
+0.2*sin(x(i)*100+0.1);
在頻域中卻發現除了10.30.70.100以外的點也會有值(範例的其他點為零)
真的令我很困惑,是我的CODE寫錯?
可以幫我看一下嗎,謝謝大家~~
L=1.28;
delt=0.01;
Fs=1/delt;
N=128;
Fs=1/delt;
for i=1:128
x(i)=(i-1)/100;
z(i)=sin(x(i)*10)+0.1*sin(x(i)*30+0.2)+0.05*sin(x(i)*70+0.1)...
+0.2*sin(x(i)*100+0.1);
NFFT = 2^nextpow2(N);
end
Y = fft(z,NFFT)/NFFT;
f = 2*pi*Fs/2*linspace(0,1,NFFT/2);
xlabel('w');
ylabel('|Y(w)|');
hold on;
plot(f,2*abs(Y(1:NFFT/2)),'o-');
axis([0 125 0 1.5])
其實我已經有點不知道自己在算什麼了,f也是參考help硬湊出來的
我這張圖與範列有兩點不同
1.每個高峰值的X軸座標(10.30.70.100)卻不是在正確位置
而是有所偏離約少了0.04左右
2.除了高峰值的點,其他算出來的點應該要為零但是我算出來卻是有很小的值
因為沒修過相關課程,講出來的名詞有誤的話請多多包涵
感謝耐心看完的各位~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.116.138.34
推
11/27 21:19, , 1F
11/27 21:19, 1F
→
11/27 22:41, , 2F
11/27 22:41, 2F
推
11/28 09:43, , 3F
11/28 09:43, 3F
→
11/28 10:00, , 4F
11/28 10:00, 4F
→
11/28 10:00, , 5F
11/28 10:00, 5F
推
11/28 12:00, , 6F
11/28 12:00, 6F
→
11/29 03:35, , 7F
11/29 03:35, 7F