1334|1

156

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【基于树莓派400的图像识别归类&运动检测&模拟信号处理系统第三帖】使用QT程序内... [复制链接]

 

【基于树莓派400的图像识别归类&运动检测&模拟信号处理系统第三帖】使用QT程序内建的QTcharts库做信号处理/分析/统计

 

       要做信号处理分析,一个显示界面是必不可少的,大多数GUI开发工具都有自己的折线图显示界面,QT也不例外,QT的折线图显示控件叫QT charts,QT charts有虚函数,属于QT内部常用的子类,需要从QWidget父类中继承升级而来,我这次就用QT charts做了两个信号显示界面,一个是使用math库构建的三角函数叠加函数,另一个则是采集自真实数据,先看看怎么显示模拟出来的信号:

  • void MainWindow::This_Thread_Line_Chart()
  • {
  • static int count = 0 , count_reflash = 0;
  • int ret;
  • float pres;
  • while(1)
  • {
  • if(count >= 1000000)
  • {
  • count = 0;
  • Signal_Raw_data();
  • }
  • count_reflash++;
  • count++;
  • }
  • }
  • void MainWindow::Raw_data_CounterUpdate_Line_Chart()
  • {
  • int i;
  • static int count = 0;
  • series_raw_data->clear();
  • for(i = 0 ; i < N ; i ++)
  • {
  • //chart_raw_data_buf[i] = sin(i*0.1 + count * 0.3);
  • chart_raw_data_buf[i] = sin(i*0.1 + count * 0.3) + 2 * sin(i*0.2 + count * 0.3)+ 3 * sin(i*0.3 + count * 0.3);
  • series_raw_data->append(QPointF(i , chart_raw_data_buf[i]));
  • }
  • FFTW_Mag_Test(chart_raw_data_buf , chart_fft_data_buf , 0 , N);
  • int peakFs[30] = { 0 };
  • int peakFs_len = 0;
  • int peakFs2[30] = { 0 };
  • int peakFs2_len = 0;
  • Mag_Find_Peaks(chart_fft_data_buf , N / 2 , 2 , peakFs , &peakFs_len , peakFs2 , &peakFs2_len);
  • series_fft_data->clear();
  • for(i = 0 ; i < N / 2 ; i ++)
  • {
  • series_fft_data->append(QPointF(i , chart_fft_data_buf[i]));
  • }
  • count++;
  • if(count >= 10000)count = 0;
  • }

使用信号槽的方式实现该功能,信号的发出方式可以是定时器溢出,也可以是线程内部的计时器/计数器等。将结果导出,并做FFT(快速傅里叶变换),将傅里叶变换结果也显示到另一QT chart控件上,并作峰值检测和峰值统计。

鎾斁鍣ㄥ姞杞藉け璐�: 鏈娴嬪埌Flash Player锛岃鍒�瀹夎
173c7c0010a22b169e5cfb310877a67f

 

最新回复

正在学习电子电路设计与制作,资料有用,学习了,感谢您的分字。   详情 回复 发表于 2024-10-15 11:36
点赞(1) 关注
 
 

回复
举报

65

帖子

0

TA的资源

禁止发言

沙发
 

正在学习电子电路设计与制作,资料有用,学习了,感谢您的分字。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
福禄克有奖直播:高精度测温赋能电子制造 报名中!
直播时间:2025年2月28日(周五)上午10:00
直播主题:高精度测温赋能电子制造
小伙伴们儿快来报名直播吧~好礼等你拿!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表