自己相関の大きさに対するエイリアシングの影響は何ですか?


8

自己相関の大きさに対するエイリアシングの影響について質問があります。MATLABでのシミュレーションから、自己相関の大きさをとるときに、エイリアシングの影響やアンチエイリアスフィルターの必要性がわかりません。つまり、データをアンダーサンプリングして、自己相関を取ることができます。「完全な自己相関関数から導き出されたスペクトルモーメント推定に対するエイリアシングの影響」という論文があり、これは私が主張するようなものです。私が間違いを犯した場合、誰かに知らせていただけますか?

回答:


4

ノイズが存在する場合、自己相関を計算する前に間引きすることは、完全なデータセットを使用して自己相関を計算することよりも劣ります。対象の信号がホワイトノイズに埋め込まれていると仮定します。ベクトルは、離散ランダムプロセスからのサンプルで構成されます。ベクトルx [ n ]の自己相関関数は次のとおりです。x[n],n=0,1,...,N1x[n]

Ax[k]=1Nki=0N1kx[i]x[i+k]

つまり、は自己相関計算に使用されるラグです。あなたの提案されたシナリオでは、因子によって自己相関関数の出力をデシメートさD(すなわちだけ遅れのために関数を計算している0 D 2 D )との自己相関関数に、その結果を比較X [ N ]同じ係数Dで間引き。ましょうxはD [ N ]間引き配列です。その自己相関関数は次のとおりです。kD0,D,2D,...x[n]Dxd[n]

Axd[k]=DNki=0N1kDx[iD]x[(i+k)D]

(ここでは簡単にするために、は上記の方程式のNの因数であると想定しています)DN

お問い合わせは次のように書くことができます。

Ax[kD]?Axd[k]

1NkDi=0N1kDx[i]x[i+kD]?DNki=0N1kDx[iD]x[(i+k)D]

これを定性的に見ると、左側の総和は右側の総和よりも項数が多くなっています。場合二次固定され、その後、各和の各項の期待値は同じです。同じ期待値を持つ複数のサンプルを平均化することにより、信号対雑音比が向上します。少し言い方を変えて、各合計の項を新しいランダムプロセスからのサンプルと考えることができます。x[n]

y[n]=x[n]x[n+kD]

x[n]y[n]kDy[n]

したがって、信号にホワイトノイズが存在する場合(これはよくあることです)、より大きなサンプルサイズを計算に使用することで、基礎となる信号の2次の統計をより正確に推定できます(これは直感的に聞こえる場合があります)明らか)。2つのアプローチのコンテキストでは、これは、自己相関計算で完全な非間引きされた信号を使用し、その後間引きする(つまり、特定のラグ値の結果のみを計算する)ことによって実現されます。


どうもありがとうございました。あなたは正しいですが、私の信号の場合、それは主要な問題ではありません。私の問題は主にエイリアシングの影響です。完全な非デシメート信号の方が良い場合があると説明しましたが、エイリアシングの影響を減らす場合は、サンプル数の2(3)倍など、さらに多くのサンプルを取得する必要があり、実際には複雑さが増します。
ホセイン'19

2

私には少し奇妙に思えます。以下のMatlabスクリプトは、「ダウンサンプリングされた自己相関」と「ダウンサンプリングされた信号の自己相関」を比較します。デュアル正弦波の場合、これは実際にはかなり近くなりますが(約-50dBの相対誤差)、ホワイトノイズの場合、これは単に間違っています(相対誤差> +6 dB)。いくつかの計算上の利点があるかもしれませんが、ダウンサインされた自己相関がデュアル正弦波の場合でもどれほど有用であるかは私には明らかではありません。スペクトルのピークはまだ間違った場所に表示されます。

% script to check whether autocorrelation is immune to aliasing
% create two sine waves at 18k and 21k (assuming sample rate of 444.1k) 
n = 8192;
t = (0:n-1)'/44100;
x = sin(2*pi*t*21000)+sin(2*pi*t*18000);
% calculate autocorrelation of original signal and one that's downsampled
% by 4 and thus heavily aliased
y = xcorr(x,x);
y2 = xcorr(x(1:4:end),x(1:4:end));
d = y(4:4:end)-4*y2;
% calculate the error in dB
err = 10*log10(sum(d.^2)./sum(y2.^2));
fprintf('Dual sine wave relative error = %6.2f dB\n',err);

%% try the same thing for white noise
x = 2*rand(n,1)-1;
y = xcorr(x,x);
y2 = xcorr(x(1:4:end),x(1:4:end));
d = y(4:4:end)-4*y2;
err = 10*log10(sum(d.^2)./sum(y2.^2));
fprintf('White noise relative error = %6.2f dB\n',err);

どうもありがとうございましたが、自己相関のピークの場所は私にとって重要であるため、このコードが私の問題を示しているかどうかはわかりません。しかし、スペクトラムが変化する間に指摘するように、我々は紙が言うように時間ドメインの小さな変化に直面します。
ホセイン、

0

特定のタイプの入力の場合、自己相関の大きさに対する周波数エイリアシングの影響は無視できる場合があります。しかし、これは一般的には当てはまらないと思います。

たとえば、帯域制限された入力またはホワイトノイズの場合、アンダーサンプリングは自己相関の形状に影響しません(ただし、予測的な方法でスケーリングが変更される可能性があります)。ホワイトノイズの自己相関はデルタであり、ダウンサンプリングされた場合、デルタのままです。

ここで、パワースペクトルは、フーリエ変換による自己相関に関連しています。したがって、主張が真実である場合、周波数エイリアシングが入力の周波数内容を変更しないと主張することもできるようです。そして、これは真実ではありません。ただし、例外がある場合があります(特別な場合)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.