加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

上机六——计算两信号的互相关

(2020-12-29 16:11:42)
标签:

互相关c程序

分类: 《信号分析与处理》课
1、输入数据与计算结果图形
上机六——计算两信号的互相关

上机六——计算两信号的互相关2、解释
      给定两个信号,计算它们的互相关。视觉上可以看到两信号时差为10ms,计算得到的互相关也是10ms。地震标定就是用到了这个原理,这个时差就是标定时间移动值。
上机六——计算两信号的互相关
这是一个实际标定图,合成记录与实际地震记录,可以计算它们的互相关来得到时移值,完成标定。
3、数据
数据文件SEIS1.PRN
        0.0000
        0.0000
        0.0000
        0.0000
        0.0000
      10 -0.0051
      12 -0.0028
      14  0.0004
      16 -0.0086
      18  0.0012
      20  0.0055
      22  0.0069
      24 -0.0101
      26  0.0026
      28   -0.01
      30 -0.0318
      32 -0.0564
      34 -0.0899
      36 -0.1302
      38 -0.1814
      40 -0.1665
      42 -0.0929
      44  0.0236
      46  0.1966
      48  0.3367
      50  0.4002
      52  0.3539
      54  0.1948
      56  0.0361
      58 -0.0941
      60 -0.1654
      62 -0.1701
      64 -0.1406
      66 -0.1036
      68 -0.0532
      70 -0.0367
      72  -0.014
      74 -0.0136
      76 -0.0063
      78 -0.0084
      80 -0.0051
      82  0.0053
      84 -0.0042
      86   0.003
      88 -0.0058
      90   0.005
      92 -0.0058
      94 -0.0046
      96 -0.0037
      98 -0.0042
     100  0.0082
     102  0.0052
     104  0.0052
     106  0.0002
     108 -0.0099
     110 -0.0052
     112 -0.0061
     114  0.0075
     116  0.0069
     118 -0.0011
     120 -0.0063
     122  0.0027
     124  0.0028
     126  -0.002
     128  0.0094
     130  0.0015
     132 -0.0034
     134   0.007
     136 -0.0056
     138  0.0063
     140  0.0009
     142  0.0088
     144  0.0024
     146  0.0034
     148  0.0173
     150  0.0252
     152  0.0428
     154  0.0748
     156  0.0957
     158  0.1286
     160  0.1174
     162   0.067
     164 -0.0152
     166 -0.1537
     168 -0.2397
     170 -0.2704
     172 -0.1951
     174 -0.0244
     176  0.1474
     178   0.286
     180  0.3409
     182  0.2623
     184  0.0596
     186 -0.1748
     188 -0.3934
     190 -0.4845
     192 -0.4175
     194  -0.247
     196 -0.0314
     198   0.127
     200  0.2027
     202  0.2166
     204  0.1695
     206    0.11
     208   0.065
     210  0.0286
     212  0.0106
     214  0.0014
     216 -0.0069
     218  0.0045
     220  0.0039
     222   0.003
     224 -0.0059
     226  0.0048
     228  -0.007
     230  0.0093
     232  0.0058
     234  0.0032
     236  0.0053
     238 -0.0095
     240 -0.0085
     242 -0.0073
     244 -0.0023
     246 -0.0027
     248 -0.0189
     250 -0.0379
     252 -0.0764
     254 -0.1152
     256 -0.1836
     258  -0.222
     260  -0.219
     262 -0.1288
     264  0.0388
     266  0.2613
     268  0.4328
     270  0.5066
     272  0.4326
     274  0.2481
     276  0.0384
     278 -0.1295
     280 -0.2186
     282  -0.208
     284 -0.1676
     286  -0.127
     288 -0.0661
     290 -0.0402
     292   -0.02
     294   -0.01
     296 -0.0076
     298  0.0014
     300 -0.0055
     302 -0.0074
     304 -0.0028
     306 -0.0046
     308  0.0013
     310  0.0059
SEIS2.PRN
       0 -0.0051
       2 -0.0028
        0.0004
       6 -0.0086
        0.0012
      10  0.0055
      12  0.0069
      14 -0.0101
      16  0.0026
      18   -0.01
      20 -0.0318
      22 -0.0564
      24 -0.0899
      26 -0.1302
      28 -0.1814
      30 -0.1665
      32 -0.0929
      34  0.0236
      36  0.1966
      38  0.3367
      40  0.4002
      42  0.3539
      44  0.1948
      46  0.0361
      48 -0.0941
      50 -0.1654
      52 -0.1701
      54 -0.1406
      56 -0.1036
      58 -0.0532
      60 -0.0367
      62  -0.014
      64 -0.0136
      66 -0.0063
      68 -0.0084
      70 -0.0051
      72  0.0053
      74 -0.0042
      76   0.003
      78 -0.0058
      80   0.005
      82 -0.0058
      84 -0.0046
      86 -0.0037
      88 -0.0042
      90  0.0082
      92  0.0052
      94  0.0052
      96  0.0002
      98 -0.0099
     100 -0.0052
     102 -0.0061
     104  0.0075
     106  0.0069
     108 -0.0011
     110 -0.0063
     112  0.0027
     114  0.0028
     116  -0.002
     118  0.0094
     120  0.0015
     122 -0.0034
     124   0.007
     126 -0.0056
     128  0.0063
     130  0.0009
     132  0.0088
     134  0.0024
     136  0.0034
     138  0.0173
     140  0.0252
     142  0.0428
     144  0.0748
     146  0.0957
     148  0.1286
     150  0.1174
     152   0.067
     154 -0.0152
     156 -0.1537
     158 -0.2397
     160 -0.2704
     162 -0.1951
     164 -0.0244
     166  0.1474
     168   0.286
     170  0.3409
     172  0.2623
     174  0.0596
     176 -0.1748
     178 -0.3934
     180 -0.4845
     182 -0.4175
     184  -0.247
     186 -0.0314
     188   0.127
     190  0.2027
     192  0.2166
     194  0.1695
     196    0.11
     198   0.065
     200  0.0286
     202  0.0106
     204  0.0014
     206 -0.0069
     208  0.0045
     210  0.0039
     212   0.003
     214 -0.0059
     216  0.0048
     218  -0.007
     220  0.0093
     222  0.0058
     224  0.0032
     226  0.0053
     228 -0.0095
     230 -0.0085
     232 -0.0073
     234 -0.0023
     236 -0.0027
     238 -0.0189
     240 -0.0379
     242 -0.0764
     244 -0.1152
     246 -0.1836
     248  -0.222
     250  -0.219
     252 -0.1288
     254  0.0388
     256  0.2613
     258  0.4328
     260  0.5066
     262  0.4326
     264  0.2481
     266  0.0384
     268 -0.1295
     270 -0.2186
     272  -0.208
     274 -0.1676
     276  -0.127
     278 -0.0661
     280 -0.0402
     282   -0.02
     284   -0.01
     286 -0.0076
     288  0.0014
     290 -0.0055
     292 -0.0074
     294 -0.0028
     296 -0.0046
     298  0.0013
     300  0.0059
     302  0.0000
     304  0.0000
     306  0.0000
     308  0.0000
     310  0.0000
4、程序
#include "stdio.h"
#define M 156
#define N 156
#define dt 2

main()
{ void ccor();
  float y[M+N-1];
  int i,j,m=M,n=N;
  float x[M],h[N];
  FILE *fp1,*fp2,*fp3;
  fp1=fopen("SEIS1.PRN","r");
  fp2=fopen("SEIS2.PRN","r");
  fp3=fopen("Seis12_ccor.xls","w");

  for(i=0;i
  {
fscanf(fp1,"%d %f",&j,&x[i]);
printf("%d  %f\n",j,x[i]);
  }

  for(i=0;i
  {
fscanf(fp2,"%d %f",&j,&h[i]);
printf("%d  %f\n",j,h[i]);
  }
  ccor(x,m,h,n,y);
  for(i=-n+1;i<=m-1;i++)
  fprintf(fp3,"] \t .4f\n",i*dt,y[i+n-1]);

  fclose(fp1);
  fclose(fp2);
  fclose(fp3);

}
void ccor(x,m,h,n,y)
  float x[],h[],y[];
  int m,n;
{ int i,j;
  for(i=-n+1;i<=m-1;i++)
{ y[i+n-1]=0.0;
  for(j=0;j<=m-1;j++)
    if(j-i>=0&&j-i<=n-1)y[i+n-1]=y[i+n-1]+x[j]*h[j-i];
}
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有