📄 sagst_chracter.m
字号:
%电压突降(voltage sag)的ST变换
clc;clear;
%电压突降sag
t=0:319; %(600/32=18.75个周期,每个周期可采样32个点,因为基频50赫兹,采样频率1.6KHZ);
w0=100*pi;%w0=2*pi/T=100*pi,T=0.02;
%t1=64;t2=224;%电压凹陷起止时间设定为第3个周波到第7个周波;
t1=randint(1,1,[10,63]);t2=randint(1,1,[64,320]);
y1=stepfun(t,t1);y2=stepfun(t,t2);
y3=y1-y2;
a=randint(1,1,[100 900])/1000;
data=(1-a*y3).*sin(w0*0.000625*t);%%%%%产生SAG信号
noise=awgn(data,30,'measured');%产生30dB的高斯白噪声
data_noise=data+noise;%将产生的30dB高斯白噪声迭加到SAG信号中
%figure;
%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变换工频幅值曲线');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ss=abs(st_matrix);
[m,n]=size(ss);
ss_t=zeros(1,n);
for i=1:n
sum=0;
for j=1:m
sum=sum+ss(j,i).*ss(j,i);
end
mean=sum/m;
ss_t(1,i)=mean;
end
figure;plot(ss_t);title('S矩阵各列的平方和均值');
ss_f=zeros(1,m);
for i=1:m
sum=0;
for j=1:n
sum=sum+ss(i,j)*ss(i,j);
end
mean=sum/n;
ss_f(1,m)=mean;
end
figure;plot(ss_f);title('S矩阵各行的平方和均值?????');
figure;
subplot(3,2,1);plot(t,data);title('电压突降信号 no noise');
subplot(3,2,3);plot(m_column);title('S变换的列向量的极大值图');
subplot(3,2,5);plot(ss_t);title('S矩阵各列的平方和均值');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -