完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
需求:规定一次波形显示的数据时231个点。算法要求:采集到的数值是可以确定的。10000个点以内的点数都压缩成231个点,比如(采了1W个点,压缩成231显示出来)(5000个点还是压缩成231个点显示出来)(500个点还是压缩成231个点显示出来),传进来的点数是不确定的,不能写死,但是可以确定是在1W以内的点数,
总之就是232-10000指点的点数都压缩成231个点来显示到屏幕上 数学太差了,想了半天这种算法,但是画出来的波形总是和实际上显示的波形不太一样。 有没有大神指点,能有具体参考代码最好了!感激不尽。 |
|
相关推荐
4个回答
|
|
根据数据长度抽样就好了
|
|
|
|
采用下采样就可以了,多个点中取一个点
|
|
|
|
你可以把你的采样点按显示点平分后,再计算平均值进行显示
|
|
|
|
unsigned char Compressed_array(unsigned char *array,unsigned char Len,unsigned char *array_New) { unsigned int Multiple; unsigned short int i; unsigned short int Cnt; if(Len>10000||Len<232)return flase;//³¤¶ÈÅÐ¶Ï Multiple=(unsigned int)Len*10/231; //µÃ³ö±¶Êý for(i=0;i if(Multiple<20)//±¶Êý²»³¬¹ý2 { array_New[i/10]=array[Cnt/10]; i+=10; Cnt+=Multiple; } else //Èç¹û±¶Êý´óÓÚ2 { if(i%(Multiple)==0)//ÿ¹ý±¶Êý³éÈ¡Ò»¸öÖµ { array_New[Cnt++]=array[i/10]; } i++; } if(Cnt>=231)return true; } } 精度你自己去优化咯 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1950 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1809 浏览 3 评论
4389 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1960 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2463 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 12:55 , Processed in 0.712408 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号