[討論] 脈衝訊號用matlab作FFT頻譜分析已回收

看板MATLAB作者 (享受飛翔)時間17年前 (2008/10/20 00:54), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
我想用脈衝訊號半sin波 使用matlab作FFT頻譜分析 我先用手算Fourier 積分算出半sin的ω VS X(ω)的關係 寫成程式如下 %---------手算後寫成程式部份--------------- w=0:0.1:50; i=sqrt(-1); T=1; F=abs(((-pi*T)./((w*T).^2-pi^2)).*(exp(-i*w*T)+1)); plot(w,F); title('頻率譜'); xlabel('頻率 Hz'); ylabel('f(ω)'); grid on; 另一個是直接寫一個訊號做FFT轉換 %---------input data部份-------------- Ts=0.1; fs=50; T=1; Tend=1; t=0:Ts:T; y=sin(t*pi/T); subplot(121); plot(t,y); title('input data') xlabel('時間 t') ylabel('magnitude') grid on; N=2^10; Q=fft(y,N)/length(y); Fx=fs/2*linspace(0,1,N/2); subplot(122); plot(Fx,2*abs(Q(1:N/2))); title('頻率譜'); xlabel('頻率 Hz'); ylabel('f(ω)'); grid on; 雖然兩個圖形很像 但是兩張圖在 ω的值 對應 X(ω)的值不同 我該怎麼調整程式部份讓他和手算出來數值雷同 大家應該了解我的意思吧 懇請賜教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.161.145.90

10/22 01:12, , 1F
順便問一下..N會影響頻譜的幅值嗎?
10/22 01:12, 1F
文章代碼(AID): #18-sPBZG (MATLAB)
文章代碼(AID): #18-sPBZG (MATLAB)