| ²é¿´: 1265 | »Ø¸´: 0 | ||
cb123123гæ (СÓÐÃûÆø)
|
[ÇóÖú]
Ïàλ±ä»»·¨¼ÆËãʱÑÓ
|
|
²É¼¯µ½ËĸöͨµÀµÄÒôƵÐźźóÀûÓÃMATLAB½øÐд¦Àí£¬Ê¹ÓÃÏàλ±ä»»·¨£¨PHAT£©¼ÆËãʱÑÓ£¬¿ÉÊǵóöÀ´µÄ½á¹ûÈ´¶¼ÊÇ0£¬³ÌÐòÈçÏÂÇó¸ßÊÖÖ¸µã a=wavread('KinectAudio 211'); b=wavread('KinectAudio 212'); c=wavread('KinectAudio 213'); d=wavread('KinectAudio 214'); l1=length(a); e=1; l2=e*l1; signal=zeros(l2,1); signal1=zeros(l2,1); signal2=zeros(l2,1); signal3=zeros(l2,1); for m=1:e; for n=1:l1; signal(n+(m-1)*l1)=a(n); signal1(n+(m-1)*l1)=b(n); signal2(n+(m-1)*l1)=c(n); signal3(n+(m-1)*l1)=d(n); end end signallength=length(signal); p=1; for n=1:signallength; if 2.^n<(signallength*2); p=p+1; end end assumesignallength=2.^p; signal4=zeros(assumesignallength,1); signal5=zeros(assumesignallength,1); signal6=zeros(assumesignallength,1); signal7=zeros(assumesignallength,1); for n=1:signallength; signal4(n)=signal(n); signal5(n)=signal1(n); signal6(n)=signal2(n); signal7(n)=signal3(n); end cccorrelation=xcorr(signal4,signal5); cccorrelation1=xcorr(signal4,signal6); cccorrelation2=xcorr(signal4,signal7); gcc=zeros((assumesignallength*2-1),1); gcc1=zeros((assumesignallength*2-1),1); gcc2=zeros((assumesignallength*2-1),1); phatfilter=zeros((assumesignallength*2-1),1); phatfilter1=zeros((assumesignallength*2-1),1); phatfilter2=zeros((assumesignallength*2-1),1); crossspectrum=fft(cccorrelation); crossspectrum1=fft(cccorrelation1); crossspectrum2=fft(cccorrelation2); for n=1 assumesignallength*2-1);phatfilter(n)=abs(crossspectrum(n)); phatfilter1(n)=abs(crossspectrum1(n)); phatfilter2(n)=abs(crossspectrum2(n)); gcc(n)=crossspectrum(n)/phatfilter(n); gcc1(n)=crossspectrum1(n)/phatfilter1(n); gcc2(n)=crossspectrum2(n)/phatfilter2(n); end gcccorrelation=ifft(gcc); gcccorrelation1=ifft(gcc1); gcccorrelation2=ifft(gcc2); for n=1 assumesignallength*2-1);gcccorrelation(n)=abs(gcccorrelation(n)); gcccorrelation1(n)=abs(gcccorrelation1(n)); gcccorrelation2(n)=abs(gcccorrelation2(n)); end [gccmaximum,gcctime]=max(gcccorrelation); [gccmaximum1,gcctime1]=max(gcccorrelation1); [gccmaximum2,gcctime2]=max(gcccorrelation2); gccestimation=abs(assumesignallength-gcctime); gccestimation1=abs(assumesignallength-gcctime1); gccestimation2=abs(assumesignallength-gcctime2); gccestimation,gccestimation1,gccestimation2 lag=zeros((assumesignallength*2-1),1); for n=1 assumesignallength*2-1);lag(n)=assumesignallength-n; end subplot(3,1,1); plot(lag,gcccorrelation,'b') axis([-inf inf -inf inf]); legend('MIC12'); subplot(3,1,2); plot(lag,gcccorrelation1,'r') axis([-inf inf -inf inf]); ylabel('cross-correlation'); legend('MIC13'); subplot(3,1,3); plot(lag,gcccorrelation2,'g') axis([-inf inf -inf inf]); legend('MIC14'); xlabel('time lag'); |
» ²ÂÄãϲ»¶
08¹¤¿ÆÇóµ÷¼Á290·Ö
ÒѾÓÐ12È˻ظ´
286Çóµ÷¼Á
ÒѾÓÐ16È˻ظ´
²ÄÁÏÀà284µ÷¼Á
ÒѾÓÐ24È˻ظ´
¿¼Ñе÷¼Á-²ÄÁÏÀà-284
ÒѾÓÐ14È˻ظ´
327Çóµ÷¼Á
ÒѾÓÐ11È˻ظ´
Ò»Ö¾Ô¸985³õÊÔ354·ÖÉúÎïµ÷¼Á
ÒѾÓÐ3È˻ظ´
Ò»Ö¾Ô¸2110£¬»¯Ñ§Ñ§Ë¶310·Ö£¬±¾¿ÆÖصãË«·ÇÇóµ÷¼Á
ÒѾÓÐ13È˻ظ´
353Çóµ÷¼Á
ÒѾÓÐ8È˻ظ´
308Çóµ÷¼Á
ÒѾÓÐ16È˻ظ´
334Çóµ÷¼Á
ÒѾÓÐ14È˻ظ´
ÕÒµ½Ò»Ð©Ïà¹ØµÄ¾«»ªÌû×Ó£¬Ï£ÍûÓÐÓÃŶ~
ÁãÏàλÂ˲¨Æ÷¡¢¸µÀïÒ¶±ä»»¼°Äæ±ä»»Â˲¨Æ÷
ÒѾÓÐ4È˻ظ´
¡¾ÇóÖú¡¿ÔÚmatlabÖÐÈçºÎÓÃÏ£¶û²®Ìر任¶¨ÒåÏàλ
ÒѾÓÐ22È˻ظ´
¿ÆÑдÓСľ³æ¿ªÊ¼£¬ÈËÈËΪÎÒ£¬ÎÒΪÈËÈË













assumesignallength*2-1);
»Ø¸´´ËÂ¥
µã»÷ÕâÀïËÑË÷¸ü¶àÏà¹Ø×ÊÔ´