資源簡介
用奇異值分解(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
評論
共有 條評論