关于c++:QT-绘制波形图频谱图瀑布图星座图眼图语图

2次阅读

共计 1864 个字符,预计需要花费 5 分钟才能阅读完成。

阐明

最近在学中频信号处理的一些货色,顺便用 QT 写了一个小工具,能够显示信号的时域波形图、幅度谱、功率谱、二次方谱、四次方谱、八次方谱、刹时包络、刹时频率、刹时相位、非线性刹时相位、刹时幅度直方图、刹时频率直方图、刹时相位直方图、眼图、星座图、语谱图、瀑布图。

1. 实现思路

工具为纯 C++ 开发,包含频谱计算以及图像可视化。这里简述下实现思路,应用到了以下第三方库:

  • QCustomPlot 绘图库。
  • FFTW 傅氏变换库。
  • FreeGlut 工具包。

频谱计算局部,通过调用 FFTW 的 C++ 接口,同时开启 OpenMP 多核反对,能够取得很快的计算速度,比 MATLAB 还快,工具中的 所有频谱都是在点击按钮时现算的。在我的电脑上(8 核 Intel i7-6700HQ CPU @ 2.60GHz),实测对 33554432 长度(2 的 25 次方)的双精度浮点数组进行傅里叶变换,两种形式的耗时如下:

  • MATLAB 的 fft 函数耗时 629 毫秒。
  • C++ 调用 FFTW 接口并开启 OpenMP 多核反对,耗时 390 毫秒。

图像可视化局部,应用 QCustomPlot 实现图像绘制,并联合 FreeGlut 工具开启 OpenGL 反对,绘图品质及响应速度也失去了较好的晋升,大数据显示并进行交互时不会呈现卡顿。为了进一步晋升速度,还批改了 QCustomPlot 的局部源码,将数据更新接口裸露进去,应用 memcpy() 间接对原始绘图数据所在的内存块进行操作,晋升数据更新的速度。主界面如下:

2. 时域波形图

测试信号:2FSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,信号频率 62216 Hz 与 79992Hz,文件大小 64 MB。波形显示时做了贝塞尔平滑解决。

3. 幅度谱

测试信号:2FSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,信号频率 62216 Hz 与 79992Hz,文件大小 64 MB。

4. 功率谱

测试信号:2FSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,信号频率 62216 Hz 与 79992Hz,文件大小 64 MB。

5. 二次方谱

测试信号:8PSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,载波频率 71104 Hz,文件大小 64 MB。

6. 四次方谱

测试信号:8PSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,载波频率 71104 Hz,文件大小 64 MB。

7. 八次方谱

测试信号:8PSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,载波频率 71104 Hz,文件大小 64 MB。

8. 刹时包络

测试信号:8PSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,载波频率 71104 Hz,文件大小 64 MB。

9. 刹时频率

测试信号:2FSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,信号频率 62216 Hz 与 79992Hz,文件大小 64 MB。

10. 刹时相位

测试信号:8PSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,载波频率 71104 Hz,文件大小 64 MB。

11. 非线性刹时相位

测试信号:8PSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,载波频率 71104 Hz,文件大小 64 MB。

12. 刹时幅度直方图

测试信号:8PSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,载波频率 71104 Hz,文件大小 64 MB。

13. 刹时频率直方图

测试信号:2FSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,信号频率 62216 Hz 与 79992Hz,文件大小 64 MB。

14. 刹时相位直方图

测试信号:8PSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,载波频率 71104 Hz,文件大小 64 MB。

15. 眼图

测试信号:8PSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,基带信号,文件大小 64 MB。

16. 星座图

测试信号:8PSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,载波频率 71104 Hz,文件大小 64 MB。

17. 语谱图

测试信号:2FSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,信号频率 62216 Hz 与 79992Hz,文件大小 64 MB。从计算到显示总耗时不超过 1 秒。

18. 瀑布图

测试信号:2FSK 调制,调制速率 8888 Baud/s,采样率 284416 Hz,信号频率 62216 Hz 与 79992Hz,文件大小 64 MB。谱线为实时计算。因为 GIF 上传大小限度为 5 MB,录制为 GIF 时做了品质损失。

正文完
 0