📄 harmost_character.m
字号:
%谐波(harmonics)的ST变换
clc;clear;
%谐波harmonics信号的产生
t=0:320;
w0=100*pi;
%t1=64;t2=128;%暂态时间2个T
t1=randint(1,1,[10,63]);t2=randint(1,1,[64,320]);
a3=randint(1,1,[20 1000])/1000;
a5=randint(1,1,[20 1000])/1000;
a7=randint(1,1,[20 1000])/1000;
data=sin(w0*0.000625*t)+a3*sin(3*w0*0.000625*t)+a5*sin(5*w0*0.000625*t)+a7*sin(7*w0*0.000625*t);
noise=awgn(data,30,'measured');%产生30dB的高斯白噪声
data_noise=data+noise;%将产生的30dB高斯白噪声迭加到SAG信号中
%no noise
%以下代码输出相应的图片
subplot(2,4,1);plot(t,data);title('谐波信号 no noise');
[st_matrix,st_time,st_freq]=st(data);%st of the sag signal
subplot(2,4,2);mesh(abs(st_matrix));title('S变换的三维网格图');%画三维网线图
subplot(2,4,3);contourf(abs(st_matrix));title('S变换的三维等高线图');%画等高线图
subplot(2,4,4);plot(st_time,abs(st_matrix));title('S变换的幅值包络线图');%画幅值包络线图
st_matrix_f=(abs(st_matrix))'; %先将st变换后的矩阵转秩,
s=std(st_matrix_f); %以便std函数的输出结果是abs(st_matrix)每行的对应频率的标准差;%%%对S矩阵逐行求方差。
subplot(2,4,5);plot(s);title('S变换的频谱标准差图');%画S变换频谱标准差曲线,即abs(st_matrix)矩阵每行元素的标准差构成的曲线
m_row=max(st_matrix_f);
subplot(2,4,6);plot(m_row);title('S变换的行向量的极大值图');%画对应各频率的行向量的极大值--对应频率
m_column=max(abs(st_matrix));
subplot(2,4,7);plot(m_column);title('S变换的列向量的极大值图');%画对应采样点(即时间)的列向量的极大值--对应时间
x=abs(st_matrix);
xx=x(10,:);subplot(2,4,8);plot(xx);title('S变换工频幅值曲线');
figure;
subplot(4,2,1);plot(t,data);title('谐波信号 no noise');
subplot(4,2,3);plot(s);title('S变换的频谱标准差曲线');
subplot(4,2,5);plot(m_row);title('S变换的最大频谱幅值差曲线');
subplot(4,2,7);plot(xx);title('S变换工频幅值曲线');
figure;mesh(abs(st_matrix));title('S变换的三维网格图');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -