A. 如何用matlab實現對離散數據的快速傅里葉變換
1、雙擊matlab軟體圖標,打開matlab軟體,可以看到matlab軟體的界面。
7、最後查看繪制的原始數據點圖和三次樣條插值圖示,注意標題、橫坐標、縱坐標等。
B. 用MATLAB 如何實現傅里葉變換
首先產生矩形脈沖信號,可以使用rectpuls(t,w)函數產生一個幅值為1,以t=0為中心對稱,半寬度為w/2的矩形脈沖
然後傅里葉變換是用fft()命令的。如果要得到頻譜的話還要再處理一下,具體就不多說了,給個程序樣例:
t=-20:20;
w=10;
y=rectpuls(t,w);%矩形脈沖信號
yy=fft(y);
n=size(y);
n=n(2);
fy=abs(fft(y))/n*2;%頻譜
subplot(2,1,1)
plot(y);
subplot(2,1,2)
plot(fy);
挺粗糙的,最後得到的兩個圖分別是方波脈沖和頻譜圖。。
順帶一提:
1)三角波是tripuls(t,w);
2)矩形波也可以通過ones()和zeros生成一個信號矩陣
3)具體的函數使用和參數規則請參閱help「command」
4)其實這些用simulink做,裡面都有現成的模塊。這樣倒是很簡潔,但也不容易看懂
C. 怎樣用matlab實現門函數的傅里葉變換G(jw),。
如果你只對[-0.5,0.5]之間的信號進行采樣,那麼你採的將會是常數1,這樣做出的FFT應該是一個delta函數,也就是一個沖擊,所以你應該采包括外邊的值才能夠反映出信號的特性。
這樣結果沒有任何問題,問題是你采樣的值太少了,換句話說就是你采樣的信號反映不出這是個門函數的特性來。
matlab里邊是可以利用單邊函數表示門函數的。你可以跑一下下邊的程序,看一下門函數:
fx=heaviside(x+0.5)-heaviside(x-0.5);
ezplot(fx,[-1,1]);
而且matlab里邊還有對符號表達式做傅里葉變換的函數fourier(),用法如下:
FX=fourier(fx);
ezplot(FX,[-30,30]);
title('fourier transformation of fx')
而如果你非想用fft做,就必須加大采樣點數,尤其是門之外的部分,才能夠完整的描述信號。
D. 關於matlab的傅里葉變換的代碼求解釋
這段函數應該是一個做信號分析的GUI里的一個功能吧。
這段代碼是要干版啥?對應的權按鈕上有文字說明么。
感覺是觀察一段離散信號經過DFT後的功率譜密度。
y=fft(x,xlength);
這個是快速傅里葉變換,也就是對信號x做DFT
Pyy =y.*conj(y)/xlength;
這個是信號x的功率譜,也就是頻譜y的幅值平方除以信號長度
至於為什麼只看一半我就不知道了