離散ウェーブレット変換→離散ウェーブレット逆変換の再構成がうまくいかない
Mostrar comentarios más antiguos
% %以下のコードの通りに11階の離散ウェーブレット変換を行った後に離散ウェーブレット逆変換を行い,再構成を行った結果,
% 元のデータとはかけ離れたものになってしまった.どこを直せばうまく再構成できるか教えてください.
%以下用いたコード
%10列のデータをインポート
M=table2array(Untitled);
for N=1:10
%1列ずつ参照を繰り返す
A=M(:,N);
B = A.';
wname='db1';
%11レベルの離散ウェーブレット変換
[c,l] = wavedec(B,11,wname);
ccd1=wrcoef('d',c,l,wname,1);
ccd2=wrcoef('d',c,l,wname,2);
ccd3=wrcoef('d',c,l,wname,3);
ccd4=wrcoef('d',c,l,wname,4);
ccd5=wrcoef('d',c,l,wname,5);
ccd6=wrcoef('d',c,l,wname,6);
ccd7=wrcoef('d',c,l,wname,7);
ccd8=wrcoef('d',c,l,wname,8);
ccd9=wrcoef('d',c,l,wname,9);
ccd10=wrcoef('d',c,l,wname,10);
cad11=wrcoef('a',c,l,wname,11);
Zall=ccd1+ccd2+ccd3+ccd4+ccd5+ccd6+ccd7+ccd8+ccd9+ccd10+cad11;
ZZZ(:,N)=Zall;
end
2 comentarios
Naoya
el 31 de Oct. de 2022
確認できるレベルでは、
ccd11=wrcoef('d',c,l,wname,11);
も完全な再構成には必要になると思いますがいかがでしたでしょうか?
参考までとなりますが、Level3までの例となりますが、以下にて完全な再構成を再現できます。
% 時系列信号のサンプルの読み込み
[X,T] = simpleseries_dataset;
X = seq2con(X);
X = X{1};
wname = 'db1';
[C,L] = wavedec(X,3,wname); % Lev.3 まで 離散ウェーブレット分解
a3 = wrcoef('a',C,L,wname,3); % Lev.3 Approximation成分
d3 = wrcoef('d',C,L,wname,3); % Lev.3 Detail 成分
d2 = wrcoef('d',C,L,wname,2); % Lev.2 Detail 成分
d1 = wrcoef('d',C,L,wname,1); % Lev.1 Detail 成分
X_rec = a3 + d3 + d2 + d1; % それぞれの分解成分を結合
figure(1),plot(X), hold on, plot(X_rec); % 元信号との比較
YUKI K
el 31 de Oct. de 2022
Respuestas (0)
Categorías
Más información sobre 信号解析 en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!