📄 cyclic_cross_periodogram.m
字号:
function [S,rho]=cyclic_cross_periodogram(x,y,N,a,g,L)% x时输入信号% N=64% a,g是窗函数% L是衰减系数,一般为N/4或1if ~exist('L') L=1;endlx=length(x);if (length(y)~=lx) error('Time series x and y must be same length')endn=0:floor((lx-N)/L);ln=length(n);a=feval(a,N)';g=feval(g,ln)';g=g/sum(g);a=a/sum(a);X=zeros(2*N+1,ln);Y=zeros(2*N+1,ln);Ts=1/N;for f=-N:N xf=x.*exp(-j*2*pi*f*(0:lx-1)*Ts); yf=y.*exp(-j*2*pi*f*(0:lx-1)*Ts); for i=1:ln n_r=n(i)*L+(1:N); X(f+N+1,i)=sum(a.*xf(n_r)); Y(f+N+1,i)=conj(sum(a.*yf(n_r))); endendS=zeros(N+1,N+1);for alpha=-floor(N/2):floor(N/2) for f=-floor(N/2):floor(N/2) f1=f+alpha; f2=f-alpha; if ((abs(f1)<N/2)&(abs(f2)<N/2)) S(f+floor(N/2)+1,floor(N/2)+alpha+1)=sum(g.*X(f1+N+1,:).*Y(f2+N+1,:)); end endendS=abs(S);%谱相关系数rho=zeros(N,N);for f=-floor(N/2):floor(N/2)-1; for alpha=-floor(N/2):floor(N/2)-1; fplus=f+alpha; fminus=f-alpha; if ((abs(fplus)<N/2)&(abs(fminus)<N/2)) if (S(fplus+N/2+1,N/2+1)*S(fminus+N/2+1,N/2+1)~=0); rho(f+floor(N/2)+1,alpha+floor(N/2)+1)=abs(S(f+N/2+1,floor(N/2)+alpha+1))/sqrt(S(fplus+N/2+1,floor(N/2)+1)*S(fminus+N/2+1,floor(N/2)+1)); end end endend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -