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
R = ifftshift(xcorr(x,'unbiased'))

3 个评论

Or, if you don't have the Signal Processing ToolBox,
e=ones(size(x));
R=ifftshift( conv(x,flip(x))./conv(e,e) );
The results for the both codes you provide are not same
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 Exchange 中查找有关 Loops 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