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')

Figure contains 2 axes objects. Axes object 1 with title ECG Signal, xlabel Sample index, ylabel Amplitude contains an object of type line. Axes object 2 with title WHT Coefficients, xlabel Sequency index, ylabel Magnitude contains an object of type line.

プロットは、信号エネルギーのほとんどが約 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')

Figure contains an axes object. The axes object with xlabel Sample Index, ylabel ECG Signal Amplitude contains 2 objects of type line. These objects represent Original, Reconstructed.

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

参考

|