Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

ECG 信号のスペクトル解析および圧縮のためのウォルシュ・アダマール変換

心電図 (ECG) 信号を使用してウォルシュ・アダマール変換の機能を説明します。ECG 信号は、一般に非常に大きく、また後の解析および検索のために保存される必要があります。ウォルシュ・アダマール変換は、ストレージ容量の圧縮を行うことから、特にこういった利用に適しています。また、信号の再構成も高速です。

ECG 信号から開始します。ECG 信号をコピーして長い信号を作成し、ランダム ノイズをいくつか挿入します。

xe = ecg(512);
xr = repmat(xe,1,8);
x = xr + 0.1.*randn(1,length(xr));

高速ウォルシュ・アダマール変換を使用して信号を変換します。元の信号と変換後の信号をプロットします。

y = fwht(x);

subplot(2,1,1)
plot(x)
xlabel('Sample index')
ylabel('Amplitude')
title('ECG Signal')

subplot(2,1,2)
plot(abs(y))
xlabel('Sequency index')
ylabel('Magnitude')
title('WHT Coefficients')

プロットは、信号エネルギーのほとんどが約 1100 以下の低い交差数値にあることを示しています。4096 個の係数のうち最初の 1024 個のみを保存します。保存したこれらの係数のみによる信号の正確な再構成を試みます。

y(1025:length(x)) = 0;
xHat = ifwht(y);

figure
plot(x)
hold on
plot(xHat)
xlabel('Sample Index')
ylabel('ECG Signal Amplitude')
legend('Original','Reconstructed')

再現された信号は、元の信号に非常に近くなりますが、1/4 のサイズに圧縮されています。保存される係数が多くなるほど解像度の向上とノイズの増加とのトレードオフが生じ、他方、少なくなればピークのロスが生じる可能性があります。

参考

|