我有一個audiosignal(130k樣本值),並想用相同數量的樣本創建其PSD。 (必須做一些自適應預/去加重)Matlab - 與信號長度相同的PSD?
所以我的問題是:這是可能的,如果是的話,怎麼樣?
我試圖serveral的方式,但都以失敗告終.. 第一次嘗試(信號的使用自相關和事後傅立葉變換,這是我敢肯定,唯一的辦法就應該從理論上工作):
[y,fs]=audioread('test.wav');
N=length(y);
r=xcorr(y);
fft(r,length(y))
另一個方式將使用:
[pyy,f]=pwelch(y,[],[],[],fs)
但在這種情況下pyy的長度是不正確的。 而且最後我發現這一點:
N=length(y);
bin_vals=0:N-1;
fax_Hz= bin_vals*fs/N;
N_2=ceil(N/2);
pyy=fft(y).*conj(fft(y));
但是,如果我理解正確的代碼它給我y和不功率譜密度的功率譜。
我對此感到非常沮喪,並對任何形式的幫助表示感謝!
克勞斯,我的回答對你有幫助嗎? –