频谱/功率谱快速画图程序
最后更新于:2024-04-07 21:45:15
频谱/功率谱快速画图程序用于频谱和功率谱的快速便捷的计算 目前已经可以实现快速画图、去趋势等功能 代码不定期更新中~ 致力于实现优质、易用的程序,帮助研究人员快速实现目标
一、代码运行环境
已测试MATLAB2019,其他版本MATLAB理论上也可以使用。
二、程序介绍
注:图标代表该m文件为脚本文件,可以直接运行;图标代表函数文件,在没有输入变量的情况下无法直接运行。更详细的解释可以看这里。
1.demoSpecAnalysis.m脚本文件
频谱/功率谱画图函数pSpecAnalysis的测试文件,可以直接运行。
2.pSpecAnalysis.m函数文件
对数据进行及频谱分析(画频谱或功率谱),实现一行代码完成频谱/功率谱画图。
function [p,f] = pSpecAnalysis(data,fs,options)
% 对数据进行及频谱分析(画频谱或功率谱)
% 输入:
% data为待分析信号,需要是一维实数
% fs为采样频率,即每秒钟采样点数
% options为可选选项,使用结构体的方式导入,安装自身需求选择是否设置。具体包括:
% options.Detrend :去趋势,设置options.Detrend = 1时,将在做fft前去除data趋势,
% 当画出的频谱图在0频率时出现峰值,可将该选项置1,可以有效抑制0频率的峰值,默认情况不去趋势
% options.analysisType :频谱分析类型,当options.analysisType = ‘fft’时,进行FFT
% 当options.analysisType = ‘psd’时,计算功率谱
% options.psdUnit :功率谱单位,当options.psdUnit = 1时,单位为W/Hz(默认)
% 当options.psdUnit = 2时,单位为分贝dB
% options.plotType :画图种类选择,当options.plotType = 1时,只绘制信号频谱图(默认)
% 当options.plotType = 2时,绘制信号时域图和频谱图在同一张图上(上下两张)
3.kSpecAnalysis.m函数文件
对数据进行及频谱分析,计算fft或psd数值结果,不画图。
function [p,f] = kSpecAnalysis(data,fs,options)
% 对数据进行及频谱分析(画频谱或功率谱)
% 输入:
% data为待分析信号,需要是一维实数
% fs为采样频率,即每秒钟采样点数
% options为可选选项,使用结构体的方式导入,安装自身需求选择是否设置。具体包括:
% options.Detrend :去趋势,设置options.Detrend = 1时,将在做fft前去除data趋势,
% 当画出的频谱图在0频率时出现峰值,可将该选项置1,可以有效抑制0频率的峰值,默认情况不去趋势
% options.analysisType :频谱分析类型,当options.analysisType = ‘fft’时,进行FFT
% 当options.analysisType = ‘psd’时,计算功率谱
% options.psdUnit :功率谱单位,当options.psdUnit = 1时,单位为W/Hz(默认)
% 当options.psdUnit = 2时,单位为分贝dB % 输出:
% p:频谱分析的幅值 % f:频谱分析的频率轴
三、快速开始
1.运行测试脚本
先在MATLAB里打开下载好的文件夹,然后运行demoSpecAnalysis.m程序,程序运行完毕后如果没报错,且画出频谱图像,则说明运行环境正常,程序正确。
2.导入数据
复制一个demoSpecAnalysis.m的文件副本,在这个副本里做如下修改:
根据你的文件类型的不同(excel,txt,csv等),将数据导入MATLAB的方法有所不同。同学们可以看博主针对常用文件的导入方法的这个教程,教程上未包含的数据类型,大家可以再参考这个文档。
如果你已经实现了数据导入,这时候应该拥有了一个一维数据变量,这时候就可以调用函数进行特征提取了。
3.实现画图
参照demoSpecAnalysis.m文件中第二步,pSpecAnalysis函数的调用方法,根据实际采样频率和画图选项修改设置,运行程序即可。
四、获取公开版程序(需使用电脑浏览器打开)
频谱/功率谱画图程序(公开版)
五、获取完整版程序
获取通道一(淘宝):点击此处获取完整版程序
获取通道二(本页面):点击下面“立即支付”按钮,付款后获取完整版代码下载链接和售后联系方式~本通道处于测试阶段,使用该通道可以额外优惠(仅需13元)。付款完成后刷新一下本页面即可看到下载链接。
(注意支付跳转失败的话,请使用浏览器打开本页面)
六、公开版与完整版程序区别
功能 | 完整版 | 公开版 |
数据导入、参数设置、实现频谱/功率谱快速画图 | √ | √ |
软件全部源码(函数m文件) | √ | × |
频谱/功率谱分析数据长度 | 无限制 | 2000个点以内 |
五、重要更新
20230412 修复部分bug
2021221 完成初版代码