博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言雷克子波,vans.c · skateboi/雷克子波与一维数组卷积的图像 - Gitee.com
阅读量:6830 次
发布时间:2019-06-26

本文共 1896 字,大约阅读时间需要 6 分钟。

# include

# include

# include

# include

# define PI 3.14

/* 函数定义区 */

void f(float *r, int Fm, int L, float dt);

float * h_Ip(float *pRaa1, int leng_1, float *pRaa2, int leng_2);

void main()

{

float R[71]; //用是存放生成的数据

float E[71];

int i, j;//用来循环的量

int L = 71; //子波长度

float dt = 0.001;//采样间隔

int Fm = 25;//子波的中心频率

FILE * fp; //定义一个文件类指针

float thrash[256] = {0};

float *pRaa = NULL;

f(R, Fm, L, dt); //调用雷克函数

// ------------------------------------------------------------

for(i=35,j=0; i<=70,j<=35; i++,j++) // 12 3 45 , 01 2 34

{

E[i] = R[j];

}

for(i=0,j=35; i<=35,j>=0; i++,j--)

{

E[i] = R[j];

}

// -------------------------------------------------------------

//thrash[242] = 1.0; // 128, 31, 242

//thrash[31] = 1.0;

//thrash[128] = 1.0;

pRaa = h_Ip(thrash, 256, E, 71);

/* 打开文件并判断 */

if((fp=fopen("Palace","w")) == NULL)

{

perror("data");

exit(1);

}

/* 向文件输出 */

for(i=0; i<71; i++) //326

{

fprintf(fp, "%f\n", E[i]);

}

fclose(fp); //关闭文件

free(pRaa);

}

void f(float *r, int Fm, int L, float dt) //雷克子函数

{

int *I; //I是时间间隔点

float *t;

int i;

/* 动态分配内存 */

t = (float *)malloc(sizeof(float) * L);

I = (int *)malloc(sizeof(int) * L);

/* 为时间间隔点赋值 从0~70 */

for(i=0; i

{

I[i] = i;

}

/* 通过t = i * dt的公式计算 */

for(i=0; i

{

t[i] = dt * I[i];

}

/* 通过计算r(t)的公式计算 并将值保存在R[]中 */

for(i=0; i

{

r[i] = (exp(-1*pow(PI*Fm*t[i], 2))) * (1 - 2*pow(PI*Fm*t[i], 2));

}

/* 释放内存 */

free(t);

free(I);

}

/* 一维离散卷积公式 */

/* 用于计算(pRaa1[leng_1] * pRaa2[leng_2])[leng_3] */

float * h_Ip(float *pRaa1, int leng_1, float *pRaa2, int leng_2) //leng_1是1数组的长度,leng_2是2数组的长度,*pRaa3用来储存卷积后的数据

{

float *pRaa3;

int n, m;

int leng_3; //leng_3是存放卷积完的长度

float k=0; //k用来临时存放数据

pRaa3 = (float *)malloc(sizeof(float)*(leng_1+leng_2-1));//动态分配内存,!没有销毁

leng_3 = leng_1+leng_2-1;

/* 通过离散卷积公式计算 */

for(n=0; n

{

for(m=0; m

{

if((n-m)>=0 && (n-m)

{

k += pRaa1[m] * pRaa2[n-m];

}

}

pRaa3[n] = k;

k = 0;

}

return pRaa3;

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

转载地址:http://hujkl.baihongyu.com/

你可能感兴趣的文章
idea搭建简单spring-boot项目
查看>>
何为RP(快速成型)技术?
查看>>
Python初学的几个迷惑点
查看>>
springmvc 文件上传(粘贴即用)
查看>>
$.each() each
查看>>
Oracle物化视图的一般使用
查看>>
跳马(广搜_队列)
查看>>
JEE_Model1和Model2模型
查看>>
51nod 1441:士兵的数字游戏
查看>>
UVA 11573 Ocean Currents
查看>>
serviceCapture 和firefox 模拟局域网慢网速
查看>>
hdu4908(中位数)
查看>>
别的程序员是怎么读你的简历的
查看>>
创建型设计模式之单例设计模式
查看>>
Jenkins配置发送邮件步骤
查看>>
oracle 游标
查看>>
iOS 之 KVC KVO
查看>>
android opengl es 2.0
查看>>
Java面试题
查看>>
Android 内存管理基本介绍
查看>>