資源簡介
圓陣波束形成 包括時(shí)延,相移,頻域波束形成相關(guān)知識(shí)

代碼片段和文件信息
function?[powerpowerdBdoasignal_out]=Beamforming_CircleArray(stylemethodscandthitasigRNf0fsW)
%--------------2012-02-17------------------------------
%?圓弧陣波束形成,360度全方位掃描
%?輸入:????????style?:信號(hào)形式?????1---窄帶信號(hào)(單頻信號(hào))????2---寬帶信號(hào)(LFM)
%?????????????method?:?波束形成算法類型??
%?????????????????????????????????“1”---?時(shí)域的時(shí)延波束形成
%?????????????????????????????????“2”---?相移波束形成
%?????????????????????????????????“3”---?頻域波束形成
%?????????????????????????????????“4”---?經(jīng)過三次FFT的頻域波束形成,延遲濾波器和輸入信號(hào)在頻域相乘
%??????????????scan?:?開角范圍(單位:度)
%???????????dthita?:?掃描步長?(單位:度)
%????????????????sig?:?圓陣輸入信號(hào)
%??????????????????R?:?圓陣半徑
%??????????????????N?:?陣元個(gè)數(shù)
%?????????????????f0?:?窄帶的中心頻率或者寬帶的最小頻率
%?????????????????fs?:采樣率
%??????????????????W?:?加權(quán)值
%?輸出:???????power?:能量
%????????????powerdB?:?能量歸一化分貝輸出
%??????????????doa?:?信號(hào)波達(dá)方向(?單位:度)
%?????????signal_out?:?波束在預(yù)成方向上疊加后的輸出信號(hào),每一行代表一個(gè)方向上的輸出
%---------------------------------------------------------
c=1500;??%%默認(rèn)聲速為1500m/s
[sig_Nsig_len]=size(sig);
if(?sig_N?~=?N?)
????error(‘信號(hào)和圓陣個(gè)數(shù)不匹配‘);
end
if?(?style?~=1?&?style?~=2??)
????error(‘請(qǐng)正確選擇輸入信號(hào)類型‘);
end
if?(?method?~=1?&?method?~=2?&?method?~=3?&?method?~=4?)
????error(‘請(qǐng)正確選擇波束形成算法‘);
end
psi?=?2?*?pi?*(0:N-1)?/?N;?%%圓心角
thita=[0:dthita:359]*pi/180;
power=zeros(1length(thita));
scan_begin?=?thita?-?scan?*pi/180/?2;
scan_begin(?scan_begin?0?)?=?scan_begin(?scan_begin?0?)+2*pi;
scan_end?=?thita?+?scan?*?pi/180/?2;
scan_end(scan_end?>=?2*pi)?=?scan_end(scan_end?>=?2*pi)-2*pi;
flag=zeros(length(thita)N);?%%?標(biāo)志位,對(duì)應(yīng)位為1時(shí),表示該號(hào)陣元參與計(jì)算
%%----------??確定預(yù)成方向上參與計(jì)算的陣元號(hào)存入flag中??----
for?a=thita
????????????index=round(a/(dthita*pi/180)+1);
????????????if(?scan_end?(index)?/?(scan_begin?(index)+eps)?<=?(1.0+0.0001))
????????????????flag(indexfind(scan_begin?(index)./?(psi+eps)?<=(1.0+eps)))=1;
????????????????flag(indexfind((psi-eps)?./(scan_end?(index)+eps)?<=?(1.0+eps)))=1;?
????????????else
????????????????flag(indexfind(scan_begin?(index)./(psi+eps)?<=?(1.0+eps)?&?psi?./(scan_end?(index)+eps)<=?(1.0+eps)))=1;
????????????end?
end
%%-------------------------------------------------------------
if(?method?==?1)????????????????%%----??時(shí)延波束形成對(duì)入射信號(hào)不限制,窄帶、寬帶均可??(?method?==?1)?----?
????beishu=1;
????%%----?升采樣(可選)?----
%?????????beishu=10;
%?????????sig=resample(sig.‘beishu1);
%?????????sig=sig.‘;
%?????????fs=fs*beishu;
%?????????sig_len=sig_len*beishu;
????%%------------------------
????MaxTao=round(2*R/c*fs);
????for?a=thita
%?????????a*180/pi
????????sig_buchang=zeros(Nsig_len+MaxTao);
????????index=round(a/(dthita*pi/180)+1);
????????Number_Array_InUse=find(flag(index:)==1);
????????Ntao0=round(R*(1-cos(a-psi(Number_Array_InUse)))/c*fs);
????????for?kk=1:length(Number_Array_InUse)
????????????sig_buchang(Number_Array_InUse(kk)MaxTao-Ntao0(kk)+1:MaxTao-Ntao0(kk)+sig_len)=sig(Number_Array_InUse(kk):);
????????end
????????sig_buchang=resample(sig_buchang.‘1beishu);
????????sig_buchang=sig_buc
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-09-11?15:42??CircleBeamforming\
?????文件????????7420??2014-09-11?15:34??CircleBeamforming\Beamforming_CircleArray.m
?????文件????????3830??2014-02-28?16:41??CircleBeamforming\CreateSignal_CircleArray.m
?????文件????????2040??2014-09-11?15:44??CircleBeamforming\Simulation1.m
評(píng)論
共有 條評(píng)論