网站建设资讯

NEWS

网站建设资讯

C语言找函数图像的峰值 c语言图像处理函数

c语言怎么获取波形脉尖

findpeaks函数可以获得峰值位置。

10余年的安平网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整安平建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“安平网站设计”,“安平网站推广”以来,每个客户项目都认真落实执行。

1、a=findpeaks(data),获得data的局部峰值,此方法即峰值点大于相邻两点即可。

2、a,b=findpeaksd(ata),可以返回峰值位置,峰值位置赋予给b。

C语言周期信号曲线峰值判断(基于加速度传感器的信号,测量出上下周期运动的上行和下行)图片马上上传

你的办法估计可行性不高,稍微出个毛刺就不对了。

建议采用fft分析,根据频域的结果判断一个合理值。

快速查找二维数组的所有峰值,c语言实现最好,python也可以,最好能实现滤波。

#includestdio.h

#include stdlib.h

#include limits.h

#includemalloc.h

#define maxsize 6 //每个波形数据最大采集个数  默认6

typedef struct array1

{

int *data;

struct array1 *next;

}ARR1;

ARR1 *addNewArr(ARR1 *arrHead,ARR1 *arrTail);//插入一组波形数据节点 返回尾节点

int findMaxF(ARR1 *arrHead);//查找最大峰值

int removeMinF(ARR1 *arrHead);//移除最小峰值数据组   返回最小峰值

void printfArr(ARR1 *arrHead);//打印数据链表

int main()

{

ARR1 *arrHead=(ARR1 *)malloc(sizeof(ARR1));

arrHead-next=NULL;

ARR1 *arrTail=NULL;

arrTail=addNewArr(arrHead,arrTail);//想插入几组,就调用几次  我就测试6组

arrTail=addNewArr(arrHead,arrTail);

arrTail=addNewArr(arrHead,arrTail);

arrTail=addNewArr(arrHead,arrTail);

arrTail=addNewArr(arrHead,arrTail);

arrTail=addNewArr(arrHead,arrTail);

printf("采集的原数据组为:\n");

printfArr(arrHead);

printf("最大峰值:%d,最小峰值值:%d\n",findMaxF(arrHead),removeMinF(arrHead));

printf("删除最小峰值数据组后的数据为:\n");

printfArr(arrHead);

return 0;

}

void printfArr(ARR1 *arrHead)//打印数据链表

{

while(arrHead-next!=NULL)

{

printf("%d,%d,%d,%d,%d,%d\n",arrHead-next-data[0],arrHead-next-data[1],arrHead-next-data[2],arrHead-next-data[3],arrHead-next-data[4],arrHead-next-data[5]);

arrHead=arrHead-next;

}

}

ARR1 *addNewArr(ARR1 *arrHead,ARR1 *arrTail)//插入一组波形数据   返回尾节点

{

int *data=(int *)malloc(sizeof(int)*maxsize),i;

printf("采集一组波形数据(最大采集个数%d):",maxsize);

for(i=0;imaxsize;i++)

scanf("%d",data[i]);

ARR1 *arrNew=(ARR1 *)malloc(sizeof(ARR1));

arrNew-data=data;

arrNew-next=NULL;

if(arrHead-next==NULL)//插入第一组数组 作为首节点

arrHead-next=arrNew;

else

arrTail-next=arrNew;

arrTail=arrNew;

return arrTail;

}

int findMaxF(ARR1 *arrHead)//查找最大峰值

{

int i,maxNum=0,maxf=0;

while(arrHead-next!=NULL)

{

maxNum=0;

for(i=0;imaxsize;i++)//获取每组数据的峰值

{

if(arrHead-next-data[i]maxNum)

maxNum=arrHead-next-data[i];

}

if(maxNummaxf)//获取最大峰值

maxf=maxNum;

arrHead=arrHead-next;

}

return maxf;

}

int removeMinF(ARR1 *arrHead)//移除最小峰值数据组   返回最小峰值

{

int i,maxNum=0,minf=INT_MAX;

ARR1 *minDataSave=NULL,*arrHeadSave=arrHead;

while(arrHead-next!=NULL)

{

maxNum=0;

for(i=0;imaxsize;i++)//获取每组数据的峰值

{

if(arrHead-next-data[i]maxNum)

maxNum=arrHead-next-data[i];

}

if(maxNumminf)//获取最小峰值

{

minDataSave=arrHead-next;

minf=maxNum;

}

arrHead=arrHead-next;

}

arrHead=arrHeadSave;

//移除最小峰值数据组

while(arrHead-next!=NULL)

{

if(arrHead-next==minDataSave)//删除节点重组链表

{

arrHead-next=minDataSave-next;

minDataSave-next=NULL;

free(minDataSave-data);//释放节点内存

free(minDataSave);

break;

}

arrHead=arrHead-next;

}

return minf;

}


分享文章:C语言找函数图像的峰值 c语言图像处理函数
文章出自:http://cdweb.net/article/ddgcdio.html