在QT中,利用charts库绘制FFT图形

第1章 添加charts库

1.1 .pro工程添加chart库

1.1.1 在.pro工程里面添加charts库

1.1.2 在需要使用的地方添加这两个库函数,顺序一点不要搞错,先添加.pro,否则编译器会找不到这两个.h文件。

第2章 Charts关键绘图函数

2.1 QChart 类

QChart 是绘制图表的核心类,它包含了多个数据序列。对于FFT图管理和展示FFT的频域数据。

1 addSeries(QAbstractSeries *series):

在绘制FFT图时,我们将QLineSeries对象(包含FFT结果)添加到QChart中进行显示.

2 :setTitle(const QString &title)

设置图表的标题,通常可以设置为"FFT Frequency Spectrum"

3: createDefaultAxes()

自动为图表创建默认坐标轴。对于FFT图,需要确保X轴代表频率,Y轴代表幅度,createDefaultAxes()可以帮助设置这些默认轴。

2.2 QValueAxis 类

QValueAxis 是Qt中用于处理数值型坐标轴的类。对于FFT图,X轴通常表示频率,Y轴表示幅度。使用QValueAxis可以精确控制这些坐标轴的范围、标签等

2.2.1 主要函数

1:setRange(min, max)

设置坐标轴的显示范围。在绘制FFT图时,X轴的范围应当根据采样率设置,Y轴的范围则可以根据FFT结果的最大值设置。

2:setLabelFormat(QString format)

设置坐标轴标签的显示格式。对于FFT图,我们可以设置X轴为频率标签(例如每个频点的频率值),Y轴为幅度值(例如每个频点的幅度)

3:setTickCount(int count)

用来设置坐标轴上刻度的数量。这对于展示FFT图时,帮助用户清晰地查看频率和幅度的变化

2.3 QChartView 类

1:setRenderHint 该函数用于设置 QChartView 的图像渲染方式 在绘制折线图(如 FFT 频谱)时,可以显著提升视觉效果

2:QChartView

函数用于设置图表的"橡皮筋"模式(rubber band),即用户可以通过鼠标在图表区域拖出一个矩形选择框,从而放大查看选中区域的数据点。它非常适合查看频谱中某个频率段的细节

模式

QChartView::NoRubberBand:禁用区域选择(默认)

QChartView::RectangleRubberBand:启用矩形区域选择

QChartView::HorizontalRubberBand:只在水平方向启用选择(适合频率缩放)

QChartView::VerticalRubberBand:只在垂直方向启用选择(适合幅度缩放)

3: setInteractive

函数用于启用或禁用图表的交互功能 如果设置为 true,图表将响应鼠标操作,如滚轮缩放、点击拖动等行为

放构造函数里面

2.4 QVector<QPointF>类

在绘制 FFT 频谱时,通常需要处理大量频率点,逐个调用 append(x, y) 效率较低,因此可以借助 QVector<QPointF> 一次性添加所有点

上位机的软件可以通过网络与VPX-404信号处理模块互联,实现FFT显示功能。VPX-404的原理框图如下:

相关推荐
yudiandian201413 分钟前
02 Oracle JDK 下载及配置(解压缩版)
java·开发语言
要加油哦~19 分钟前
JS | 知识点总结 - 原型链
开发语言·javascript·原型模式
鄃鳕36 分钟前
python迭代器解包【python】
开发语言·python
new coder37 分钟前
[c++语法学习]Day10:c++引用
开发语言·c++·学习
驰羽43 分钟前
[GO]GORM 常用 Tag 速查手册
开发语言·后端·golang
Narcissiffo1 小时前
【C语言】str系列函数
c语言·开发语言
workflower1 小时前
软件工程与计算机科学的关系
开发语言·软件工程·团队开发·需求分析·个人开发·结对编程
ajsbxi1 小时前
【Java 基础】核心知识点梳理
java·开发语言·笔记
阿珊和她的猫1 小时前
深入理解与手写发布订阅模式
开发语言·前端·javascript·vue.js·ecmascript·状态模式
懷淰メ1 小时前
python3GUI--模仿百度网盘的本地文件管理器 By:PyQt5(详细分享)
开发语言·python·pyqt·文件管理·百度云·百度网盘·ui设计