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

📄 signalanalysis_tracking_programme.m

📁 目标定位和跟踪的源程序
💻 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 + -