%pca提取前5列子载波
clc;
clear all;
close all;
for shu=1:15
name_pre='AYL';
name_bre='5.0_';
name_bet=num2str(shu);
name_ext='.dat';
name= [name_pre,name_bre,name_bet,name_ext];
csi_trace = read_bf_file(name);
signal=[];
amplitude=[];
phase=[];
for i=1:length(csi_trace) %先提取出全部的幅值和相位
csi_entry = csi_trace{i};
time(i,1)=csi_entry.timestamp_low;
csi{i,1} = get_scaled_csi(csi_entry); % Converts a CSI struct to a channel matrix H
signal{i,1}=csi{i,1};
amplitude{i,1}=abs(signal{i,1});
phase{i,1}=angle(signal{i,1});
end
a=[];
b=[];
p=[];
p1=[];
am=[];
ph=[];
amm=[];
phh=[];
for j=1:length(csi_trace) %提取出每一个信道的幅值和相位,此时幅值和相位还是cell形式
for l=1:3 %l是接收端信道的个数
a{j,1}=amplitude{j,1};
b{j,1}=phase{j,1};
p=a{j,1};
p1=b{j,1};
[x y z]=size(p(:,:,:));
if x==2
am{j,l}=p(1,l,:);
amm{j,l}=p(2,l,:);
ph{j,l}=p1(1,l,:);
phh{j,l}=p1(2,l,:);
else x==1
am{j,l}=p(1,l,:);
amm{j,l}=p(1,l,:);
ph{j,l}=p1(1,l,:);
phh{j,l}=p1(1,l,:);
end
end
end
am1=[];
am2=[];
am3=[];
am4=[];
am5=[];
am6=[];
am11=[];
am22=[];
am33=[];
am44=[];
am55=[];
am66=[];
ph1=[];
ph2=[];
ph3=[];
ph4=[];
ph5=[];
ph6=[];
ph11=[];
ph22=[];
ph33=[];
ph44=[];
ph55=[];
ph66=[];
for m=1:length(csi_trace) %提取出每个信道上的30个子载波的数据
for n=1:30 %n是子载波的个数
am1=am{m,1};
am2{m,n}=am1(1,1,n); %第一个天线组的30个子载波上的幅值
am3=am{m,2};
am4{m,n}=am3(1,1,n); %第二个天线组的30个子载波上的幅值
am5=am{m,3};
am6{m,n}=am5(1,1,n); %第三个天线组的30个子载波上的幅值
am11=amm{m,1};
am22{m,n}=am11(1,1,n); %第四个天线组的30个子载波上的幅值
am33=amm{m,2};
am44{m,n}=am33(1,1,n); %第五个天线组的30个子载波上的幅值
am55=amm{m,3};
am66{m,n}=am55(1,1,n); %第六个天线组的30个子载波上的幅值
ph1=ph{m,1};
ph2{m,n}=ph1(1,1,n); %第一个天线组的30个子载波上的相位
ph3=ph{m,2};
ph4{m,n}=ph3(1,1,n); %第二个天线组的30个子载波上的相位
ph5=ph{m,3};
ph6{m,n}=ph5(1,1,n); %第三个天线组的30个子载波上的相位
ph11=phh{m,1};
ph22{m,n}=ph11(1,1,n); %第四个天线组的30个子载波上的相位
ph33=phh{m,2};
ph44{m,n}=ph33(1,1,n); %第五个天线组的30个子载波上的相位
ph55=phh{m,3};
ph66{m,n}=ph55(1,1,n); %第六个天线组的30个子载波上的相位
end
end
for w=1:30 %对3个信道上30个子载波的幅值和相位去噪
a1=am2(:,w);
a1=cell2mat(a1);
eval(['a1_',num2str(w),'=','a1']); %提取的数据是未经过去噪的
p1=ph2(:,w);
p1=cell2mat(p1);
eval(['p1_',num2str(w),'=','p1']); %提取的数据是未经过去噪的
a2=am4(:,w);
a2=cell2mat(a2);
eval(['a2_',num2str(w),'=','a2']);
p2=ph4(:,w);
p2=cell2mat(p2);
eval(['p2_',num2str(w),'=','p2']);
a3=am6(:,w);
a3=cell2mat(a3);
eval(['a3_',num2str(w),'=','a3']);
p3=ph6(:,w);
p3=cell2mat(p3);
eval(['p3_',num2str(w),'=','p3']);
a4=am22(:,w);
a4=cell2mat(a4);
eval(['a4_',num2str(w),'=','a4']);
p4=ph22(:,w);
p4=cell2mat(p4);
eval(['p4_',num2str(w),'=','p4']);
a5=am44(:,w);
a5=cell2mat(a5);
eval(['a5_',num2str(w),'=','a5']);
p5=ph44(:,w);
p5=cell2mat(p5);
eval(['p5_',num2str(w),'=','p5']);
a6=am66(:,w);
a6=cell2mat(a6);
eval(['a6_',num2str(w),'=','a6']);
p6=ph66(:,w);
p6=cell2mat(p6);
eval(['p6_',num2str(w),'=','p6']);
end
A1=[];
A11=[];
A2=[];
A22=[];
A3=[];
A33=[];
A4=[];
A44=[];
A5=[];
A55=[];
A6=[];
A66=[];
P1=[];
P11=[];
P2=[];
P22=[];
P3=[];
P33=[];
P4=[];
P44=[];
P5=[];
P55=[];
P6=[];
P66=[];
for y=1:30
A1=eval(['[A1, a1_' num2str(y) ']']); %第一个天线组的30个子载波的幅值
A2=eval(['[A2, a2_' num2str(y) ']']); %第二个天线组的30个子载波的幅值
A3=eval(['[A3, a3_' num2str(y) ']']); %第三个天线组的30个子载波的幅值
A4=eval(['[A4, a4_' num2str(y) ']']); %第四个天线组的30个子载波的幅值
A5=eval(['[A5, a5_' num2str(y) ']']); %第五个天线组的30个子载波的幅值
A6=eval(['[A6, a6_' num2str(y) ']']); %第六个天线组的30个子载波的幅值
P1=eval(['[P1, p1_' num2str(y) ']']); %第一个天线组的30个子载波的幅值
P2=eval(['[P2, p2_' num2str(y) ']']); %第二个天线组的30个子载波的幅值
P3=eval(['[P3, p3_' num2str(y) ']']); %第三个天线组的30个子载波的幅值
P4=eval(['[P4, p4_' num2str(y) ']']); %第四个天线组的30个子载波的幅值
P5=eval(['[P5, p5_' num2str(y) ']']); %第五个天线组的30个子载波的幅值
P6=eval(['[P6, p6_' num2str(y) ']']); %第六个天线组的30个子载波的幅值
end
fid=fopen(['F:\论文投稿\7.WiFi信号—步态认证\实验数据\7.密度_实验数据分析\A/','yl5.0_A_time_' num2str(shu) '.txt'],'wt');
fprintf(fid,'%g\n',time);
fclose(fid);
fmt=repmat('%g\t', 1, 30 );
fmt1=[ fmt(1:end) '\n'];
fid=fopen(['F:\论文投稿\7.WiFi信号—步态认证\实验数据\7.密度_实验数据分析\A/','yl5.0_A_amplitude1_' num2str(shu) '.txt'],'wt');
A11=A1';
fprintf(fid,fmt1,A11);
fclose(fid);
fmt=repmat('%g\t', 1, 30 );
fmt1=[ fmt(1:end) '\n'];
fid=fopen(['F:\论文投稿\7.WiFi信号—步态认证\实验数据\7.密度_实验数据分析\A/','yl5.0_A_amplitude2_' num2str(shu) '.txt'],'wt');
A22=A2';
fprintf(fid,fmt1,A22);
fclose(fid);
fmt=repmat('%g\t', 1, 30 );
fmt1=[ fmt(1:end) '\n'];
fid=fopen(['F:\论文投稿\7.WiFi信号—步态认证\实验数据\7.密度_实验数据分析\A/','yl5.0_A_amplitude3_' num2str(shu) '.txt'],'wt');
A33=A3';
fprintf(fid,fmt1,A33);
fclose(fid);
fmt=repmat('%g\t', 1, 30 );
fmt1=[ fmt(1:end) '\n'];
fid=fopen(['F:\论文投稿\7.WiFi信号—步态认证\实验数据\7.密度_实验数据分析\A/','yl5.0_A_amplitude4_' num2str(shu) '.txt'],'wt');
A44=A4';
fprintf(fid,fmt1,A44);
fclose(fid);
fmt=repmat('%g\t', 1, 30 );
fmt1=[ fmt(1:end) '\n'];
fid=fopen(['F:\论文投稿\7.WiFi信号—步态认证\实验数据\7.密度_实验数据分析\A/','yl5.0_A_amplitude5_' num2str(shu) '.txt'],'wt');
A55=A5';
fprintf(fid,fmt1,A55);
fclose(fid);
fmt=repmat('%g\t', 1, 30 );
fmt1=[ fmt(1:end) '\n'];
fid=fopen(['F:\论文投稿\7.WiFi信号—步态认证\实验数据\7.密度_实验数据分析\A/','yl5.0_A_amplitude6_' num2str(shu) '.txt'],'wt');
A66=A6';
fprintf(fid,fmt1,A66);
fclose(fid);
fmt=repmat('%g\t', 1, 30 );
fmt1=[ fmt(1:end) '\n'];
fid=fopen(['F:\论文投稿\7.WiFi信号—步态认证\实验数据\7.密度_实验数据分析\A/','yl5.0_A_phase1_' num2str(shu) '.txt'],'wt');
P11=P1';
fprintf(fid,fmt1,P11);
fclose(fid);
fmt=repmat('%g\t', 1, 30 );
fmt1=[ fmt(1:end) '\n'];
fid=fopen(['F:\论文投稿\7.WiFi信号—步态认证\实验数据\7.密度_实验数据分析\A/','yl5.0_A_phase2_' num2str(shu) '.txt'],'wt');
P22=P2';
fprintf(fid,fmt1,P22);
fclose(fid);
fmt=repmat('%g\t', 1, 30 );
fmt1=[ fmt(1:end) '\n'];
fid=fopen(['F:\论文投稿\7.WiFi信号—步态认证\实验数据\7.密度_实验数据分析\A/','yl5.0_A_phase3_' num2str(shu) '.txt'],'wt');
P33=P3';
fprintf(fid,fmt1,P33);
fclose(fid);
fmt=repmat('%g\t', 1, 30 );
fmt1=[ fmt(1:end) '\n'];
fid=fopen(['F:\论文投稿\7.WiFi信号—步态认证\实验数据\7.密度_实验数据分析\A/','yl5.0_A_phase4_' num2str(shu) '.txt'],'wt');
P44=P4';
fprintf(fid,fmt1,P44);
fclose(fid);
fmt=repmat('%g\t', 1, 30 );
fmt1=[ fmt(1:end) '\n'];
fid=fopen(['F:\论文投稿\7.WiFi信号—步态认证\实验数据\7.密度_实验数据分析\A/','yl5.0_A_phase5_' num2str(shu) '.txt'],'wt');
P55=P5';
fprintf(fid,fmt1,P55);
fclose(fid);
fmt=repmat('%g\t', 1, 30 );
fmt1=[ fmt(1:end) '\n'];
fid=fopen(['F:\论文投