Multiply and shift ?

I would like to have a code that can generate the maltiplication for x after shifting them many time
x=[1 2 4 1 3 4 5 1 3]
I would like to have a loop that can generate the autocorrlation for x with itself.
to illustrate;
x*x
R(1)=sum([1 2 4 1 3 4 5 1 3]*[1 2 4 1 3 4 5 1 3])/Length(x)
R(2)=sum([ 2 4 1 3 4 5 1 3]*[1 2 4 1 3 4 5 1 ])/Length(x-1)
and so forth until the R(N) computed

回答 (1 件)

Catalytic
Catalytic 2019 年 3 月 29 日
編集済み: Catalytic 2019 年 3 月 29 日

1 投票

R = ifftshift(xcorr(x,'unbiased'))

3 件のコメント

Matt J
Matt J 2019 年 3 月 29 日
Or, if you don't have the Signal Processing ToolBox,
e=ones(size(x));
R=ifftshift( conv(x,flip(x))./conv(e,e) );
Willim
Willim 2019 年 3 月 30 日
The results for the both codes you provide are not same
Catalytic
Catalytic 2019 年 3 月 30 日
編集済み: Catalytic 2019 年 3 月 30 日
The differences I see are super-small.
x=[1 2 4 1 3 4 5 1 3];
e=ones(size(x));
R1 = ifftshift(xcorr(x,'unbiased'));
R2=ifftshift( conv(x,flip(x))./conv(e,e) );
>> difference=max(abs((R1-R2)))
difference =
3.5527e-15

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

質問済み:

2019 年 3 月 29 日

編集済み:

2019 年 3 月 30 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by