📄 signalanalysis_tracking_programme.m
字号:
%% microphone array signal processing to tracking target moving track.
%% 2005-12-25; MaDengYong;
clc;
clear all;
close all;
fs=48e3;
Ts=1/fs;
cp='third data\';
sr=['F:\2005_11_15\2005_11_15\afternoon_second_group\' cp];
name='194';
%% jiangfan IP:195;
path5=[sr name '\\192.168.0.194-'];
y1 = wavread([path5 num2str(227) '.wav']);
y1_l=length(y1);
%
% figure(1);
% t=[1:y1_l].*Ts;
% plot(t,y1,'r');
% grid;
% break
t_num=4800*1;
nfft=8192;
NFs=fs/nfft;
lp_n=fix(y1_l/t_num);
sfft=zeros(nfft,1);
nF=[-nfft/2+1:nfft/2].';
Fs=nF.*NFs;
for lp1=0:lp_n-1
lp1
lp1_s=lp1*t_num+1;
lp1_e=lp1*t_num+t_num;
s=y1(lp1_s:lp1_e,:);
s_fft=fftshift(fft(s,nfft));
s_fft=abs(s_fft);
sfft=sfft+s_fft.^2;
end
sfft=sfft./lp_n;
max_u=max(sfft);
sfft=sfft./max_u;
figure(3);
plot(Fs,sfft,'r');
grid;
sfft=10.*log10(sfft);
figure(4);
plot(Fs,sfft,'r');
grid;
break;
y2 = wavread([path5 num2str(350) '.wav']);
y3 = wavread([path5 num2str(450) '.wav']);
y4 = wavread([path5 num2str(550) '.wav']);
y5 = wavread([path5 num2str(650) '.wav']);
y6 = wavread([path5 num2str(750) '.wav']);
X5=[y2 y3 y4 y5 y6];
clear y1 y2 y3 y4 y5 y6;
X=X5;
clear X5;
num_s=1/Ts;%% How many ponits every second samples?
X_l=size(X,1);
win_l=4800;
lp_n=fix(X_l/win_l);
sp_t=0;
num1=1024;
f_s=fs/num1;
d_a=0.04;
vs=345;
L=size(X,2);
X_fft=[];
thita=[];
nTs=[];
d_lim=-11;
d_lim=10^(d_lim/10);
x_v=[];
for lp1=1:lp_n-1
lp1
x_v=[x_v;lp1];
% nTs=[nTs;lp1*win_l*Ts+Ts];
% nn=[nn;lp1*win_l+1];
X_s = X( sp_t + lp1 * win_l+ 1 : sp_t + lp1 * win_l + win_l , : );
Xs_fft =fft(X_s,num1);
Xh_fft=Xs_fft(1:num1/2,1);
Xh_fft=abs(Xh_fft);
Xh_fft=Xh_fft.^2;
max_v=max(Xh_fft);
Xh_fft=Xh_fft./max_v;
id_v=search_index(Xh_fft,d_lim)
id_l=length(id_v);
Jc=[];
for sita=-90:90
Js=0;
for lp2=1:id_l
fk=id_v(lp2)*f_s;
Xw=Xs_fft(id_v(lp2),:).';
Dw=steering_f(fk,d_a,vs,L,sita);
Pw=Dw*inv(Dw'*Dw)*Dw';
Rw=Xw*Xw';
Js=Js+trace(Pw*Rw);
end
Jc=[Jc;Js];
end
[max_v,max_i]=max(Jc);
thita=[thita;max_i-91];
end
ph=['F:\2005_10_24\AoA_tracking\' cp 'AoA_tracking_values\'];
p_h=['F:\2005_10_24\AoA_tracking\' cp 'AoA_tracking_figures\'];
save([ph name '_thita'],'thita') ;
figure(1);
% plot(nTs,thita,'r- .','linewidth',2,'markersize',15);
plot(x_v,thita,'r- .','linewidth',2,'markersize',15);
grid;
% set(gca,'xlim',[0,8],'ylim',[-90 90],'linewidth',2,'fontsize',12,'fontweight','bold');
xlabel('Time Axis (Ts)','FontSize',12,'FontWeight','bold');
ylabel('Angle-of-Arrival','FontSize',12,'FontWeight','bold');
title(['Angle-of-Arrival tracking curve-' name],'FontSize',12,'FontWeight','bold');
saveas(gcf,[p_h name]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -