在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的原理框图如下:

相关推荐
SEO_juper9 小时前
别再纠结LLMs.txt了!它背后的真相与最佳使用场景,一文讲透。
开发语言·ai·php·数字营销
g***B7389 小时前
JavaScript在Node.js中的模块系统
开发语言·javascript·node.js
烤麻辣烫10 小时前
黑马程序员大事件后端概览(表现效果升级版)
java·开发语言·学习·spring·intellij-idea
思密吗喽10 小时前
宠物商城系统
java·开发语言·vue·毕业设计·springboot·课程设计·宠物
csbysj202010 小时前
Lua 函数
开发语言
头发还在的女程序员10 小时前
三天搞定招聘系统!附完整源码
开发语言·python
温轻舟10 小时前
Python自动办公工具06-设置Word文档中表格的格式
开发语言·python·word·自动化工具·温轻舟
p***c94910 小时前
PHP在电商中的电商系统
开发语言·php
Z***258010 小时前
JavaScript在Node.js中的Deno
开发语言·javascript·node.js
a***560611 小时前
Windows上安装Go并配置环境变量(图文步骤)
开发语言·windows·golang