psd ----> spectrum psd?
12 次查看(过去 30 天)
显示 更早的评论
Hi
I try to run this prog.
du calc. the specific loudness based on the zwicker model.
Whenn I run the prog. i get this back:
"Undefined function 'psd' for input arguments of type 'double'"
the Note in the Editor says
"The function PSD is deprecated. Use SPECTRUM.PSD instead.
What to do?
0 个评论
回答(5 个)
Honglei Chen
2012-2-29
You need to replace psd call with corresponding spectrum.psd code. Here is an example showing how to use spectrum.psd to compute PSD of a signal
Fs = 1000;
t = 0:1/Fs:.3;
x=cos(2*pi*t*200)+randn(size(t));
Hs=spectrum.periodogram;
psd(Hs,x,'Fs',Fs)
0 个评论
Honglei Chen
2012-2-29
You will replace line
[Yxx,f] = psd(y,NFFT,fs,NFFT,NOVERLAP);
with
hspec = spectrum.welch('OverlapPercent',0,'SegmentLength',NFFT);
hpsd = psd(hspec,y,'NFFT',NFFT,'Fs',fs);
Yxx = hpsd.Data;
f = hpsd.Frequencies
Alternatively, you may also use
[Yxx,f] = pwelch(y,NFFT,0,NFFT,fs);
0 个评论
Wayne King
2012-3-2
Hi Redkap, Honglei has been giving you very good advice here. What version of MATLAB are you using and do you have the Signal Processing Toolbox?
If you enter
>>which spectrum.welch
What do you get returned?
Something is wrong if you cannot execute this line:
plot(psd(spectrum.welch,randn(1e3,1)))
Can you copy and paste the above line into your workspace and see what happens?
Also, please tell us your version and make sure:
license('test','signal_toolbox')
returns a 1.
By the way, in:
hspec = spectrum.welch('OverlapPercent',0,'SegmentLength',NFFT);
hpsd = psd(hspec,y,'NFFT',NFFT,'Fs',fs);
Yxx = hpsd.Data;
f = hpsd.Frequencies;
Yxx=2*Yxx/NFFT; %%Scale to get the power spectrum correct
Yxx=Yxx';
You do not need to scale the output of the spectrum objects. That output is already properly scaled to be the PSD estimate so just use hpsd.Data and hpsd.Frequencies
1 个评论
Elisabeth Debusschere
2012-3-26
I have the same problem, and checked the plot(psd(spectrum.welch,randn(1e3,1))) and the license
This is what I get
hspec = spectrum.welch('OverlapPercent',0,'SegmentLength',NFFT);
Error using spectrum.welch (line 52)
what is wrong?
Too many input arguments.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!