【更新20230316】MATLAB脚本《UntitledProgram.m》使用说明
本脚本测试软件:①MATLAB R2019b;②SleepSign2-OBI
下载地址:https://wwxr.lanzoum.com/b04dsjohg 密码:blct
历史版本:https://wwxr.lanzoum.com/b04dsp7sb 密码:ayzl

目录
运行脚本
自定义文件信号采样率和单元格时间
绘制信号典型图
绘制时频谱图
参考资料

运行脚本
使用MATLAB打开UntitledProgram.m,或双击UntitledProgram.exe直接运行。

运行脚本打开程序界面,点击右下角@Instruction可跳转使用说明。


自定义文件信号采样率和单元格时间

File Sampling Rate:
文件采样率,即信号幅值文件中每秒显示的信号个数。在脑波记录软件VitalRecorder中可以更改,通常为128Hz。
Epoch Time:
单元格时间,在使用脑波分析软件SleepSign导出数据前可以更改,根据实际填写即可,默认为4s。

绘制信号典型图

点击Typical Graph,选择使用SleepSign的text output功能导出的幅值文件。导出一列幅值即可,导出多列也只能绘制第一列幅值。


其中频域图像较密集,放大可见柱体。

点击“文件”→“另存为”,保存为svg矢量图,可导入Adobe Illustrator进一步修补美化。


绘制时频谱图

点击Spectrogram,选择使用SleepSign的text output和FFT功能导出幅值与能谱文件。

其中幅值文件需导出两列信号,第一列为EEG,第二列为EMG。

依次导入所需文件,幅值图和时频图绘制互不影响,如果只需要时频图,随便打开一份幅值信号即可。

时频图可选择绘制原图或拟合后的平滑图,参考效果如下:

N越大耗时越长,绘制时会显示等待条。但由于刷新等待条进度的动画需耗费5s左右,在N数低时较浪费时间,故这版代码暂不予显示。

点击“文件”→“另存为”,保存为svg矢量图,可导入Adobe Illustrator进一步修补美化。


参考资料
[1] MathWorks官网:https://ww2.mathworks.cn/help/matlab/referencelist.html
[2] 知乎《傅里叶分析之掐死教程(完整版)》:https://zhuanlan.zhihu.com/p/19763358
[3] CSDN《【STM32F407的DSP教程】第27章 FFT的示波器应用》:https://blog.csdn.net/Simon223/article/details/106402717
[4] bilibili《matlab实现FFT算法》:https://www.bilibili.com/video/BV1i14y1K7Bq
[5] 知乎《[振动与测试 2] 什么是PSD(功率谱密度)》:https://zhuanlan.zhihu.com/p/49328001
[6] 知乎《信号频域分析方法的理解(频谱、能量谱、功率谱)》:https://zhuanlan.zhihu.com/p/441559677
[7] CSDN《Matlab打包可独立运行的exe可执行文件》:https://blog.csdn.net/thlzzz/article/details/109697423
[8] CSDN《Matlab中imagesc用法》:https://blog.csdn.net/qq_21449473/article/details/123083741
[9] CSDN《matlab添加进度条(waitbar)》:https://blog.csdn.net/weixin_43465015/article/details/89294079
由于从零学起参考内容太过琐碎,大多数函数在官网均可查,故此处仅列出部分参考资料。
我尽可能将每段代码的含义在脚本文件中用中文备注出来,详见每段代码“%”后的内容。