最小平方反滤波程序代码C语言以及MATLAB编写.doc

最小平方反滤波程序代码C语言以及MATLAB编写.doc

ID:57212740

大小:317.00 KB

页数:11页

时间:2020-08-06

最小平方反滤波程序代码C语言以及MATLAB编写.doc_第1页
最小平方反滤波程序代码C语言以及MATLAB编写.doc_第2页
最小平方反滤波程序代码C语言以及MATLAB编写.doc_第3页
最小平方反滤波程序代码C语言以及MATLAB编写.doc_第4页
最小平方反滤波程序代码C语言以及MATLAB编写.doc_第5页
资源描述:

《最小平方反滤波程序代码C语言以及MATLAB编写.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、分C语言和MATLAB两部分第一部分:C语言#include"stdio.h"#include"math.h"#include"stdlib.h"#include"malloc.h"#include"string.h"#definepi3.14#definefm25//主频#definedt0.001//采样间隔voidcon(floata[],floatb[],floatc[],intM,intL);//褶积voidzixiangguan(float*a,float*r,intP);//自相关intjiefa

2、ngchengzu(floatR[],intn,floatb[],floatx[]);//解托普利茨方程组voidmain(){inti,j;intP=200;//子波长度intQ=399;//反射序列长度floata;//子波衰减因子floatwave[200],ref[200],con1[399],xcorr[200],b[200],at[200],yt[598];FILE*fp_wave,*fp_con1,*fp_xcorr,*fp_at,*fp_yt;fp_wave=fopen("wave.csv","

3、w");//子波fp_con1=fopen("con1.csv","w");//子波与反射序列褶积的地震记录fp_xcorr=fopen("xcorr.csv","w");//地震记录自相关fp_at=fopen("at.csv","w");//反滤波因子fp_yt=fopen("yt.csv","w");//因子与地震记录褶积for(i=0;i

4、2*fm*fm*log(2)/3;wave[i]=cos(2*pi*fm*i*dt)*exp(-a*i*i*dt*dt);fprintf(fp_wave,"%f",wave[i]);//构造子波//}con(wave,ref,con1,P,P);for(i=0;i

5、[i]);//子波自相关//for(i=0;i

6、oatb[],floatc[],intM,intL){inti,j,N;floattp=0;N=M+L-1;for(i=0;i=0&&(i-j)

7、j];//从最左边开始,移到两者重合}r[P-1-i]=s;s=0;}}//莱文森递推解托普利茨方程组////R为矩阵的第一行或者第一列数据,b为方程组右侧结果,x为计算的反滤波因子intjiefangchengzu(floatR[],intn,floatb[],floatx[]){inti,j,k;floata,beta,q,c,h,*y,*s;s=(float*)calloc(n,sizeof(double));y=(float*)calloc(n,sizeof(double));a=R[0];if(fab

8、s(a)+1.0==1.0){free(s);free(y);printf("fail");return(-1);}y[0]=1.0;x[0]=b[0]/a;for(k=1;k<=n-1;k++){beta=0.0;q=0.0;for(j=0;j<=k-1;j++){beta=beta+R[j+1]*y[j];q=q+R[k-j]*x[j];}if(fabs(a)+1.0==1.0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。