⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tan12.m

📁 3D加速信号处理
💻 M
📖 第 1 页 / 共 2 页
字号:
FileName='running22.txt';
MK=importdata(FileName); 
MK1=MK(:,1);MK2=MK(:,2);MK3=MK(:,3);

%坐标选取
MK1min=min(MK1);MK2min=min(MK2);MK3min=min(MK3);
MK1max=max(MK1);MK2max=max(MK2);MK3max=max(MK3);
Xmin=0;
Xmax=(round(size(MK,1)/500)+1)*500;
Y1min=round(MK1min/50)*50;
Y2min=round(MK2min/50)*50;
Y3min=round(MK3min/50)*50;
Y1max=(round(MK1max/50)+1)*50;
Y2max=(round(MK2max/50)+1)*50;
Y3max=(round(MK3max/50)+1)*50;

%选取归一化的零点并作归一化运算(选初始状态作为基准)
AverageT1=mean(MK1(1:100));
Tq1=find(abs(MK1-AverageT1)>=5);
Tq4=Tq1(10);
Average1=mean(MK1(1:(Tq4-50)));
Nor1=(max(MK1)-Average1)/0.9;
NorMK1=(MK1(:)-Average1)/Nor1;%
AverageT2=mean(MK2(1:100));
Tq2=find(abs(MK2-AverageT2)>=5);
Tq5=Tq2(10);
Average2=mean(MK2(1:(Tq5-50)));
Nor2=(max(MK2)-Average2)/0.9;
NorMK2=(MK2(:)-Average2)/Nor2;%
AverageT3=mean(MK3(1:100));
Tq3=find(abs(MK3-AverageT3)>=5);
Tq6=Tq3(10);
Average3=mean(MK3(1:(Tq6-50)));
Nor3=(max(MK3)-Average3)/0.9;
NorMK3=(MK3(:)-Average3)/Nor3;%

%为消除使用filter函数制成的偏移,对原向量前后添项
%偏移量(200/2)
Temp1=NorMK1(1:200);
Temp1(201:(size(NorMK1,1)+200))=NorMK1(:);
Temp1(size(Temp1):(size(Temp1)+100))=NorMK1((size(NorMK1)-100):size(NorMK1));%
Temp2=NorMK2(1:200);
Temp2(201:(size(NorMK2,1)+200))=NorMK2(:);
Temp2(size(Temp2):(size(Temp2)+100))=NorMK2((size(NorMK2)-100):size(NorMK2));%
Temp3=NorMK3(1:200);
Temp3(201:(size(NorMK3,1)+200))=NorMK3(:);
Temp3(size(Temp3):(size(Temp3)+100))=NorMK3((size(NorMK3)-100):size(NorMK3));%

%去重力的归一化信号
window=ones(1,200)/200;
T1=filter(window,1,Temp1);
T1(1:300)=[];%删除增加项
NorMK1_DH=NorMK1-T1;%
T2=filter(window,1,Temp2);
T2(1:300)=[];%删除增加项
NorMK2_DH=NorMK2-T2;%
T3=filter(window,1,Temp3);
T3(1:300)=[];%删除增加项
NorMK3_DH=NorMK3-T3;%

%为消除使用filter函数制成的偏移,对原向量前后添项
%偏移量(5/2取整)
Temp4=NorMK1_DH(1:5);
Temp4(6:(size(NorMK1_DH,1)+5))=NorMK1_DH(:);
Temp4(size(Temp4):(size(Temp4)+2))=NorMK1_DH((size(NorMK1_DH)-2):size(NorMK1_DH));%
Temp5=NorMK2(1:5);
Temp5(6:(size(NorMK2_DH,1)+5))=NorMK2_DH(:);
Temp5(size(Temp5):(size(Temp5)+2))=NorMK2_DH((size(NorMK2_DH)-2):size(NorMK2_DH));%
Temp6=NorMK3(1:5);
Temp6(6:(size(NorMK3_DH,1)+5))=NorMK3_DH(:);
Temp6(size(Temp6):(size(Temp6)+2))=NorMK3_DH((size(NorMK3_DH)-2):size(NorMK3_DH));%
%偏移量(7/2取整)
Temp7=NorMK1_DH(1:7);
Temp7(8:(size(NorMK1_DH,1)+7))=NorMK1_DH(:);
Temp7(size(Temp7):(size(Temp7)+3))=NorMK1_DH((size(NorMK1_DH)-3):size(NorMK1_DH));%
Temp8=NorMK2_DH(1:7);
Temp8(8:(size(NorMK2_DH,1)+7))=NorMK2_DH(:);
Temp8(size(Temp8):(size(Temp8)+3))=NorMK2_DH((size(NorMK2_DH)-3):size(NorMK2_DH));%
Temp9=NorMK3_DH(1:7);
Temp9(8:(size(NorMK3_DH,1)+7))=NorMK3_DH(:);
Temp9(size(Temp9):(size(Temp9)+3))=NorMK3_DH((size(NorMK3_DH)-3):size(NorMK3_DH));%

%滤波器的设计
b1=[0.2 0.2 0.2 0.2 0.2];  %均值
b2=[0.1 0.1 0.6 0.1 0.1];  %中值
b3=[0.073 0.118 0.618 0.118 0.073];  %中值(黄金分割)
b4=[-0.1 -0.1 1.4 -0.1 -0.1];
b5=1/7*ones(1,7);
b6=[0.08 0.08 0.08 0.52 0.08 0.08 0.08];
b7=[0.019 0.054 0.118 0.618 0.118 0.054 0.019];
b8=[-0.0667 -0.0667 -0.0667 1.4 -0.0667 -0.0667 -0.0667];

%经各种滤波器处理后的信号
%b1
T1=filter(b1,1,Temp4);
T1(1:7)=[];
NorMK1_DH_b1=T1;%
T2=filter(b1,1,Temp5);
T2(1:7)=[];
NorMK2_DH_b1=T2;%
T3=filter(b1,1,Temp6);
T3(1:7)=[];
NorMK3_DH_b1=T3;%
%b2
T1=filter(b2,1,Temp4);
T1(1:7)=[];
NorMK1_DH_b2=T1;%
T2=filter(b2,1,Temp5);
T2(1:7)=[];
NorMK2_DH_b2=T2;%
T3=filter(b2,1,Temp6);
T3(1:7)=[];
NorMK3_DH_b2=T3;%
%b3
T1=filter(b3,1,Temp4);
T1(1:7)=[];
NorMK1_DH_b3=T1;%
T2=filter(b3,1,Temp5);
T2(1:7)=[];
NorMK2_DH_b3=T2;%
T3=filter(b3,1,Temp6);
T3(1:7)=[];
NorMK3_DH_b3=T3;%
%b4
T1=filter(b4,1,Temp4);
T1(1:7)=[];
NorMK1_DH_b4=T1;%
T2=filter(b4,1,Temp5);
T2(1:7)=[];
NorMK2_DH_b4=T2;%
T3=filter(b4,1,Temp6);
T3(1:7)=[];
NorMK3_DH_b4=T3;%
%b3+b4
%偏移量补偿
Temp11=T1(1:5);
Temp11(6:(size(T1,1)+5))=T1(:);
Temp11(size(Temp11):(size(Temp11)+2))=T1((size(T1)-2):size(T1));%
Temp12=T2(1:5);
Temp12(6:(size(T2,1)+5))=T2(:);
Temp12(size(Temp12):(size(Temp12)+2))=T2((size(T2)-2):size(T2));%
Temp13=T3(1:5);
Temp13(6:(size(T3,1)+5))=T3(:);
Temp13(size(Temp13):(size(Temp13)+2))=T3((size(T3)-2):size(T3));%
T1=filter(b4,1,Temp11);
T1(1:7)=[];
NorMK1_DH_b3b4=T1;%
T2=filter(b4,1,Temp12);
T2(1:7)=[];
NorMK2_DH_b3b4=T2;%
T3=filter(b4,1,Temp13);
T3(1:7)=[];
NorMK3_DH_b3b4=T3;%

%b5
T1=filter(b5,1,Temp7);
T1(1:10)=[];
NorMK1_DH_b5=T1;%
T2=filter(b5,1,Temp8);
T2(1:10)=[];
NorMK2_DH_b5=T2;%
T3=filter(b5,1,Temp9);
T3(1:10)=[];
NorMK3_DH_b5=T3;%
%b6
T1=filter(b6,1,Temp7);
T1(1:10)=[];
NorMK1_DH_b6=T1;%
T2=filter(b6,1,Temp8);
T2(1:10)=[];
NorMK2_DH_b6=T2;%
T3=filter(b6,1,Temp9);
T3(1:10)=[];
NorMK3_DH_b6=T3;%
%b7
T1=filter(b7,1,Temp7);
T1(1:10)=[];
NorMK1_DH_b7=T1;%
T2=filter(b7,1,Temp8);
T2(1:10)=[];
NorMK2_DH_b7=T2;%
T3=filter(b7,1,Temp9);
T3(1:10)=[];
NorMK3_DH_b7=T3;%
%b8
T1=filter(b8,1,Temp7);
T1(1:10)=[];
NorMK1_DH_b8=T1;%
T2=filter(b8,1,Temp8);
T2(1:10)=[];
NorMK2_DH_b8=T2;%
T3=filter(b8,1,Temp9);
T3(1:10)=[];
NorMK3_DH_b8=T3;%
%b7+b8
%偏移量补偿
Temp11=T1(1:7);
Temp11(8:(size(T1,1)+7))=T1(:);
Temp11(size(Temp11):(size(Temp11)+3))=T1((size(T1)-3):size(T1));%
Temp12=T2(1:7);
Temp12(8:(size(T2,1)+7))=T2(:);
Temp12(size(Temp12):(size(Temp12)+3))=T2((size(T2)-3):size(T2));%
Temp13=T3(1:7);
Temp13(8:(size(T3,1)+7))=T3(:);
Temp13(size(Temp13):(size(Temp13)+3))=T3((size(T3)-3):size(T3));%
T1=filter(b8,1,Temp11);
T1(1:10)=[];
NorMK1_DH_b7b8=T1;%
T2=filter(b8,1,Temp12);
T2(1:10)=[];
NorMK2_DH_b7b8=T2;%
T3=filter(b8,1,Temp13);
T3(1:10)=[];
NorMK3_DH_b7b8=T3;%

%作图
h0=figure('position',[50 50 900 650],...%'toolbar','none',...    
    'name','3D加速信号的预处理');
subplot(811);
plot(NorMK1,'r');grid on;ylabel('Signal 1');
subplot(812);
plot(NorMK1_DH,'r');grid on;

subplot(813);
plot(NorMK2,'b');grid on;ylabel('Signal 2');
subplot(814);
plot(NorMK2_DH,'b');grid on;

subplot(815);
plot(NorMK3,'m');grid on;ylabel('Signal 3');
subplot(816);
plot(NorMK3_DH,'m');grid on;

%Button的设计
h=[2000 3000];
k=[-0.5 0.5];
zbChange=1;
e1=uicontrol('parent',h0,...
    'style','edit',...
    'string',eval(num2str(h(1))),...
    'horizontalalignment','right',...
    'position',[270 120 80 20]);
t1=uicontrol('parent',h0,...    %to get xmin
    'style','text',...
    'string','X轴最小值',...
    'position',[270 145 80 20]);
e2=uicontrol('parent',h0,...
    'style','edit',...
    'string',eval(num2str(h(2))),...
    'horizontalalignment','right',...
    'position',[270 60 80 20]);
t2=uicontrol('parent',h0,...   %to get xmin
    'style','text',...
    'string','X轴最大值',...
    'position',[270 85 80 20]);
e3=uicontrol('parent',h0,...
    'style','edit',...
    'string',eval(num2str(k(1))),...
    'horizontalalignment','right',...
    'position',[370 120 80 20]);
t3=uicontrol('parent',h0,...   %to get ymin
    'style','text',...
    'string','Y轴最小值',...
    'position',[370 145 80 20]);
e4=uicontrol('parent',h0,...
    'style','edit',...
    'string',eval(num2str(k(2))),...
    'horizontalalignment','right',...
    'position',[370 60 80 20]);
t4=uicontrol('parent',h0,...   %to get ymax
    'style','text',...
    'string','Y轴最大值',...
    'position',[370 85 80 20]);
p1=uicontrol('parent',h0,...
    'style','pushbutton',...
    'string','设置',...
    'position',[270 10 50 30],...
    'callback',[...
        'a=str2num(get(e1,''string''));,',...
        'b=str2num(get(e2,''string''));,',...
        'c=str2num(get(e3,''string''));,',...
        'd=str2num(get(e4,''string''));,',...     
        'subplot(8,1,2*zbChange-1),',...
        'axis([a b c d]),',...
        'subplot(8,1,2*zbChange),',...
        'axis([a b c d]),',...        
        'drawnow']);
p2=uicontrol('parent',h0,...
    'style','pushbutton',...
    'string','还原',...
    'position',[340 10 50 30],...
    'callback',[...
        'subplot(811);',...
        'axis([Xmin Xmax -1 1]);',...
        'subplot(812);',...
        'axis([Xmin Xmax -1 1]);',...
        'subplot(813);',...
        'axis([Xmin Xmax -1 1]);',...
        'subplot(814);',...
        'axis([Xmin Xmax -1 1]);',...
        'subplot(815);',...
        'axis([Xmin Xmax -1 1]);',...
        'subplot(816);',...
        'axis([Xmin Xmax -1 1]);'       
        ]);
p3=uicontrol('parent',h0,...
    'style','pushbutton',...
    'string','关闭',...
    'position',[410 10 50 30],...
    'callback','close');

s1=uicontrol('parent',h0,...
    'units','points',...
    'backgroundcolor',[0.753 0.753 0.753],...
    'listboxtop',0,...
    'position',[100 110 72.75 16.5],...
    'string','坐标纵横比',...
    'style','text',...
    'tag','s1');
r1=uicontrol('parent',h0,...
    'units','points',...
    'backgroundcolor',[0.753 0.753 0.753],...
    'listboxtop',0,...
    'position',[100 90 72.75 16.5],...
    'string','第一组信号',...
    'style','radiobutton',...
    'tag','r1',...
    'value',1,...
    'callback',[...  
        'set(r1,''value'',1);,',...
        'set(r2,''value'',0);,',...
        'set(r3,''value'',0);,',...
        'zbChange=1;']);
r2=uicontrol('parent',h0,...
    'units','points',...
    'backgroundcolor',[0.753 0.753 0.753],...
    'listboxtop',0,...
    'position',[100 65 72.75 16.5],...
    'string','第二组信号',...
    'style','radiobutton',...

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -