频谱/功率谱快速画图程序

最后更新于: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元)。付款完成后刷新一下本页面即可看到下载链接。

(注意支付跳转失败的话,请使用浏览器打开本页面)

您需要先支付 13元 才能查看此处内容!立即支付

六、公开版与完整版程序区别

功能完整版公开版
数据导入、参数设置、实现频谱/功率谱快速画图
软件全部源码(函数m文件)×
频谱/功率谱分析数据长度无限制2000个点以内

五、重要更新

20230412 修复部分bug

2021221 完成初版代码