⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dev_ls.asv

📁 化学计量学中利用信息上进行分辨的程序!用到了pso优化算法!可以得到很真实的光谱!
💻 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 + -