0342147 发表于 2009-1-11 12:11

新手问一个自相关的问题

刚刚接触MATLAB,想做出信号的自相关特性图.在本论坛找了找相关的帖子做出如下的程序
s=;
x=s(1:15);
=xcorr(x,'unbiased');
plot(b,a);
得到的结果是图1的样子,请问他的横轴和竖轴分别代表什么?

我想要的理想的图是如图2那样,横轴表示相关值、竖轴表示时间差,那么应该怎样修改。谢谢。

[ 本帖最后由 0342147 于 2009-1-11 12:16 编辑 ]

ch_j1985 发表于 2009-1-11 22:29

回复 楼主 0342147 的帖子

doc xcorr
看看帮助文件提供的例子

ChaChing 发表于 2009-1-11 23:20

回复 楼主 0342147 的帖子

看看有无用!?
http://forum.vibunion.com/thread-39455-1-1.html
还有x=s(1:15)好像多馀
直接 =xcorr(s,'unbiased'); 即可

[ 本帖最后由 ChaChing 于 2009-1-11 23:42 编辑 ]

wqsoooooooooo 发表于 2009-1-13 10:46

很简单的理解

对于自相关函数(以为来讲)::
自相关函数就是说我自身移动的距离为变量,以相关的程度来作为结果!!
就是说有两个向量A,B,,B是A的复制品!
当间距为0时:自相关量就为A.^2;
间距为1时:A ,B同时行向量加1;以0补齐,以A为基准A最后补0,B最前补0,再相乘;
…………
当间距为-1(负数时):A ,B相反,所以呢 计算出来的图像都是对称的。。

更详细的了解看看help就知道了!!
呵呵

0342147 发表于 2009-1-13 23:15

我按照大家的提示,作出了以下的程序
a=;
a(find(a==0))=-1;
for i=1:30;
b=circshift(a,);
c=circshift(b,);
d=b.*c;
e=sum(d);
y=e/15
plot(y)
end

但是数值上正确,图形上有点不对,还要请大家多多指教,谢谢

0342147 发表于 2009-1-14 22:51

原因找到了
a=;
a(find(a==0))=-1;
for i=1:30;
b=circshift(a,);
c=circshift(b,);
d=b.*c;
e=sum(d);
y(i)=e/15;
end
plot(y)

但是想要横轴的负方向也显示出来,应该怎样做呢?

ch_j1985 发表于 2009-1-14 23:30

回复 6楼 0342147 的帖子

横轴代表什么?有没有负值?

ChaChing 发表于 2009-1-15 09:20

回复 6楼 0342147 的帖子

不确定是否LZ要的
a=;
a(find(a==0))=-1; ii=0;
for i=1:30,
b=circshift(a,); c=circshift(b,); d=b.*c; e=sum(d);
ii=ii+1; y(ii)=e/15;
end
for i=0:30,
b=circshift(a,); c=circshift(b,); d=b.*c; e=sum(d);
ii=ii+1; y(ii)=e/15;
end
plot(y)

0342147 发表于 2009-1-15 13:51

主要是想取横轴在0时候的值,根据自相关函数的特性,0的时候应该为1,但是我做出来的显示不出0时的值.应该怎么办?

ch_j1985 发表于 2009-1-15 23:35

回复 9楼 0342147 的帖子

用find命令可否找到横轴在0时候的值?

0342147 发表于 2009-1-19 18:41

目前的解决办法只有
b=circshift(a,);
c=circshift(b,);
不知道有没有更好的方法
页: [1]
查看完整版本: 新手问一个自相关的问题