Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

2 つの指数シーケンス間の相互相関

2 つの 16 サンプルの指数シーケンス xa=0.84n および xb=0.92n (n0) の相互相関を計算してプロットします。

N = 16;
n = 0:N-1;

a = 0.84;
b = 0.92;

xa = a.^n;
xb = b.^n;

r = xcorr(xa,xb);

stem(-(N-1):(N-1),r)

c を分析的に判断して結果が正しいかを確認します。より高いサンプル レートを使用して連続状況をシミュレートします。n0 において 0<a,b<1 の場合、シーケンス xa(n)=an および xb(n)=bn の相互相関関数は次になります。

cab(n)=1-(ab)N-|n|1-ab×{an,n>0, 1,n=0b-n,n<0.

fs = 10;
nn = -(N-1):1/fs:(N-1);

cn = (1 - (a*b).^(N-abs(nn)))/(1 - a*b) .* ...
     (a.^nn.*(nn>0) + (nn==0) + b.^-(nn).*(nn<0));

シーケンスを同じ Figure にプロットします。

hold on
plot(nn,cn)

xlabel('Lag')
legend('xcorr','Analytic')

オペランドの順序を切り替えるとシーケンスが逆になることを確認します。

figure

stem(-(N-1):(N-1),xcorr(xb,xa))

hold on
stem(-(N-1):(N-1),fliplr(r),'--*')

xlabel('Lag')
legend('xcorr(x_b,x_a)','fliplr(xcorr(x_a,x_b))')

20 サンプルの指数シーケンス xc=0.77n を生成します。xa および xb の相互相関を計算し、プロットします。ラグを出力してプロットを簡単にします。xcorr では、短いシーケンスの最後にゼロを追加して長いシーケンスと長さを合わせます。

xc = 0.77.^(0:20-1);

[xca,la] = xcorr(xa,xc);
[xcb,lb] = xcorr(xb,xc);

figure

subplot(2,1,1)
stem(la,xca)
subplot(2,1,2)
stem(lb,xcb)
xlabel('Lag')

参考

関数