① matlab 做音頻文件(WAV格式)的頻譜圖程序 以及做時域波形圖的程序
朋友,年代太久遠了。在工地搬磚的生活容易使人健忘。
做完fft變換的數值是不能直接畫圖的,因為那些都是向量。橫坐標是頻率,縱坐標是向量,那是沒有辦法畫出來的。所以一般要畫絕對值。abs(y)。年輕的時候,我喜歡畫功率譜:y.*
conj(y)。兩者會有點區別。
pyy
=
y.*
conj(y)
/
siglength;
信號點乘它的共軛,求功率。除以信號長度,是為了歸一化嗎?什麼叫做歸一化?我老了。。。。
halflength=floor(siglength/2);
fft以後是對稱的,所以畫圖只要畫一半就可以了。
f=fs*(0:halflength)/siglength;
采樣頻率是fs,所以最後畫出的頻域圖是從0赫茲-fs赫茲。其實吧,這個信號從0-fs/2一段,從fs/2-fs一段是對稱的,所以畫一般就行。因為只畫半,所以只從最後橫軸一半長度即可。
---------------------------------我是分割線-----------------------
請教傅立葉分析中pyy=y.*conj(y)/512;和nfft
=
2^nextpow2(l);
的意思y=........%一段受干擾的信號
y=fft(y,512);
pyy=y.*conj(y)/512;
f=1000*(0:256)/512;
plot(f,pyy(1:257))
想知道
pyy=y.*conj(y)/512;
f=1000*(0:256)/512;
這兩句話什麼意思
另外看到matlab
fft幫助里的傅立葉分析如下:
nfft
=
2^nextpow2(l);
y
=
fft(y,nfft)/l;
f
=
fs/2*linspace(0,1,nfft/2);
plot(f,2*abs(y(1:nfft/2)))
這二個方法有什麼區別呀,nextpow2是什麼意思呢?
我是初學者,自學的,還請各位高手請教~
有熱心的高手能把每句話詳細的解釋下嗎?
謝謝~
---------------------------你tm才是分割線--------------------------
nfft
=
2^nextpow2(l);
%
取2的整數次冪
x
=
fft(x,nfft)/l;
%
求fft後的真實幅值
f
=
fs/2*linspace(0,1,nfft/2+1);
plot(f,2*abs(x(1:nfft/2+1)))
%
畫單邊頻譜值