psd ----> spectrum psd?
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (5)
Honglei Chen
am 29 Feb. 2012
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 Kommentare
Honglei Chen
am 29 Feb. 2012
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 Kommentare
Wayne King
am 2 Mär. 2012
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 Kommentar
Elisabeth Debusschere
am 26 Mär. 2012
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.
Siehe auch
Kategorien
Mehr zu Introduction to Installation and Licensing finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!