[Matlab] 画信号的CWT,S变换,STFT时频图

摘要:
%%%%%%%%%%%%%%%%%%%%%%%%%%生成信号%%%%%%%%%fs=256;数据_发作=sig1;%data_ normal=负载('010403aa_0082_1.asc');data_ normal=sig2;waveletName='mor1-1';%waveletName='db4';

先上效果图:

[Matlab] 画信号的CWT,S变换,STFT时频图第1张

 Matlab框架代码:

%% Author Information
% Author: Guoyang Liu
% Email: virter1995@outlook.com
% Date: 2019-11-28 (Update 1: 2020-12-14)
% Function: Plot CWT and ST and STFT
% Others:

%% Main
clear;
ThisToolRootPath = pwd;
addpath(genpath(ThisToolRootPath));

%%%%%%%%%%%%%%%%%%%%%%%%%% Generate Signals %%%%%%%%%%%%%%%%%%%%%%%%%%
fs = 256;
f1=10;
f2=20;
f3=25;
f4=15;
t=1/fs:1/fs:4;
sig1=sin(2*pi*f1*t)+sin(2*pi*f2*t);
sig2=sin(2*pi*f3*t)+sin(2*pi*f4*t);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Fs = 256;

% data_seizure = load('010403aa_0021_1.asc');
data_seizure = sig1;

% data_normal = load('010403aa_0082_1.asc');
data_normal = sig2;

selFreqRange = [1,50];
freqPrecision = 1;
waveletName = 'cmor1-1';
% waveletName = 'db4';
gaussianFactor = 1;

% data = data_seizure;

nRow = 7;
nCol = 2;
N_Fig = nRow*nCol;

%% Plot
figure;

% Plot Normal
data = data_normal;

subplot(nRow,nCol,1)
t = (0:length(data)-1)/Fs;
plot(t,data);
xlim([t(1) t(end)]);
% xlabel('Time(s)');
xticklabels([]);
ylabel('Amplitude');
title('Normal');

subplot(nRow,nCol,[3 5])
[NewData,t,f] = FeatureExtract_WaveletSingle(data,Fs,selFreqRange,freqPrecision,waveletName);
imagesc(t,(f),(NewData));
set(gca,'YDir','normal')
% xlabel('Time(s)');
ylabel('Frequency(Hz)');
title(['Wavelet Transform (' waveletName ')']);
xticklabels([]);

subplot(nRow,nCol,[7 9])
[NewData,t,f] = FeatureExtract_STransSingle(data,Fs,selFreqRange,freqPrecision,gaussianFactor);
imagesc(t,(f),(NewData));
set(gca,'YDir','normal')
% xlabel('Time(s)');
ylabel('Frequency(Hz)');
title('Stockwell Transform');
xticklabels([]);

subplot(nRow,nCol,[11 13])
opt.window = Fs;
opt.noverlap = round((Fs/10)*9);
[NewData,t,f] = FeatureExtract_STFTSingle(data,Fs,selFreqRange,opt);
imagesc(t,(f),(NewData));
set(gca,'YDir','normal')
xlabel('Time(s)');
ylabel('Frequency(Hz)');
title('Short Time Fourier Transform');

% Plot Seizure
data = data_seizure;

subplot(nRow,nCol,2)
t = (0:length(data)-1)/Fs;
plot(t,data);
xlim([t(1) t(end)]);
% xlabel('Time(s)');
ylabel('Amplitude');
title('Seizure');
xticklabels([]);

subplot(nRow,nCol,[4 6])
[NewData,t,f] = FeatureExtract_WaveletSingle(data,Fs,selFreqRange,freqPrecision,waveletName);
imagesc(t,(f),(NewData));
set(gca,'YDir','normal')
% xlabel('Time(s)');
ylabel('Frequency(Hz)');
title(['Wavelet Transform (' waveletName ')']);
xticklabels([]);

subplot(nRow,nCol,[8 10])
[NewData,t,f] = FeatureExtract_STransSingle(data,Fs,selFreqRange,freqPrecision,gaussianFactor);
imagesc(t,(f),(NewData));
set(gca,'YDir','normal')
% xlabel('Time(s)');
ylabel('Frequency(Hz)');
title('Stockwell Transform');
xticklabels([]);

subplot(nRow,nCol,[12 14])
opt.window = Fs;
opt.noverlap = round((Fs/10)*9);
[NewData,t,f] = FeatureExtract_STFTSingle(data,Fs,selFreqRange,opt);
imagesc(t,(f),(NewData));
set(gca,'YDir','normal')
xlabel('Time(s)');
ylabel('Frequency(Hz)');
title('Short Time Fourier Transform');

  其中子函数代码百度云盘地址:

链接:https://pan.baidu.com/s/1jMTjoSAhmYxyLMiMkEEs7Q
提取码可联系我索要

免责声明:文章转载自《[Matlab] 画信号的CWT,S变换,STFT时频图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇高效Redis工具类pycharm常用功能下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Unity3D 使用XML进行简单的配置文件改动

1、首先是看看效果图: 開始执行项目例如以下图所看到的 2、点击绿色button改动配置文件再点击改动button成功改动方块颜色 3、接了下是实现的过程: 首先在Hierarchy创建一个cube。其次在Assets下分别创建Scenes和Scripts目录,各自是用来保存的的当前的场景和我们所写的脚本。在Scripts目录以下右键创建一个C#脚本...

钉钉小程序中使用F2图表绘制条形图

预览: 要求: 横向柱状图(条形图); 数据最大的柱状图用橙色(#ff6600),数据最小的柱状图用绿色(#33CC00),中间的数据的柱状图用蓝色(#1890ff); 柱状图颜色渐变,左浅右深; y轴的当前月份加粗,字号加大,不足10月的在月份前加0; 柱状图顶部显示数据大小; 图例显示最大数据和最低数据的颜色。 npm下载F2图表: npm in...

vue.js中v-for的使用及索引获取

2.x版本: v-for="(item,index) in items" index即索引值。  ==========================分割线============================== 1.x版本: 1.v-for   示例一: <!DOCTYPE html> <html> <head>...

Linux LVM扩容和缩容

将原硬盘上的LVM分区/dev/mapper/RHEL-Data由原来的60G扩展到80G Step1:将LVData扩容+20G,如下图: [root@esc data]# lvextend -L +20G /dev/RHEL/Data Size of logical volume RHEL/Data changed from 60.00 GiB (15...

Python操作数据库出现的问题

问题一 我在使用Python操作mysql时出现:pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionAbortedError(10053, '你的主机中的软件中止了一个已建立的连接。', None, 10053, None))")。 问题的出现:我是使用了...

vue 2.0 及 vue 3.0 rem配置

vue 2.0 配置 rem   首先先安装postcss-px2rem    (百度可以) https://www.jianshu.com/p/e6476bbc2131     npm install postcss-px2rem 找到文件 build / vue-loader.config.js  添加 const px2rem = require('...