MP 算法 matlab实现

简介:
+关注继续查看


同学委托写个MP算法,找了一堆资料都没找到好用的,全是OMP什么的,自己记下来以后自用

        MP算法的介绍这篇博客介绍的很清楚

        MP算法的关键就在于要归一化,matlab第一次用,搞了好久才搞定


function a=mp(y,phi,K,iware)
[~,N]=size(phi);
a = zeros(N,1);
for i = 1:N  %原子归一化
    phi(:,i) = phi(:,i)/norm(phi(:,i));
end
v =y; %初始残差
numIts = 0;
iware=2*iware;
while numIts<iware; %迭代计数
      numIts = numIts + 1;                               
      g=phi'*v; %计算内积
      [~,pos]=max(abs(g)); %选取最大的作为最匹配原子
      a(pos)=a(pos)+g(pos);  %记录位置
      v = v -g(pos)*phi(:,pos); %更新残差
      
end 
a=a/iware; 
end


目录
相关文章
|
1天前
|
算法
【MATLAB】MVMD信号分解+FFT+HHT组合算法
【MATLAB】MVMD信号分解+FFT+HHT组合算法
12 0
|
1天前
|
算法
基于图像形态学处理的路面裂缝检测算法matlab仿真
基于图像形态学处理的路面裂缝检测算法matlab仿真
|
2天前
|
机器学习/深度学习 算法 数据处理
【MATLAB】SSA+FFT+HHT组合算法
【MATLAB】SSA+FFT+HHT组合算法
12 0
|
2天前
|
算法 计算机视觉
【MATLAB 】 EMD信号分解+FFT傅里叶频谱变换组合算法
【MATLAB 】 EMD信号分解+FFT傅里叶频谱变换组合算法
18 0
|
2天前
|
算法 计算机视觉
【MATLAB 】 EEMD信号分解+FFT傅里叶频谱变换组合算法
【MATLAB 】 EEMD信号分解+FFT傅里叶频谱变换组合算法
25 0
|
2天前
|
算法 计算机视觉
【MATLAB】 CEEMD信号分解+FFT傅里叶频谱变换组合算法
【MATLAB】 CEEMD信号分解+FFT傅里叶频谱变换组合算法
20 0
|
2天前
|
算法 计算机视觉
【MATLAB】 CEEMDAN信号分解+FFT傅里叶频谱变换组合算法
【MATLAB】 CEEMDAN信号分解+FFT傅里叶频谱变换组合算法
17 0
|
2天前
|
算法 计算机视觉
【MATLAB】 ICEEMDAN信号分解+FFT傅里叶频谱变换组合算法
【MATLAB】 ICEEMDAN信号分解+FFT傅里叶频谱变换组合算法
15 0
|
2天前
|
编解码 算法 计算机视觉
【MATLAB】 小波分解信号分解+FFT傅里叶频谱变换组合算法
【MATLAB】 小波分解信号分解+FFT傅里叶频谱变换组合算法
18 0
|
2天前
|
算法 计算机视觉
【MATLAB 】VMD信号分解+FFT傅里叶频谱变换组合算法
【MATLAB 】VMD信号分解+FFT傅里叶频谱变换组合算法
14 0
相关产品
机器翻译
推荐文章
更多