Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2011-11-25, 12:21   #1
高晓洁
初级会员
 
注册日期: 2011-10-26
帖子: 1
声望力: 0
高晓洁 正向着好的方向发展
默认 基于MP的信号降噪程序,高人帮忙看一下

信号:
A=2;
f_signal=20;
fs=1000;
N=64;
snr=10;
t=(0:N-1)/fs;
x=A*cos(2*pi*f_signal*t);
signal=awgn(x,snr,'measured');


主程序:
tic
xinhao1;


%%%%%%%%%%%%%%%%%%%%%%%分解参数的设定%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
interative_number=30;
[a,N]=size(signal);
signal_reconstruct=zeros(1,N);
signal_r=signal;
a_base=1/2;
j_min=0;
j_max=log2(N);
u_base=1/2;
p_min=0;
v_base=pi;
k_min=0;
w_base=pi/6;
i_min=0;
i_max=12;
M=52*(N*log2(N)+N-1);

%%%%%%%%%%%%%分解的程序%%%%%%%%
for n=1:interative_number
[proj,scale,translation,freq,phase]=select_best_gabor(signal_r,N,a_base,j_min,j_max,u_base,p_min,v_base,k_min,w_base,i_min,i_max);%用一个子程序来实现最佳原子参数的选取
t=0:N-1;
t=(t-translation)/scale;
g=(1/sqrt(scale))*exp(-pi*t.*t).*cos(freq*t+phase);%原子
g=g/sqrt(sum(g.*g));%归一化最佳原子
signal_reconstruct=signal_reconstruct+proj*g;%重建信号
signal_r=signal_r-proj*g;%残余信号
figure(1)
subplot(5,1,1);plot(x);
subplot(5,1,2);plot(signal);
subplot(5,1,3);plot(g);
subplot(5,1,4);plot(signal_reconstruct);
subplot(5,1,5);plot(signal_r);
%output('Press a key')
%pause
end
mse=sqrt(sum((signal-signal_reconstruct).^2)/N)
toc


子函数:
function [proj,scale,translation,freq,phase]=select_best_gabor(signal_r,N,a_base,j_min,j_max,u_base,p_min,v_base,k_min,w_base,i_min,i_max);
proj_trans=0;
proj=0;
size_dic=0;
for j=j_min:j_max
for p=p_min:N*2^(-j+1)
for k=k_min:2^(j+1)
for i=i_min:i_max
size_dic=size_dic+1;
s=a_base^j;
u=p*s*u_base;
v=k*(1/s)*v_base;
w=i*u_base;
t=0:N-1;
t=(t-u)/s;

g=(1/sqrt(s))*exp(-pi*t.*t).*cos(v*t+w);
g=g/sqrt(sum(g.*g));
proj_trans=sum(signal_r.*g);%做内积

if abs(proj_trans)>abs(proj) %选取内积的模最大的原子的参数做为最佳原子的参数
proj=proj_trans;
scale=s;
translation=u;
freq=v;
phase=w;
end
end
end
end
end



程序能够运行,但就是结果并没有达到降噪的结果,不知道问题出在哪 里,请大家帮忙看一下,很重要的程序,帮帮忙了
高晓洁 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 08:58


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.