• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

先上效果图:

 

 Matlab框架代码:

%% Author Information
% Author: Guoyang Liu
% Email: [email protected]
% 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
提取码可联系我索要


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab系数拟合-fittype发布时间:2022-07-18
下一篇:
利用Matlab对Excel数据表参数进行频谱分析(FFT)的方法 - tuxinbang ...发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap