📄 dev_ls.asv
字号:
function [XX]=dev_ls(X,ws,pol,n)
%it can derive the sectral X 's derivative spectrum.
%input:X SPECTRUM
% ws windowsize (it is used to least square smooth)
% pol the order of polymer
% n the order of the derivative\
%output:XX the devrivative spectrum
%this is written by orient!!!!!!!
%date: 2007.4.8
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c=0.5*(ws-1);
b=c+1;
[lllll,mmmmm]=size(X);
M=[];
switch pol
case 2
poll=pol+1;
M=zeros(ws,poll);
for i=1:poll
for j=1:ws
M(j,i)=(j-b).^(i-1);
end
end
case 3
poll=pol+1;
M=zeros(ws,poll);
for i=1:poll
for j=1:ws
M(j,i)=(j-b).^(i-1);
end
end
% end
case 4
poll=pol+1;
M=zeros(ws,poll);
for i=1:poll
for j=1:ws
M(j,i)=(j-b).^(i-1);
end
end
case 5
poll=pol+1;
M=zeros(ws,poll);
for i=1:poll
for j=1:ws
M(j,i)=(j-b).^(i-1);
end
end
case 6
poll=pol+1;
M=zeros(ws,poll);
for i=1:poll
for j=1:ws
M(j,i)=(j-b).^(i-1);
end
end
end
end
a=inv(M'*M)*M';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%the derivative sectrum coeffcient
if n==1
aa=a(n+1,:)
end
if n==2
aa=a(n+1,:)*2*1
end
if n==3
aa=a(n+1,:)*3*2*1
end
if n==4
aa=a(n+1,:)*4*3*2*1;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[ll,mm]=size(X);
yy_dev=[];
%for jj=1:ll
% y=X(jj,:);
y=X(1,:);
% for ii=1:b-1
% y_dev(i)=0;
%end
%%the spectrum ones ahead
for ii=1:b-1
k=ii-b;
[row,col]=size(a);
yyy=zeros(row,col);
yyyy=0;
for j=1:row
yyy(j)=j*a(j,:)*k^(j-1);
end
for b=1:col
yyyy=yyyy+y(1:ws)* yyy(b,:)';
end
y_dev(ii)=yyyy
%yyy
%y_dev(ii)=y(1:ws)*yyy';
%y_dev(1)=y(1,2)-y(1,1);
%y_dev
end
%%the spectrum ones middle
for i=b:mm-c
y_dev(i)=y(i-c:i+c)*aa';
end
%%the spectrum ones tailed
%%the total deviative spectrum
yy_dev=[yy_dev;y_dev];
%end
yy_dev
subplot(2,1,1)
plot(yy_dev(1,:))
subplot(2,1,2)
plot(X(1,:))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -