任务一:查找地震子波概念并调查“零相位雷克子波”表达式。

地震子波是一段具有确定的起始时间、能量有限且有一定延续长度的信号,它是地震记录中的基本单元。

零相位雷克子波表达式:

任务二:设主频为30Hz,基于c语言实现“雷克子波”程序。

任务三:给定随机反射系数,并实现其c程序。

任务四:基于“雷克子波”以及随即反射系数,合成地震记录,实现其c程序。

任务五:修改零相位”雷克子波“表达式,得到90°、180°、270°相位的雷克子波表达式,并实现其c程序。


仔细分析将会发现课设的难度并不高,相对于已经上过c程序设计课程的同学来说,只要沉下心来,认真思考、并查阅一些文献资料,两天左右的时间完全可以调试出来。

下面是笔者自己编写的c程序,可能有所疏漏 欢迎大家批评指正。


#include<stdio.h>
#include<iostream>
#include<time.h>
#include<math.h>
#include<stdlib.h>
using namespace std;#define PI 3.1415926
#define T 0.001
#define FM 30
void convolution(double a[],double b[],double c[],int M, int N);
int main(void)
{double Ricker[200];FILE*fpLei,*fpFan,*fpDi;fpLei=fopen("雷克子波.cvs","w");if(!fpLei){cout<<"雷克子波文件打开失败!!!"<<endl;exit(0); }fprintf(fpLei,"%s,%s\n","时间t","雷克子波");for(int i=0;i<200;++i){if(i==0)cout<<"雷克子波文件数据开始导入!!!"<<endl; Ricker[i]=(1-2*PI*(__int64)(i-50)*FM*T*PI*(i-50)*FM*T)*exp(-PI*(i-50)*FM*T*PI*(i-50)*FM*T);fprintf(fpLei,"%.4f,%.4f\n",T*(__int64)(i-50),Ricker[i]);if(i==199)cout<<"雷克子波文件数据全部导入成功!!!"<<endl;} fclose(fpLei);srand(unsigned(time(NULL)));double Reflect[500];fpFan=fopen("反射系数.cvs","w");if(!fpFan){cout<<"反射系数文件打开失败!!!"<<endl;exit(0);}for(int i=0;i<500;i++){if(i==0){fprintf(fpFan,"%s","反射系数");cout<<"反射系数文件开始读入!!!"<<endl;}int reflect=rand()%200+1;if(reflect<=100)Reflect[i]=reflect/100.0;elseReflect[i]=(reflect-200)/100.0;fprintf(fpFan,"%lf\n",Reflect[i]);if(i==499)cout<<"反射系数数据文件读入完成!!!"<<endl;}fclose(fpFan);double Di[599];convolution(Ricker,Reflect,Di,100,500);fpDi=fopen("地震子波.cvs","w+");for(int i=0;i<599;++i){if(i==0)cout<<"地震子波文件开始读入!!!"<<endl;fprintf(fpDi,"%lf\n",Di[i]) ;if(i==598)cout<<"地震子波文件读入完成!!!"<<endl;}fclose(fpDi);double Ricker_90[199];double Zheji_90[100];for(int i=0;i<100;++i){Zheji_90[i]=(i-50)/PI;}convolution(Ricker,Zheji_90,Ricker_90,100,100);FILE*Lei_90,*Lei_180,*Lei_270;Lei_90=fopen("雷克子波90.cvs","W");if(!Lei_90){cout<<"雷克子波90文件的读入失败!!!"<<endl;exit(0);}for(int i=0;i<100;i++){if(0==i){cout<<"开始读入雷克子波90文件数据!!!"<<endl;fprintf(Lei_90,"%s,%s\n","时间t","l雷克子波"); }fprintf(fpLei,"%.4f,%.4f\n",T*(__int64)(i-50),Ricker_90[i]);if(i==99)cout<<"雷克子波数据全部读入成功!!!"<<endl; }fclose(Lei_90);double Ricker_180[199];double Zheji_180[100];for (int i=0;i<100;i++){Zheji_180[i]=2*(i-50)/PI;            }          convolution(Ricker,Zheji_180,Ricker_180,100,100);Lei_180=fopen("雷克子波180.cvs","w");if(!Lei_180){cout<<"雷克子波180文件读入失败!!!"<<endl;exit(0);}for(int i=0;i<100;++i){if(0==i){cout<<"开始读入雷克子波180文件!!!"<<endl;fprintf(Lei_180,"%s,%s\n","时间t","l雷克子波"); }fprintf(fpLei,"%.4f,%.4f\n",T*(__int64)(i-50),Ricker_180[i]);if(i==99)cout<<"雷克子波180数据读入完成!!!"<<endl;}fclose(Lei_180);double Ricker_270[199];double Zheji_270[100];for(int i=0;i<100;++i){Zheji_270[i]=3*(i-50)/PI;}convolution(Ricker,Zheji_270,Ricker_270,100,100);Lei_270=fopen("雷克子波270.cvs","w");if(!Lei_270){cout<<"雷克子波270数据读入失败!!!"<<endl;exit(0);}for(int i=0;i<100;++i){if(0==i){cout<<"开始读入雷克子波270文件数据!!!"<<endl;fprintf(Lei_270,"%S,%S\n","时间t","l雷克子波");}fprintf(fpLei,"%.4f,%.4f\n",T*(__int64)(i-50),Ricker_270[i]);if(i==99)cout<<"雷克子波270文件数据读入完成!!!"<<endl;}fclose(Lei_270);system("pause");return 0;}/*褶积计算*/void convolution(double a[],double b[],double c[],int M,int N){int L=M+N-1;for(int i=0;i<L;i++){double tp=0.0;for(int j=0;j<M;j++){if((i-j)>=0&&(i-j)<N)tp+=a[j]*b[i-j];}c[i]=tp;tp=0.0;}} 

在程序运行之后,不太熟悉的同学将会发现运行后的数据记录找不到了,要先试着读懂程序之后将数据保存在指定路径。

数据保存之后打开会是.cvs文件,这种类型的文件可以用excel打开,之后框选所得数据,生成可视化表格便可以完成本次课程设计,最后便是撰写课程报告了。

以上程序运行结果仅供参考。

C语言课程设计 雷克子波反射系数 相位移动等相关推荐

  1. 兰州交通大学C语言课程设计,兰州交通大学C语言课程设计报告(完整版).doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp实验设计 兰州交通大学C语言课程设计报告(完整版).doc12 ...

  2. C语言程序设计简谐运动的模拟,C语言课程设计简谐振动实验的模拟.doc

    C语言课程设计简谐振动实验的模拟 <C语言程序设计> 课程设计报告 题 目简谐振动实验的模拟姓 名 学 号 同组人员 学 号 年级专业09电子信息工程(2)班指导教师 完成日期2010年6 ...

  3. c语言课程设计的摘要,投票程序设计-C语言课程设计摘要.doc

    投票程序设计-C语言课程设计摘要.doc C 语 言 课 程 设 计 题 目: <7>投票程序 设 计 者: 专 业: 班级学号: 所属院系:机电学院 指导教师: 2010年7月17日 1 ...

  4. c语言课程设计商品销售系统,c语言课程设计商品销售管理系统.pdf

    C语言课程设计商 品销售管理系统 1 2020 年 4 月 19 日 文档仅供参考 商品销售管理系统 目录 一. 需求分析 2 二.概要设计 2 三.详细设计 4 四.调试分析 14 五.用户手册 1 ...

  5. 简单的c语言课程设计管理类,C语言课程设计-学生成绩简单管理程序.doc

    C语言课程设计报告 --学生成绩简单管理程序 一.程序的主要功能 用单向链表结构实现简单的学生成绩管理功能,要求具有链表建立.链表输出.结点有序插入.节电删除.数据查询等功能. 各项菜单功能: (1) ...

  6. C语言课程设计—图书管理系统

    这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中居然在QQ网络硬盘中找到了当初的teta版,公布于此,以作纪念. C源码例如以下: #include<std ...

  7. c语言排班系统设计报告,C语言课程设计关于排班系统的一些问题

    已结贴√ 问题点数:10 回复次数:5 C语言课程设计关于排班系统的一些问题 小女大一,课程设计是百度排班系统(虽然不知老师干嘛现在布置类似小系统的作业),在论坛中找到个代码,其实只要交了代码就好,但 ...

  8. 小学生数学测试软件c语言流程图,小学生数学测试软件-C语言课程设计

    小学生数学测试软件-C语言课程设计 C语言课程设计 设计期限 2013 年 6 月 17 开始 至 2013 年 6 月 20 结束 系 别 信息管理与信息系统 专 业 班级 学生姓名 学号 指导教师 ...

  9. c语言结构体老师信息管理系统,C语言课程设计职工信息管理系统结构体数组实现程序源代码.doc...

    word格式 整理版 学习参考 //C语言课程设计 职工信息管理系统-结构体数组实现 #include #include #include struct employee { char num[10] ...

最新文章

  1. 电大计算机基础知识试题是什么样的,计算机应用基础知识(电大试题)
  2. C++中常用的字符串函数
  3. grub resourceunknown filesystem异常处理
  4. 对List中对象的去重
  5. Deep GSP : 面向多目标优化的工业界广告智能拍卖机制
  6. 【软件测试】软件测试与概率
  7. Tomcat优化之配置NIO运行模式
  8. 打分现场流程策划及排练大致流程-仅参考
  9. vs code html插件_VS插件CodeRush全新发布v20.1.7|支持HTML
  10. matlab用pathy语言,2018 年度编程语言 -- Python
  11. 字典攻击——彩虹表攻击与防御
  12. 苹方字体 for linux,苹果苹方字体/苹方黑体全套完整版下载(ttf版)
  13. Faster RCNN代码详解(三):数据处理的整体结构
  14. OPC DA 到 OPC UA
  15. 关于 Anaconda 创建环境后没有名字的问题
  16. 关于Code Virtualizer pcode解密的一种方法
  17. Android之头像图片变圆形
  18. Bootstrap data类型的Url格式--url(data:image/gif;base64,AAAA):把小数据直接嵌入到Url中
  19. Python爬取美桌网美女图片
  20. python量化实战 顾比倒数线_龙腾四海:顾比倒数线+顾比均线

热门文章

  1. Johnson–Lindenstrauss Lemma
  2. word中 数字或者字母间距 突然变大
  3. web前端(HTML5)
  4. 最新鲁班H5页面生成工具系统源码+功能强大/仿易企秀
  5. 计算机组成原理实验箱D7,计算机组成原理与系统结构实验仪教学设备,上海求育...
  6. 记录今天用ETL工具KETTLE遇到打不开job问题
  7. 【教程】在天河上安装、移植并验证CESM2.2.0
  8. vc 鲜为人知的 __if_exists
  9. AtCoder Beginner Contest 171 D - Replacing
  10. 铲个屎都这么硬核?!小哥用姿势检测模型,搞了个狗粑粑探测摄像头