资源简介
用奇异值分解(SVD)的方法进行噪声去除
代码片段和文件信息
clear all;
%%调用含噪文件leleccum;
load leleccum;
x=leleccum;
N=length(x)-320;
L=10;
M=N/L;
subplot(211);plot(x(1:N));
xlabel(‘n‘);title(‘原始信号‘);
%%形成数据矩阵A行数为L列数为M
A=zeros(LM);
for i=1:L
for j=1:M
A(ij)=x(M*(i-1)+j);
end
end
%%对数据矩阵A作SVD
[U S V]=svd(A);
sigma=diag(S(1:min(LM)1:min(LM)));
subplot(212);stem(sigma‘filling‘);
xlabel(‘k‘);title(‘原始信号的奇异值‘);
%%SVD滤波
%(一)阈值设为奇异值的平均值
s1=sigma;
S1=S;
for i=1:min(LM)
if s1(i) s1(i)=0;
end
end
S1(1:min(LM)1:min(LM))=diag(s1);
A1=U*S1*V‘;
for i=1:L
for j=1:M
x1(M*(i-1)+j)=A1(ij);
end
end
figure;subplot(231);plot(x1);
xlabel(‘n‘);title(‘方
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1441 2008-12-31 21:36 svd_nosie_removing\svd_nosie_removing.m
目录 0 2010-04-22 18:59 svd_nosie_removing
----------- --------- ---------- ----- ----
1441 2
评论
共有 条评论