1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
pspect Scilab Group Scilab Function pspect
NAME
pspect - cross-spectral estimate between 2 series
CALLING SEQUENCE
[sm,cwp]=pspect(sec_step,sec_leng,wtype,x,y,wpar)
PARAMETERS
x : data if vector, amount of input data if scalar
y : data if vector, amount of input data if scalar
sec_step
: offset of each data window
sec_leng
: length of each data window
wtype
: window type (re,tr,hm,hn,kr,ch)
wpar : optional parameters for wtype='kr', wpar>0 for wtype='ch',
0<wpar(1)<.5, wpar(2)>0
sm : power spectral estimate in the interval [0,1]
cwp : unspecified Chebyshev window parameter
DESCRIPTION
Cross-spectral estimate between x and y if both are given and
auto-spectral estimate of x otherwise. Spectral estimate obtained using
the modified periodogram method.
EXAMPLE
rand('normal');rand('seed',0);
x=rand(1:1024-33+1);
//make low-pass filter with eqfir
nf=33;bedge=[0 .1;.125 .5];des=[1 0];wate=[1 1];
h=eqfir(nf,bedge,des,wate);
//filter white data to obtain colored data
h1=[h 0*ones(1:maxi(size(x))-1)];
x1=[x 0*ones(1:maxi(size(h))-1)];
hf=fft(h1,-1); xf=fft(x1,-1);yf=hf.*xf;y=real(fft(yf,1));
//plot magnitude of filter
//h2=[h 0*ones(1:968)];hf2=fft(h2,-1);hf2=real(hf2.*conj(hf2));
//hsize=maxi(size(hf2));fr=(1:hsize)/hsize;plot(fr,log(hf2));
//pspect example
sm=pspect(100,200,'tr',y);smsize=maxi(size(sm));fr=(1:smsize)/smsize;
plot(fr,log(sm));
rand('unif');
SEE ALSO
cspect
AUTHOR
C. B.
REFERENCE
Digital Signal Processing by Oppenheim and Schafer
|