声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3166|回复: 3

[经典算法] 局部投影算法 降噪

[复制链接]
发表于 2009-8-23 11:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
局部投影算法采用延时坐标将时间序列进行相重构,在高维的相空间上采用局部投影的方法将相空间分解成正交的子空间,
通过子空间中吸引子特性的不同来分离时序中的背景信号和弱特征信号分量。哪位研究过啊,帮帮忙,谢谢!
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-8-31 00:42 | 显示全部楼层
function [clutter,sig,neigh_lag,neigh_amount,neigh_num,epsilon]=StateSpaceProject(time_series,dim,delay,...
    project_space_vector,eps_min,eps_step,eps_max,neigh_min)
length=max(size(time_series));
Vnum=length-(dim-1)*delay;
for m=1:dim
    series_emb(m,1:Vnum)=time_series(1+(m-1)*delay:Vnum+(m-1)*delay);   
end
% %%%%%%%
for j=1:Vnum
    current_point=series_emb(:,j);
    % research neighbour matrix
    neigh_amount(j)=0;
    neigh_num(1,j)=0;
    for eps=eps_min:eps_step:eps_max
        epsilon(j)=eps;
        for k=1:Vnum
            comparing_point=series_emb(:,k);
            if k~=j&k~=neigh_num(:,j)
                distance=norm(current_point-comparing_point,2);
                if distance<eps&abs(k-j)>10 % 限定时间邻近点不被记为相空间邻点
                    neigh_amount(j)=neigh_amount(j)+1;
                    neighbour(:,neigh_amount(j),j)=comparing_point;
                    neigh_num(neigh_amount(j),j)=k;
                end
            end
        end
        if neigh_amount(j)>neigh_min
            neigh_lag(j)=1;
            break;
        else if epsilon(j)==eps_max
                neigh_lag(j)=0;
            end
        end
    end
      
    % caculate center vector
    center_vec=zeros(dim,1);
    for k=1:neigh_amount(j)
        center_vec=center_vec+neighbour(:,k,j);
    end
    center_vec=center_vec/neigh_amount(j);
    % construct matrix A
    for k=1:neigh_amount(j)
        if neighbour(:,k,j)==center_vec
            neighbour(:,k:neigh_amount(j)-1,j)=neighbour(:,k+1:neigh_amount(j),j);
        end
        matrix_A(:,k)=(neighbour(:,k,j)-center_vec)/norm(neighbour(:,k,j)-center_vec,2);
    end
    [u,s,v]=svd(matrix_A);
    clear v;
    ul(:,project_space_vector)=u(:,project_space_vector);
%     u(:,project_space_vector)=[];
    if neigh_lag(j)>=0
        % project to noise subspace
        separated_chaos=center_vec+ul*ul'*(current_point-center_vec);
        separated_sig=current_point-separated_chaos;
%         separated_sig1=u*u'*(current_point-center_vec);
    else
%         separated_sig=ul*ul'*(current_point-center_vec);
%         separated_chaos=current_point-separated_sig;
    end
    separated_clutter(:,j)=separated_chaos;
    separated_signal(:,j)=separated_sig;
%     separated_signal1(:,j)=separated_sig1;
end

temp=zeros(dim,length);
temp1=zeros(dim,length);
% temp2=zeros(dim,length);
%
for k=1:dim
    temp(k,1+(k-1)*delay:Vnum+(k-1)*delay)=separated_clutter(k,:);
    temp1(k,1+(k-1)*delay:Vnum+(k-1)*delay)=separated_signal(k,:);
%     temp2(k,1+(k-1)*delay:Vnum+(k-1)*delay)=separated_signal1(k,:);
end
%
for k=1:dim
    clutter((k-1)*delay+1:k*delay)=sum(temp(:,(k-1)*delay+1:k*delay),1)/k;
    sig((k-1)*delay+1:k*delay)=sum(temp1(:,(k-1)*delay+1:k*delay),1)/k;
%     sig1((k-1)*delay+1:k*delay)=sum(temp2(:,(k-1)*delay+1:k*delay),1)/k;
end
%
clutter(1+(dim-1)*delay:Vnum)=sum(temp(:,1+(dim-1)*delay:Vnum),1)/dim;
sig(1+(dim-1)*delay:Vnum)=sum(temp1(:,1+(dim-1)*delay:Vnum),1)/dim;
% sig1(1+(dim-1)*delay:Vnum)=sum(temp2(:,1+(dim-1)*delay:Vnum),1)/dim;
%
for k=1:dim
    kk=dim-k+1;
    clutter(length-kk*delay+1:length-(kk-1)*delay)=sum(temp(:,length-kk*delay+1:length-(kk-1)*delay),1)/kk;
    sig(length-kk*delay+1:length-(kk-1)*delay)=sum(temp1(:,length-kk*delay+1:length-(kk-1)*delay),1)/kk;
%     sig1(length-kk*delay+1:length-(kk-1)*delay)=sum(temp2(:,length-kk*delay+1:length-(kk-1)*delay),1)/kk;
end

这是我在网上找到的程序,但是不知道这个函数中变量的含义,比如[clutter,sig,neigh_lag,neigh_amount,neigh_num,epsilon]=StateSpaceProject(time_series,dim,delay,...
    project_space_vector,eps_min,eps_step,eps_max,neigh_min)
time_series是时间序列?dim是相关维?delay是延迟时间,project_space_vector??eps_min,eps_step,eps_max这些是说嵌入维??neigh_min?  clutter,sig,neigh_lag,neigh_amount,neigh_num,epsilon?
发表于 2009-8-31 11:43 | 显示全部楼层
能提取弱特征信号分量确实很有吸引力,有对这方面擅长的吗?请指点。
发表于 2010-1-4 16:47 | 显示全部楼层
期待指点,
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-29 05:08 , Processed in 0.063823 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表