新手问一个自相关的问题
刚刚接触MATLAB,想做出信号的自相关特性图.在本论坛找了找相关的帖子做出如下的程序s=;
x=s(1:15);
=xcorr(x,'unbiased');
plot(b,a);
得到的结果是图1的样子,请问他的横轴和竖轴分别代表什么?
我想要的理想的图是如图2那样,横轴表示相关值、竖轴表示时间差,那么应该怎样修改。谢谢。
[ 本帖最后由 0342147 于 2009-1-11 12:16 编辑 ]
回复 楼主 0342147 的帖子
doc xcorr看看帮助文件提供的例子
回复 楼主 0342147 的帖子
看看有无用!?http://forum.vibunion.com/thread-39455-1-1.html
还有x=s(1:15)好像多馀
直接 =xcorr(s,'unbiased'); 即可
[ 本帖最后由 ChaChing 于 2009-1-11 23:42 编辑 ]
很简单的理解
对于自相关函数(以为来讲)::自相关函数就是说我自身移动的距离为变量,以相关的程度来作为结果!!
就是说有两个向量A,B,,B是A的复制品!
当间距为0时:自相关量就为A.^2;
间距为1时:A ,B同时行向量加1;以0补齐,以A为基准A最后补0,B最前补0,再相乘;
…………
当间距为-1(负数时):A ,B相反,所以呢 计算出来的图像都是对称的。。
更详细的了解看看help就知道了!!
呵呵 我按照大家的提示,作出了以下的程序
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
但是数值上正确,图形上有点不对,还要请大家多多指教,谢谢 原因找到了
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)
但是想要横轴的负方向也显示出来,应该怎样做呢?
回复 6楼 0342147 的帖子
横轴代表什么?有没有负值?回复 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) 主要是想取横轴在0时候的值,根据自相关函数的特性,0的时候应该为1,但是我做出来的显示不出0时的值.应该怎么办?
回复 9楼 0342147 的帖子
用find命令可否找到横轴在0时候的值? 目前的解决办法只有b=circshift(a,);
c=circshift(b,);
不知道有没有更好的方法
页:
[1]