summaryrefslogtreecommitdiff
path: root/macros/periodogram.sci
diff options
context:
space:
mode:
Diffstat (limited to 'macros/periodogram.sci')
-rwxr-xr-xmacros/periodogram.sci46
1 files changed, 36 insertions, 10 deletions
diff --git a/macros/periodogram.sci b/macros/periodogram.sci
index 33e15af..ca8995e 100755
--- a/macros/periodogram.sci
+++ b/macros/periodogram.sci
@@ -1,20 +1,46 @@
function [d,n]=periodogram(a,b,c,d,e)
+//Return the periodogram (Power Spectral Density) of X
+//Calling Sequence
+// [PXX, W] = periodogram (X)
+// [PXX, W] = periodogram (X, WIN)
+// [PXX, W] = periodogram (X, WIN, NFFT)
+// [PXX, W] = periodogram (X, WIN, NFFT, FS)
+// [PXX, W] = periodogram (..., "RANGE")
+//Parameters
+// X:data vector. If X is real-valued a one-sided spectrum is estimated. If X is complex-valued, or "RANGE" specifies "twosided", the full spectrum is estimated.
+//WIN: window weight data. If window is empty or unspecified a default rectangular window is used. Otherwise, the window is applied to the signal ('X .* WIN') before computing th periodogram. The window data must be a vector of the same length as X.
+//NFFT:number of frequency bins. The default is 256 or the next higher power of 2 greater than the length of X ('max (256,2.^nextpow2 (length (x)))'). If NFFT is greater than the length of the input then X will be zero-padded to the length of NFFT.
+//FS:sampling rate. The default is 1.
+//RANGE:range of spectrum. "onesided" computes spectrum from [0..nfft/2+1]."twosided" computes spectrum from [0..nfft-1].
+//Description
+//The optional second output W are the normalized angular frequencies. For a one-sided calculation W is in the range [0, pi]. If NFFT is even and [0, pi) if NFFT is odd. Similarly, for a two-sided calculation W is in the range [0, 2*pi] or [0, 2*pi)depending on NFFT.
+//
+//If a sampling frequency is specified, FS, then the output frequencies F will be in the range [0, FS/2] or [0, FS/2) for one-sided calculations. For two-sided calculations the range will be [0, FS).
+//
+//When called with no outputs the periodogram is immediately plotted in the current figure window.
funcprot(0);
- [nargout,nargin]=argn();
- select nargin
+ lhs= argn(1);
+ rhs= argn(2);
+ if(rhs<1 | rhs>5)
+ error("Wrong number of input arguments");
+ end
+ if(lhs>2 | lhs< 2)
+ error("Wrong number of output arguments");
+ end
+ select(rhs)
case 1 then
- [d,n]=callOctave('periodogram',a);
+ [d,n]= callOctave('periodogram',a);
case 2 then
- [d,n]=callOctave('periodogram',a,b);
+ [d,n]= callOctave('periodogram',a,b);
+
case 3 then
- [d,n]=callOctave('periodogram',a,b,c);
+ [d,n]= callOctave('periodogram',a,b,c);
+
case 4 then
- [d,n]=callOctave('periodogram',a,b,c,d);
+ [d,n]= callOctave('periodogram',a,b,c,d);
+
case 5 then
- [d,n]=callOctave('periodogram',a,b,c,d,e);
- else
- error("Incorrect no. of Input Arguments");
+ [d,n]= callOctave('periodogram',a,b,c,d,e);
end
-
endfunction