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

📄 dev_ls.m

📁 化学计量学中利用信息上进行分辨的程序!用到了pso优化算法!可以得到很真实的光谱!
💻 M
字号:
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);
            
            yyyy=yyyy+y(1:ws)* yyy(j,:)';
            
            
        end
        
        
       % y_dev(ii)=yyyy;
        %yyy
        %y_dev(ii)=y(1:ws)*yyy';
        %y_dev(1)=y(2)-y(1);
        %y_dev(2)=y(3)-y(2);
        %y_dev(3)=y(4)-y(3);
        %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
XX=yy_dev;
%yy_dev(:,1:5);
%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 + -