切换到宽版
  • 4036阅读
  • 3回复

[咨询求助]求自相关函数与互相关函数的C语言子程序 [复制链接]

上一主题 下一主题
离线woshilaoqi
 
发帖
92
财富
41
威望
0
交易币
0
只看楼主 倒序阅读 使用道具 0楼 发表于: 2009-02-01 | 石油求职招聘就上: 阿果石油英才网
不知道哪位好心的果友可以提供一下自相关函数与互相关函数的C语言子程序,不胜感激!
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线mobaosht
发帖
16
财富
280
威望
1
交易币
0
只看该作者 1楼 发表于: 2009-02-02 | 石油求职招聘就上: 阿果石油英才网
先抢沙发


这两个程序原理是一样的,另外也不是很难,好好弄懂原理,肯定是可以扁出来的

如果还有问题,可以把你编的程序发上来,给你看看

如果,直接就给你程序,就市区了锻炼的机会啦,你说是吧
离线lyhinsohu
发帖
507
财富
728
威望
0
交易币
0
只看该作者 2楼 发表于: 2009-02-02 | 石油求职招聘就上: 阿果石油英才网
原创很久没动过C语言,有点生疏.程序是根据相关函数公式直接计算.

int  Rxy( x, N, y, M, rxy)   /* Rxy()计算两个序列的互相关函数,返回值为结果序列的0点位置,注意0点位置是从0开始的,不是从1开始。*/
double x[], y[], rxy[];      /*  x[] 存放x序列,y[] 存放y序列,rxy[]存放结果序列,其中rxy[]长度为x序列长度+y序列长度-1 */
int N, M;                    /*  N 是x序列长度, M是y序列长度 */

    {
        int t;
        int n;
        int index = 0;
        int index1 =0;
        for (t = 1-M; t<N; t++ )
        {
            if (t==0) index=index1;
            index1++;
            rxy[t+M-1]=0.0;
            for (n = 0; n<N; n++)
            {
                if(n-t<0) continue;
                if(n-t>M) continue;
                rxy[t+M-1] = rxy[t+M-1] + x[n]*y[n-t];
            }
         }
      return index;
    }

int main(int argc, char *argv[])
{
     double xx[4]={2,1,3,2};
     double yy[3]={3,2,1};
     double xyxy[6]={0};
     int i;
     int tt;
     tt = Rxy(xx,4,yy,3,xyxy);
     for (i=0;i<6;i++)
     printf("%f \n",xyxy); /* 输出结果序列*/
     printf("\n%d\n",tt);     /* 输出结果序列的0点位置 */
    return 0;
}
[ 此贴被lyhinsohu在2009-02-03 08:04重新编辑 ]
2条评分
allex02 财富 +20 应助奖励,是否原创? 请说明 2009-02-02
allex02 财富 +20 原创奖励 2009-02-02
离线woshilaoqi
发帖
92
财富
41
威望
0
交易币
0
只看该作者 3楼 发表于: 2009-02-02 | 石油求职招聘就上: 阿果石油英才网
谢谢一楼和二楼的两位朋友!

网站事务咨询:QQ:1392013 | 26189883
阿果石油网为免费个人网站,为石油人提供免费的在线即时技术交流场所,拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论和行为!
如有言论或会员共享的资料涉及到您的权益,请立即通知网站管理员,本站将在第一时间给予配合处理,谢谢!