📄 dplresolution.asv
字号:
load DPR_DataSupport DPR_AmpSTD DPR_AmpTEA DPR_AmpTEB;
DPR_RadioSTD_Value=get(findobj('Tag','radiobutton90'),'value');
DPR_RadioTEA_Value=get(findobj('Tag','radiobutton15'),'value');
DPR_RadioTEB_Value=get(findobj('Tag','radiobutton17'),'value');
if DPR_RadioSTD_Value==1
Signal_STD=1;
else
Signal_STD=-1;
end
if DPR_RadioTEA_Value==1
Signal_TEA=1;
else
Signal_TEA=-1;
end
if DPR_RadioTEB_Value==1
Signal_TEB=1;
else
Signal_TEB=-1;
end
handles.DPR_DataSTD_partly=handles.DPR_DataSTD([1:100:x_back2],1);
if DPRCover_PopMenuSTD_Value~=1
handles.DPR_DataSTD_partly=handles.DPR_DataSTD_partly.*handles.Vertical_Factor_STD;
handles.DPR_DataSTD_partly=handles.DPR_DataSTD_partly.*Signal_STD;
handles.DPR_DataSTD_partly=handles.DPR_DataSTD_partly./DPR_AmpSTD;
end
if DPRCover_PopMenuTEA_Value~=4
handles.DPR_DataTEA_partly=handles.DPR_DataTEA([1:100:x_back2],1);
end
if DPRCover_PopMenuTEA_Value~=4 & DPRCover_PopMenuTEA_Value~=1
handles.DPR_DataTEA_partly=handles.DPR_DataTEA_partly.*handles.Vertical_Factor_TEA;
handles.DPR_DataTEA_partly=handles.DPR_DataTEA_partly.*Signal_TEA;
handles.DPR_DataTEA_partly=handles.DPR_DataTEA_partly./DPR_AmpTEA;
end
if DPRCover_PopMenuTEB_Value~=4
handles.DPR_DataTEB_partly=handles.DPR_DataTEB([1:100:x_back2],1);
end
if DPRCover_PopMenuTEB_Value~=4 & DPRCover_PopMenuTEB_Value~=1
handles.DPR_DataTEB_partly=handles.DPR_DataTEB_partly.*handles.Vertical_Factor_TEB;
handles.DPR_DataTEB_partly=handles.DPR_DataTEB_partly.*Signal_TEB;
handles.DPR_DataTEB_partly=handles.DPR_DataTEB_partly./DPR_AmpTEB;
end
Horizon_Interval_partly=handles.Horizon_Interval*100;
[size_x,size_y]=size(handles.DPR_DataSTD_partly);
set(findobj('Tag','edit24'),'String',num2str(size_x));
FF_Filter=1/(Horizon_Interval_partly*2)/1000;
DPR_FilterSTD=str2num(get(findobj('Tag','edit30'),'String'));
save DPR_DataSupport DPR_FilterSTD -append;
Fh_FilterSTD=DPR_FilterSTD/FF_Filter;
f=[0 Fh_FilterSTD Fh_FilterSTD 1];
f_STD=f;
m=[1 1 0 0];
FilterSTD=fir2(101,f,m);
save DPR_DataSupport FilterSTD f_STD -append;
if DPRCover_PopMenuTEA_Value~=4
DPR_FilterTEA=str2num(get(findobj('Tag','edit17'),'String'));
save DPR_DataSupport DPR_FilterTEA -append;
Fh_FilterTEA=DPR_FilterTEA/FF_Filter;
f=[0 Fh_FilterTEA Fh_FilterTEA 1];
f_TEA=f;
m=[1 1 0 0];
FilterTEA=fir2(101,f,m);
save DPR_DataSupport FilterTEA f_TEA -append;
end
if DPRCover_PopMenuTEB_Value~=4
DPR_FilterTEB=str2num(get(findobj('Tag','edit18'),'String'));
save DPR_DataSupport DPR_FilterTEB -append;
Fh_FilterTEB=DPR_FilterTEB/FF_Filter;
f=[0 Fh_FilterTEB Fh_FilterTEB 1];
f_TEB=f;
m=[1 1 0 0];
FilterTEB=fir2(101,f,m);
save DPR_DataSupport FilterTEB f_TEB -append;
end
if DPRCover_PopMenuSTD_Value==1
handles.DPR_DataSTD_partly=handles.DPR_DataSTD_partly./(pi*6e5);
end
handles.DPR_DataSTD_partly=filtfilt(FilterSTD,1,handles.DPR_DataSTD_partly);
S_STD=handles.DPR_DataSTD_partly;
S_STD_Peak=max(S_STD)-S_STD(1,1);
save DPR_DataSupport S_STD S_STD_Peak -append;
if DPRCover_PopMenuSTD_Value==1
V_STD=diff(handles.DPR_DataSTD_partly)/Horizon_Interval_partly;
V_STD=filtfilt(FilterSTD,1,V_STD);
V_STD(size_x,1)=V_STD((size_x-1),1);
elseif DPRCover_PopMenuSTD_Value==2 | DPRCover_PopMenuSTD_Value==3
V_STD=handles.DPR_DataSTD_partly;
end
if DPRCover_PopMenuTEA_Value~=4
if DPRCover_PopMenuTEA_Value==1
handles.DPR_DataTEA_partly=handles.DPR_DataTEA_partly./(pi*6e5);
end
handles.DPR_DataTEA_partly=filtfilt(FilterTEA,1,handles.DPR_DataTEA_partly);
S_TEA=handles.DPR_DataTEA_partly;
S_TEA_Peak=max(S_TEA)-S_TEA(1,1);
save DPR_DataSupport S_TEA S_TEA_Peak -append;
if DPRCover_PopMenuTEA_Value==1
V_TEA=diff(handles.DPR_DataTEA_partly)/Horizon_Interval_partly;
V_TEA=filtfilt(FilterTEA,1,V_TEA);
V_TEA(size_x,1)=V_TEA((size_x-1),1);
elseif DPRCover_PopMenuTEA_Value==2 | DPRCover_PopMenuTEA_Value==3
V_TEA=handles.DPR_DataTEA_partly;
end
end
if DPRCover_PopMenuTEB_Value~=4
if DPRCover_PopMenuTEB_Value==1
handles.DPR_DataTEB_partly=handles.DPR_DataTEB_partly./(pi*6e5);
end
handles.DPR_DataTEB_partly=filtfilt(FilterTEB,1,handles.DPR_DataTEB_partly);
S_TEB=handles.DPR_DataTEB_partly;
S_TEB_Peak=max(S_TEB)-S_TEB(1,1);
save DPR_DataSupport S_TEB S_TEB_Peak -append;
if DPRCover_PopMenuTEB_Value==1
V_TEB=diff(handles.DPR_DataTEB_partly)/Horizon_Interval_partly;
V_TEB=filtfilt(FilterTEB,1,V_TEB);
V_TEB(size_x,1)=V_TEB((size_x-1),1);
elseif DPRCover_PopMenuTEB_Value==2 | DPRCover_PopMenuTEB_Value==3
V_TEB=handles.DPR_DataTEB_partly;
end
end
if DPRCover_PopMenuSTD_Value==2 | DPRCover_PopMenuSTD_Value==3
V_STD=V_STD.*5;
end
if DPRCover_PopMenuTEA_Value==2 | DPRCover_PopMenuTEA_Value==3
V_TEA=V_TEA.*5;
end
if DPRCover_PopMenuTEB_Value==2 | DPRCover_PopMenuTEB_Value==3
V_TEB=V_TEB.*5;
end
x=1:size_x;
plot(x,V_STD,'r')
set(gca,'Color',[0,0,0],'XColor',[0,1/2,0],'YColor',[0,1/2,0]);
grid on;zoom off;zoom xon;
hold on;
if DPRCover_PopMenuTEA_Value~=4
plot(x,V_TEA,'c')
set(gca,'Color',[0,0,0],'XColor',[0,1/2,0],'YColor',[0,1/2,0]);
grid on;zoom off;zoom xon;
hold on;
end
if DPRCover_PopMenuTEB_Value~=4
plot(x,V_TEB,'y')
set(gca,'Color',[0,0,0],'XColor',[0,1/2,0],'YColor',[0,1/2,0]);
grid on;zoom off;zoom xon;
end
if DPRCover_PopMenuSTD_Value==2 | DPRCover_PopMenuSTD_Value==3
V_STD=V_STD./5;
end
if DPRCover_PopMenuTEA_Value==2 | DPRCover_PopMenuTEA_Value==3
V_TEA=V_TEA./5;
end
if DPRCover_PopMenuTEB_Value==2 | DPRCover_PopMenuTEB_Value==3
V_TEB=V_TEB./5;
end
hold off;
title('操作提示:选择速度波形的零线起点和终点','FontSize',10)
[x,y]=ginput;
x_base1=round(x);
size_xbase1=size(x_base1);
x_base1=x_base1(size_xbase1(1,1));
set(findobj('Tag','edit25'),'String',num2str(x_base1));
[x,y]=ginput;
title('')
x_base2=round(x);
size_xbase2=size(x_base2);
x_base2=x_base2(size_xbase2(1,1));
set(findobj('Tag','edit26'),'String',num2str(x_base2));
title('操作提示:选择速度波形的结尾点,单击回车取消选择','FontSize',10)
[x,y]=ginput;
x_base3=round(x);
title('');
if isempty(x_base3)
else
size_xbase3=size(x_base3);
x_base3=x_base3(size_xbase3(1,1));
V_STD=V_STD(1:x_base3,1);
if DPRCover_PopMenuTEA_Value~=4
V_TEA=V_TEA(1:x_base3,1);
end
if DPRCover_PopMenuTEB_Value~=4
V_TEB=V_TEB(1:x_base3,1);
end
end
[size_x,size_y]=size(V_STD);
V_STD=(V_STD-mean(V_STD([x_base1:x_base2],1)));
save DPR_DataSupport V_STD -append;
if DPRCover_PopMenuTEA_Value~=4
V_TEA=(V_TEA-mean(V_TEA([x_base1:x_base2],1)));
save DPR_DataSupport V_TEA -append;
end
if DPRCover_PopMenuTEB_Value~=4
V_TEB=(V_TEB-mean(V_TEB([x_base1:x_base2],1)));
save DPR_DataSupport V_TEB -append;
end
V_STD_max=max(V_STD);
if DPRCover_PopMenuTEA_Value~=4
V_TEA_max=max(V_TEA);
end
if DPRCover_PopMenuTEB_Value~=4
V_TEB_max=max(V_TEB);
end
if DPRCover_PopMenuSTD_Value==3
V_STD_max=num2str('NaN');
if DPRCover_PopMenuTEA_Value~=4
V_TEA_max=num2str('NaN');
end
if DPRCover_PopMenuTEB_Value~=4
V_TEB_max=num2str('NaN');
end
else
if DPRCover_PopMenuTEA_Value==2 | DPRCover_PopMenuTEA_Value==3
V_TEA_max=V_TEA_max.*1000;
end
if DPRCover_PopMenuTEB_Value==2 | DPRCover_PopMenuTEB_Value==3
V_TEB_max=V_TEB_max.*1000;
end
end
save DPR_DataSupport V_STD_max -append;
if DPRCover_PopMenuTEA_Value~=4
save DPR_DataSupport V_TEA_max -append;
end
if DPRCover_PopMenuTEB_Value~=4
save DPR_DataSupport V_TEB_max -append;
end
if DPRCover_PopMenuSTD_Value==1
if DPRCover_PopMenuTEA_Value~=4
if DPRCover_PopMenuTEA_Value==1
Sens_TEA_V=V_TEA_max/V_STD_max;
elseif DPRCover_PopMenuTEA_Value==2
Sens_TEA_V=V_STD_max/V_TEA_max*1000;
elseif DPRCover_PopMenuTEA_Value==3
Sens_TEA_V=V_TEA_max/V_STD_max;
end
save DPR_DataSupport Sens_TEA_V -append;
end
if DPRCover_PopMenuTEB_Value~=4
if DPRCover_PopMenuTEB_Value==1
Sens_TEB_V=V_TEB_max/V_STD_max;
elseif DPRCover_PopMenuTEB_Value==2
Sens_TEB_V=V_STD_max/V_TEB_max*1000;
elseif DPRCover_PopMenuTEB_Value==3
Sens_TEB_V=V_TEB_max/V_STD_max;
end
save DPR_DataSupport Sens_TEB_V -append;
end
end
if DPRCover_PopMenuSTD_Value==2
if DPRCover_PopMenuTEA_Value~=4
if DPRCover_PopMenuTEA_Value==1
Sens_TEA_V=V_TEA_max/V_STD_max;
elseif DPRCover_PopMenuTEA_Value==2
Sens_TEA_V=V_STD_max/V_TEA_max*1000;
elseif DPRCover_PopMenuTEA_Value==3
Sens_TEA_V=V_TEA_max/V_STD_max;
end
save DPR_DataSupport Sens_TEA_V -append;
end
if DPRCover_PopMenuTEB_Value~=4
if DPRCover_PopMenuTEB_Value==1
Sens_TEB_V=V_TEB_max/V_STD_max;
elseif DPRCover_PopMenuTEB_Value==2
Sens_TEB_V=V_STD_max/V_TEB_max*1000;
elseif DPRCover_PopMenuTEB_Value==3
Sens_TEB_V=V_TEB_max/V_STD_max;
end
save DPR_DataSupport Sens_TEB_V -append;
end
end
if DPRCover_PopMenuSTD_Value==3
if DPRCover_PopMenuTEA_Value~=4
Sens_TEA_V=num2str('NaN');
save DPR_DataSupport Sens_TEA_V -append;
end
if DPRCover_PopMenuTEB_Value~=4
Sens_TEB_V=num2str('NaN');
save DPR_DataSupport Sens_TEB_V -append;
end
end
if DPRCover_PopMenuSTD_Value~=3
[flag_var,x_max]=max(V_STD);
pos_y=flag_var/10;
deffer1=abs(V_STD(1:x_max)-pos_y);
deffer2=abs(V_STD((x_max+1):size_x)-pos_y);
[flag_var,pos_x1]=min(deffer1);
[flag_var,pos_x2]=min(deffer2);
pos_x2=pos_x2+x_max;
T_STD_V=(pos_x2-pos_x1)*Horizon_Interval_partly*1e6;
else
T_STD_V=num2str('NaN');
end
save DPR_DataSupport T_STD_V -append;
if DPRCover_PopMenuSTD_Value==1 | DPRCover_PopMenuSTD_Value==2
A_STDY=(filtfilt(filter_diff,1,handles.DPR_DataSTD_partly)./Horizon_Interval_partly^2).*-1;
A_STDY=filtfilt(FilterSTD,1,A_STDY);
size_x=size(A_STDY);
[flag_var,x_max]=max(A_STDY);
pos_y=flag_var/10;
deffer1=abs(A_STDY(1:x_max)-pos_y);
deffer2=abs(A_STDY((x_max+1):size_x(1,1))-pos_y);
[flag_var,pos_x1]=min(deffer1);
[flag_var,pos_x2]=min(deffer2);
pos_x2=pos_x2+x_max;
T_STDY_A=(pos_x2-pos_x1)*Horizon_Interval_partly;
FF_Filter10T=1/(Horizon_Interval_partly*2)/1000;
DPR_FilterSTD10T=10/T_STDY_A/1000;
save DPR_DataSupport DPR_FilterSTD10T -append;
Fh_FilterSTD10T=DPR_FilterSTD10T/FF_Filter10T;
f10T=[0 Fh_FilterSTD10T Fh_FilterSTD10T 1];
m10T=[1 1 0 0];
FilterSTD10T=fir2(101,f10T,m10T);
save DPR_DataSupport FilterSTD10T f10T -append;
end
if DPRCover_PopMenuSTD_Value==1 | DPRCover_PopMenuSTD_Value==2
if get(findobj('Tag','radiobutton19'),'Value')==1
A_STD=diff(V_STD)/Horizon_Interval_partly;
A_STD=filtfilt(FilterSTD10T,1,A_STD);
A_STD(size_x,1)=A_STD((size_x-1),1);
else
A_STD=diff(V_STD)/Horizon_Interval_partly;
A_STD=filtfilt(FilterSTD,1,A_STD);
A_STD(size_x,1)=A_STD((size_x-1),1);
end
elseif DPRCover_PopMenuSTD_Value==3
A_STD=V_STD;
end
if DPRCover_PopMenuTEA_Value~=4
if DPRCover_PopMenuTEA_Value==1 | DPRCover_PopMenuTEA_Value==2
if get(findobj('Tag','radiobutton19'),'Value')==1
A_TEA=diff(V_TEA)/Horizon_Interval_partly;
A_TEA=filtfilt(FilterSTD10T,1,A_TEA);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -