%%%周期延拓时将y信号进行周期平移
close all
tic
% [t,a,y] = sim('bianyaqi')
% t(513,:)=[];
% a(513,:)=[];
% y(513,:)=[];
% clear;
%%原始信号
f=50; % 基波信号频率
fs=1600; % 采样频率
N=512; % 采样点
S=zeros(N,N);%生成零阶矩阵
n=0:N-1;
% x=xlsread('A.xlsx','A1:SR1');
% x=y(:,1);
% x=x';
%x=ScopeData(:,4);
%x=x';
x=sin(2*pi*f*n/fs);% 标准正弦
%x=sin(2*pi*f*n/fs+2/3*pi);
%x=sin(2*pi*f*n/fs)-((n>=150)&(n<=300)).*(0.5*sin(2*pi*f*n/fs));%短路
%x=sin(2*pi*f*n/fs)+0.3*sin(6*pi*f*n/fs)+0.2*sin(10*pi*f*n/fs);
%x=sin(2*pi*f*n/fs)-((n>=30)&(n<=512)).*((0.2-n/(5*(N-1))).*sin(2*pi*f*n/fs));%感应电动机
%x=sin(2*pi*f*n/fs+2/3*pi)-((n>=100)&(n<=(512))).*(0.2*sin(2*pi*f*n/fs+2/3*pi))+(0.15)*sin(4*pi*f*n/fs+2/3*pi).*((n>=100)&(n<=(512)))+(0.2)*sin(8*pi*f*n/fs+2/3*pi).*((n>=100)&(n<=(512)))+((n>=100)&(n<=512)).*((n-100)/3000).*sin(2*pi*f*n/fs+2/3*pi);
%变压器
%Diejia_D = awgn(x,45);%加入高斯噪音
%%%原始信号的离散傅立叶变换函数的产生
X=[fft(x,N),fft(x,N)];
%%%窗函数的产生
W=zeros(N-1,N);
S=zeros(N,N);
m=[0:1:N-1];%列向量0,1,2,......
for n=1:N-1;
W=exp((-2*pi^2*m.^2)/((n.^(0.87+0.87)))); %W=exp((-2*pi^2*m.^2)/(n*n));%高斯窗函数
S(n+1,:) = ifft(X((n+1):(N+n)) .* W); %S变换,快速傅立叶变换逆变换
end
S0=(1/N).*sum(fft(x,N),2);
S(1,:)=S0;
for n=1:N/2
S1(n,:)=S(n,:);
end
ST=abs(S1);%绝对值,模
AMP=ST.^2; %ST为S变换模矩阵平方
ST2=mean(AMP,2); %频率幅值平方和均值 电压暂降的谐波检测
ST4=max(ST,[],2); %频率幅值包络线 电压暂降的谐波检测
ST3=max(ST); %时间幅值包络线 电压暂降幅值的检测
% Amp=ST(17,:);第十七行所有列 17=f*N/fs+1 电压暂降幅值的检测
ST5=ST(f*N/fs+1,:); %f*N/fs+1为基频所对应的行坐标 电压暂降幅值的检测
TmA=ST(11*f*N/fs+1,:);%S模矩阵中11倍基频行向量 突变点 电压暂降持续时间的检测
ST6=mean(AMP,1); %时间幅值平方和均值 电压暂降持续时间的检测
phase=angle(S1(82,:));%相位角 电压暂降相位跳变的检测
for n=1:N-1
Ph(n)=abs(phase(n+1)-phase(n));
end
x1=0:fs/N:fs*(N-1)/N;
y1=0:N-1;
%Amp=max(ST)
%figure(2);
%plot(Amp);
%title('基频幅值');
%xlabel('采样点/个');
%ylabel('幅值/PU');
%for n=1:N/2
% Frq(n)=sum(ST(n,:).^2)/N
%end
%TmA=max(ST(1:256,:));
%TmA=ST(11*f*N/fs+1,:);
figure('color',[1 1 1])
figure(1)
plot(x)
title('电压正弦信号');
xlabel('采样点/个');
ylabel('幅值/PU');
figure('color',[1 1 1])
figure(2);
plot(Ph);
title('相位跳变');
xlabel('采样点/个');
ylabel('幅值/PU');
figure('color',[1 1 1])
figure(3);
subplot(2,1,1) % 电压暂降持续时间的检测
plot(ST6)
title('时间幅值平方和均值');
xlabel('采样点/个');
ylabel('幅值/PU');
subplot(2,1,2) % 电压暂降持续时间的检测
plot(TmA);
title('突变点');
xlabel('采样点/个');
ylabel('幅值/PU');
figure('color',[1 1 1])
figure(4);
subplot(2,1,1)
plot(ST5) % 电压暂降幅值的检测
title('基频幅值');
xlabel('采样点/个');
ylabel('幅值/PU');
subplot(2,1,2) % 电压暂降幅值的检测
plot(ST3)
title('时间幅值包络线');
xlabel('采样点/个');
ylabel('幅值/PU');
figure('color',[1 1 1])
figure(5);
subplot(2,1,1) % 电压暂降的谐波检测
plot(ST2)
title('频率幅值平方和均值');
xlabel('频率');
ylabel('幅值/PU');
subplot(2,1,2)
plot(ST4) % 电压暂降的谐波检测
title('频率幅值包络线');
xlabel('频率');
ylabel('幅值/PU');
figure('color',[1 1 1])
figure(6);
%mesh(x1,y1,abs(S));%画网图
meshc(abs(S1));
title('频率-采样点-幅值三维图');
xlabel('频率');
ylabel('采样点/个');
zlabel('幅值/PU');
toc%秒表计时器