[討論] 脈衝訊號用matlab作FFT頻譜分析已回收
我想用脈衝訊號半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
10/22 01:12, 1F
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章