doritos 发表于 2006-9-1 15:10

大侠帮我看看这一段计算自相关系数和偏相关系数的程序

%计算Y序列的自相关系数,n为序列长度
sum1=1/n*Y*Y';
for k=1:n
    sum3(k)=0;
    for m=1:n-k
      sum3(k)=sum3(k)+1/(n-k)*Y(m)*Y(m+k);
    end
    r0(k)=sum3(k)/sum1; %最后求得的自相关系数存在r0向量中。
end
%计算Y序列的偏相关系数
f0(1,1)=r0(1);
pr0(1)=f0(1,1);
for k=2:n-1
    sum4=0;
    sum5=0;
    for j=1:k-1
      sum4=sum4+f0(k-1,j)*r0(k-j);
      sum5=sum5+f0(k-1,j)*r0(j);
    end
    f0(k,k)=(r0(k)-sum4)/(1-sum5);
    for j=1:k-1
      f0(k,j)=f0(k-1,j)-f0(k,k)*f0(k-1,k-j);
    end
end
for i=2:n-1
    pr0(i)=f0(i,i); %最后的偏相关系数存在向量pro中。
end
大侠帮我看看,程序有没有问题,谢谢了 。

[ 本帖最后由 xuebx 于 2006-9-1 17:01 编辑 ]

jimin 发表于 2006-9-1 16:05

程序正不正确,就是看能不能运行,能运行的话找几个数据验证一下能不能实现特定的功能
自相关系数和偏相关系数应该按公式编就可以了吧

doritos 发表于 2006-9-4 11:04

原帖由 doritos 于 2006-9-1 15:10 发表
%计算Y序列的自相关系数,n为序列长度
sum1=1/n*Y*Y';
for k=1:n
    sum3(k)=0;
    for m=1:n-k
      sum3(k)=sum3(k)+1/(n-k)*Y(m)*Y(m+k);
    end
    r0(k)=sum3(k)/sum1; %最后求得的自相 ...

程序可以运行
但是最后结果不对。
大侠可以给出自相关函数和偏相关函数的计算公式么?
谢谢了

ericlin 发表于 2006-9-4 12:33

大侠可以给出自相关函数和偏相关函数的计算公式么?

怎么不是你要编的吗?你自己有没有这两个公式啊?

jimin 发表于 2006-9-4 13:34

原帖由 doritos 于 2006-9-4 11:04 发表


程序可以运行
但是最后结果不对。
大侠可以给出自相关函数和偏相关函数的计算公式么?
谢谢了
在这里最好讨论一些关于matlab的基础知识,一些涉及到特定专业的专业知识,并不是每一个人都懂的,一些公式的话,找一找相关的参考书就能找到,为什么非得要等别人来告诉你一下呢?自己去查一下不是更省事吗?

happy 发表于 2006-9-4 16:49

原帖由 jimin 于 2006-9-4 13:34 发表

在这里最好讨论一些关于matlab的基础知识,一些涉及到特定专业的专业知识,并不是每一个人都懂的,一些公式的话,找一找相关的参考书就能找到,为什么非得要等别人来告诉你一下呢?自己去查一下不是更省事吗?

同意,这个问题在信号处理方法板块讨论最为合适

happy 发表于 2006-9-4 16:50

相关系数matlab本身就提供了相应的函数xcorr

ab77977 发表于 2012-5-3 17:03

回复 7 # happy 的帖子

xcorr不是计算相关函数的吗?怎么会是相关系数了,求解释!

华电机械 发表于 2013-5-21 15:45

ab77977 发表于 2012-5-3 17:03 static/image/common/back.gif
回复 7 # happy 的帖子

xcorr不是计算相关函数的吗?怎么会是相关系数了,求解释!

自相关系数等于自相关函数减去均值的平方,再醋鱼

华电机械 发表于 2013-5-21 15:49

自相关系数等于自相关函数减去均值的平方,再除于方差,同理胡相关系数等于互相关函数减去两信号均值的乘积,再除于两标准差的乘积。。
页: [1]
查看完整版本: 大侠帮我看看这一段计算自相关系数和偏相关系数的程序