波束方向圖的影響分析)
簡(jiǎn)介本資源是一份面向通信工程、天線(xiàn)設(shè)計(jì)及信號(hào)處理方向初學(xué)者與實(shí)踐者的MATLAB仿真工具包聚焦均勻圓形陣列UCA方向圖建模這一核心問(wèn)題特別對(duì)比分析圓心有/無(wú)陣元兩種典型布陣方式對(duì)波束輻射特性的影響。壓縮包共3個(gè)文件2個(gè)可運(yùn)行的.m主程序腳本 1個(gè)說(shuō)明txt總大小僅2KB輕量易用其中UCA_no_center.m與UCA_have_center.m分別實(shí)現(xiàn)兩種陣列構(gòu)型的方向圖三維可視化并額外繪制方位角與俯仰角平面切片圖直觀呈現(xiàn)波束最大指向特性。已有989人學(xué)習(xí)下載代碼全程中文注釋支持靈活修改陣元數(shù)、陣列半徑、工作頻率及波束指向角度等關(guān)鍵參數(shù)適配課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)或科研快速原型驗(yàn)證。通過(guò)該資源讀者可深入理解圓形陣列空間響應(yīng)機(jī)理掌握MATLAB中陣列因子計(jì)算、球坐標(biāo)采樣、方向圖插值與三維繪圖等關(guān)鍵技術(shù)環(huán)節(jié)。1. 項(xiàng)目概述從陣列天線(xiàn)到MATLAB仿真在無(wú)線(xiàn)通信、雷達(dá)探測(cè)和聲學(xué)成像等領(lǐng)域陣列天線(xiàn)或傳感器陣列是實(shí)現(xiàn)波束形成、信號(hào)定向接收與發(fā)射的核心技術(shù)。其中均勻圓形陣列因其在水平面內(nèi)具備全向?qū)ΨQ(chēng)性能夠?qū)崿F(xiàn)360度無(wú)死角的波束掃描在無(wú)人機(jī)通信、智能天線(xiàn)和聲吶系統(tǒng)中應(yīng)用廣泛。然而一個(gè)看似簡(jiǎn)單的幾何結(jié)構(gòu)背后卻隱藏著兩個(gè)關(guān)鍵的設(shè)計(jì)變體圓心處有無(wú)陣元。這個(gè)微小的差異會(huì)直接影響到陣列的方向圖特性包括主瓣寬度、旁瓣電平以及零點(diǎn)位置進(jìn)而影響整個(gè)系統(tǒng)的性能。今天我們就來(lái)深入探討這兩種均勻圓形陣列的MATLAB仿真實(shí)現(xiàn)。這不僅僅是一段代碼的編寫(xiě)更是一次對(duì)陣列天線(xiàn)基礎(chǔ)理論的實(shí)踐性拆解。通過(guò)MATLAB我們可以直觀地“看見(jiàn)”電磁波或聲波的輻射/接收模式理解陣元位置如何影響波束的“形狀”和“指向”。無(wú)論你是通信工程專(zhuān)業(yè)的學(xué)生還是正在從事相關(guān)研發(fā)的工程師掌握這套從理論推導(dǎo)到代碼實(shí)現(xiàn)的完整流程都將為你深入理解陣列信號(hào)處理打下堅(jiān)實(shí)的基礎(chǔ)。本文將手把手帶你從零開(kāi)始構(gòu)建仿真模型分析對(duì)比結(jié)果并分享我在實(shí)際編碼和調(diào)試中積累的“避坑”經(jīng)驗(yàn)。2. 均勻圓形陣列的理論基石與建模思路在動(dòng)手寫(xiě)代碼之前我們必須先把理論地基打牢。均勻圓形陣列的仿真核心在于計(jì)算其陣列因子。陣列因子描述了陣列幾何結(jié)構(gòu)對(duì)遠(yuǎn)場(chǎng)方向圖的貢獻(xiàn)忽略了單個(gè)陣元自身的輻射特性假設(shè)為各向同性的點(diǎn)源。2.1 陣列幾何與坐標(biāo)定義首先我們明確陣列的幾何模型。考慮一個(gè)半徑為 ( R ) 的圓在圓周上均勻分布著 ( N ) 個(gè)陣元。陣元的位置可以用極坐標(biāo)或直角坐標(biāo)表示。通常我們定義第 ( n ) 個(gè)陣元的方位角為 [ \phi_n \frac{2\pi (n-1)}{N}, \quad n 1, 2, ..., N ] 其直角坐標(biāo)為 [ (x_n, y_n) (R \cos\phi_n, R \sin\phi_n) ] 對(duì)于“圓心有陣元”的情況則在坐標(biāo)原點(diǎn) ((0, 0)) 處額外增加一個(gè)陣元總陣元數(shù)為 ( N1 )。2.2 遠(yuǎn)場(chǎng)方向圖與陣列因子計(jì)算假設(shè)平面波以方位角 ( \phi ) 入射或陣列向該方向輻射波長(zhǎng)為 ( \lambda )。那么波前到達(dá)第 ( n ) 個(gè)陣元相對(duì)于參考點(diǎn)通常取圓心或某個(gè)陣元的波程差所導(dǎo)致的相位差為 [ \Delta \psi_n \frac{2\pi}{\lambda} R \cos(\phi - \phi_n) ] 這里( \cos(\phi - \phi_n) ) 來(lái)源于位置矢量與波矢方向點(diǎn)積的幾何關(guān)系。陣列因子 ( AF(\phi) ) 是所有陣元復(fù)激勵(lì)的疊加。假設(shè)每個(gè)陣元具有相同的激勵(lì)幅度 ( I_n 1 )等幅激勵(lì)并且我們考慮的是波束指向 ( \phi_0 ) 方向的掃描情況那么需要給每個(gè)陣元施加一個(gè)補(bǔ)償相位 ( \beta_n ) [ \beta_n -\frac{2\pi}{\lambda} R \cos(\phi_0 - \phi_n) ] 這樣第 ( n ) 個(gè)陣元的總相位就是 ( \Delta \psi_n \beta_n )。陣列因子表示為 [ AF(\phi) \sum_{n1}^{N} I_n \cdot e^{j k R [\cos(\phi - \phi_n) - \cos(\phi_0 - \phi_n)]} ] 其中( k 2\pi / \lambda ) 是波數(shù)。對(duì)于圓心有陣元的情況求和項(xiàng)中需要額外加上圓心處陣元的貢獻(xiàn)其坐標(biāo)為(0,0)因此波程差始終為0其相位補(bǔ)償也為0如果波束指向不影響它貢獻(xiàn)恒為1。最終我們關(guān)心的方向圖功率模式 ( P(\phi) ) 是陣列因子幅值的平方 [ P(\phi) |AF(\phi)|^2 ] 在仿真中我們會(huì)在 ( \phi ) 從 ( 0 ) 到 ( 2\pi ) 的范圍內(nèi)均勻采樣計(jì)算出一系列 ( P(\phi) ) 的值然后用極坐標(biāo)圖或直角坐標(biāo)圖畫(huà)出來(lái)這就是我們看到的“方向圖”。注意這里的推導(dǎo)基于遠(yuǎn)場(chǎng)假設(shè)和窄帶信號(hào)。遠(yuǎn)場(chǎng)意味著觀察點(diǎn)距離陣列足夠遠(yuǎn)使得入射波可視為平面波。窄帶假設(shè)意味著信號(hào)帶寬足夠小延時(shí)可以用相移來(lái)近似。這是大多數(shù)基礎(chǔ)陣列處理的前提。2.3 兩種陣列的核心差異預(yù)分析在編碼前我們可以從理論上預(yù)判一下兩者的區(qū)別對(duì)稱(chēng)性無(wú)圓心陣元的UCA其陣列因子關(guān)于圓心是中心對(duì)稱(chēng)的在數(shù)學(xué)上滿(mǎn)足某種對(duì)稱(chēng)性。而有圓心陣元的UCA由于中心點(diǎn)的存在破壞了這種嚴(yán)格的圓周對(duì)稱(chēng)性方向圖可能會(huì)在圓心指向的方向上出現(xiàn)獨(dú)特的影響。主瓣寬度增加一個(gè)中心陣元相當(dāng)于在陣列中心增加了一個(gè)強(qiáng)激勵(lì)點(diǎn)。這可能會(huì)使合成的波束在主瓣方向上能量更加集中因?yàn)橹行狞c(diǎn)與圓周上所有點(diǎn)的波程差關(guān)系一致從而可能使主瓣變窄。旁瓣特性中心陣元的加入會(huì)改變陣元間的間距分布。原有的均勻圓周間距被打破引入了從圓心到圓周上各點(diǎn)的一系列新間距。這必然會(huì)改變陣列的干涉圖案可能導(dǎo)致旁瓣電平升高或降低并產(chǎn)生新的零點(diǎn)。方向性系數(shù)方向性系數(shù)描述了陣列將能量集中到某個(gè)方向的能力。中心陣元的加入理論上可能提高陣列在波束指向方向的方向性系數(shù)因?yàn)樗峁┝艘粋€(gè)與所有圓周陣元同相的強(qiáng)貢獻(xiàn)源。這些理論預(yù)測(cè)需要仿真來(lái)驗(yàn)證而仿真的第一步就是搭建一個(gè)正確、清晰、可擴(kuò)展的MATLAB模型。3. MATLAB仿真代碼的逐行構(gòu)建與解析理論清晰后我們開(kāi)始動(dòng)手實(shí)現(xiàn)。一個(gè)好的仿真代碼應(yīng)該模塊清晰、參數(shù)可調(diào)、結(jié)果可視。下面我將分模塊詳細(xì)解析代碼并解釋每一行背后的意圖。3.1 參數(shù)初始化與環(huán)境設(shè)置首先我們定義仿真的基本參數(shù)。這些參數(shù)應(yīng)該放在代碼開(kāi)頭方便修改和實(shí)驗(yàn)。%% 均勻圓形陣列方向圖仿真 - 參數(shù)設(shè)置 clear; clc; close all; % 清空工作區(qū)、命令窗口關(guān)閉所有圖形 % 基本參數(shù) fc 3e9; % 載波頻率單位Hz例如3GHz屬于S波段常用于雷達(dá) c 3e8; % 光速單位m/s lambda c / fc; % 波長(zhǎng)單位m k 2 * pi / lambda; % 波數(shù) % 陣列幾何參數(shù) R 0.5 * lambda; % 圓陣半徑通常取半波長(zhǎng)以抑制柵瓣 N 8; % 圓周上的陣元數(shù)量 has_center_element true; % 標(biāo)志位true表示有圓心陣元false表示無(wú) % 波束掃描參數(shù) phi0_deg 30; % 期望的波束指向方位角單位度 phi0 deg2rad(phi0_deg); % 轉(zhuǎn)換為弧度制MATLAB三角函數(shù)默認(rèn)使用弧度 % 方向圖計(jì)算參數(shù) phi_deg 0:0.5:360; % 方位角采樣點(diǎn)0到360度步進(jìn)0.5度以獲得平滑曲線(xiàn) phi deg2rad(phi_deg); % 轉(zhuǎn)換為弧度 M length(phi); % 采樣點(diǎn)總數(shù)代碼解析與注意事項(xiàng)clear; clc; close all;是MATLAB腳本的好習(xí)慣確保每次運(yùn)行都從一個(gè)干凈的環(huán)境開(kāi)始避免舊變量或圖形窗口的干擾。半徑R設(shè)置為半波長(zhǎng)0.5 * lambda是一個(gè)經(jīng)驗(yàn)值。當(dāng)陣元間距大于半波長(zhǎng)時(shí)在可見(jiàn)區(qū)內(nèi)可能出現(xiàn)多個(gè)與主瓣幅度相同的波瓣稱(chēng)為“柵瓣”這是需要避免的。對(duì)于圓形陣列圓周上的弧線(xiàn)間距近似為 ( 2\pi R / N )我們也應(yīng)保證此間距約等于或小于半波長(zhǎng)。has_center_element是一個(gè)布爾標(biāo)志通過(guò)改變這一個(gè)變量我們就可以輕松切換兩種陣列模型無(wú)需大幅改動(dòng)代碼結(jié)構(gòu)這是編程中重要的靈活性設(shè)計(jì)。方位角采樣步長(zhǎng)0.5度是一個(gè)平衡選擇。步長(zhǎng)太大如5度方向圖會(huì)顯得粗糙丟失細(xì)節(jié)步長(zhǎng)太小如0.1度計(jì)算量增加但對(duì)圖形精度提升有限。0.5度對(duì)于大多數(shù)演示和初步分析已經(jīng)足夠。3.2 陣元位置與激勵(lì)計(jì)算接下來(lái)根據(jù)參數(shù)計(jì)算每個(gè)陣元的位置和為了波束掃描所需的激勵(lì)相位權(quán)值。%% 計(jì)算陣元位置與激勵(lì)權(quán)值 % 生成圓周上N個(gè)陣元的位置極坐標(biāo)角度 phi_n linspace(0, 2*pi, N1); % 生成N1個(gè)點(diǎn)從0到2π phi_n(end) []; % 刪除最后一個(gè)點(diǎn)2π因?yàn)?和2π是重合的我們只需要N個(gè)點(diǎn) % phi_n 現(xiàn)在包含0, 2π/N, 4π/N, ..., 2π(N-1)/N % 計(jì)算直角坐標(biāo) x_n R * cos(phi_n); y_n R * sin(phi_n); % 初始化權(quán)值向量 if has_center_element w ones(N 1, 1); % 幅度權(quán)值等幅激勵(lì)設(shè)為1。N個(gè)圓周陣元 1個(gè)中心陣元 % 計(jì)算相位補(bǔ)償權(quán)值用于波束形成 w_phase zeros(N 1, 1); for idx 1:N % 對(duì)圓周上的第idx個(gè)陣元計(jì)算波程差引起的相位差并進(jìn)行補(bǔ)償 w_phase(idx) -k * R * cos(phi0 - phi_n(idx)); end % 中心陣元第N1個(gè)的位置是(0,0)無(wú)論波束指向何方其波程差為0因此相位補(bǔ)償為0。 w_phase(N1) 0; % 合成復(fù)權(quán)值幅度 * exp(j*相位) w w .* exp(1j * w_phase); else % 無(wú)中心陣元的情況 w ones(N, 1); w_phase zeros(N, 1); for idx 1:N w_phase(idx) -k * R * cos(phi0 - phi_n(idx)); end w w .* exp(1j * w_phase); end代碼解析與注意事項(xiàng)使用linspace生成均勻角度分布是一種簡(jiǎn)潔的方法。linspace(0, 2*pi, N1)生成N1個(gè)點(diǎn)再刪除最后一個(gè)確保了N個(gè)點(diǎn)均勻分布在[0, 2π)區(qū)間避免了首尾重合點(diǎn)。權(quán)值向量w是復(fù)數(shù)包含了幅度和相位信息。這里我們采用等幅激勵(lì)幅度全為1所有“智能”都體現(xiàn)在相位補(bǔ)償w_phase上。相位補(bǔ)償?shù)挠?jì)算-k * R * cos(phi0 - phi_n(idx))是核心公式的代碼實(shí)現(xiàn)。其物理意義是為了讓來(lái)自phi0方向的信號(hào)在陣列輸出端實(shí)現(xiàn)同相疊加需要提前補(bǔ)償?shù)粢蜿囋恢貌煌氲牟ǔ滩钕辔?。特別注意中心陣元的處理當(dāng)has_center_element為真時(shí)權(quán)值向量長(zhǎng)度變?yōu)镹1。中心陣元的索引是N1其坐標(biāo)(0,0)使得cos(phi0 - 0)中的R0因此相位補(bǔ)償始終為0。這意味著無(wú)論波束指向哪里中心陣元的激勵(lì)相位都是0參考點(diǎn)。這在物理上對(duì)應(yīng)于一個(gè)位于參考點(diǎn)的陣元。3.3 方向圖計(jì)算循環(huán)這是計(jì)算量最大的部分我們需要對(duì)每一個(gè)方位角采樣點(diǎn)phi(m)計(jì)算所有陣元的貢獻(xiàn)之和。%% 計(jì)算陣列方向圖 AF zeros(1, M); % 初始化陣列因子復(fù)數(shù) P zeros(1, M); % 初始化功率方向圖 if has_center_element % 包含中心陣元 for m 1:M % 遍歷每個(gè)觀察角度 sum_temp 0; % 1. 先累加圓周上N個(gè)陣元的貢獻(xiàn) for n 1:N % 計(jì)算從觀察方向phi(m)到第n個(gè)陣元的波程差相位 phase_n k * R * cos(phi(m) - phi_n(n)); % 累加陣元復(fù)激勵(lì) * 空間相位因子 sum_temp sum_temp w(n) * exp(1j * phase_n); end % 2. 加上中心陣元第N1個(gè)的貢獻(xiàn) % 對(duì)于中心陣元其位置為(0,0)因此從任何方向來(lái)的波其波程差相位為0。 % 所以它的貢獻(xiàn)就是其復(fù)激勵(lì) w(N1) 本身因?yàn)?exp(j*0) 1。 sum_temp sum_temp w(N1); AF(m) sum_temp; P(m) abs(AF(m))^2; % 功率為幅值的平方 end else % 不包含中心陣元 for m 1:M sum_temp 0; for n 1:N phase_n k * R * cos(phi(m) - phi_n(n)); sum_temp sum_temp w(n) * exp(1j * phase_n); end AF(m) sum_temp; P(m) abs(AF(m))^2; end end % 歸一化方向圖通常歸一化到最大值0 dB P_normalized P / max(P); P_dB 10 * log10(P_normalized); % 轉(zhuǎn)換為分貝值代碼解析與注意事項(xiàng)使用了雙重循環(huán)外層循環(huán)遍歷觀察角度m內(nèi)層循環(huán)遍歷陣元n。這是最直觀但非最優(yōu)的計(jì)算方式計(jì)算復(fù)雜度為 O(M*N)。對(duì)于陣元數(shù)N和角度采樣數(shù)M不大的情況如本文N8, M721這完全可接受。如果N很大如上百可以考慮向量化運(yùn)算來(lái)提升效率。向量化優(yōu)化提示可以利用MATLAB的矩陣運(yùn)算能力。例如可以構(gòu)建一個(gè)M x N的相位矩陣Phase_Matrix其中第(m,n)個(gè)元素為k*R*cos(phi(m) - phi_n(n))。然后陣列因子AF可以一次性計(jì)算為exp(1j*Phase_Matrix) * w需考慮w的維度。這能顯著提升大尺度仿真速度。分貝轉(zhuǎn)換10*log10()是繪制方向圖的常規(guī)操作因?yàn)樗芨玫卣故九园?、零點(diǎn)等細(xì)節(jié)。線(xiàn)性坐標(biāo)下-30dB的旁瓣幾乎貼在坐標(biāo)軸上看不出來(lái)而在對(duì)數(shù)坐標(biāo)下則非常清晰。歸一化的意義P / max(P)將方向圖的最大值歸一化為10 dB。這樣做的目的是便于比較不同陣列結(jié)構(gòu)或參數(shù)下的方向圖形狀而不受絕對(duì)功率值的影響。在比較主瓣寬度、旁瓣電平時(shí)必須使用歸一化方向圖。3.4 結(jié)果可視化與對(duì)比分析一張好的圖勝過(guò)千言萬(wàn)語(yǔ)。我們將用兩種方式繪制方向圖極坐標(biāo)圖直觀顯示360度方向性和直角坐標(biāo)圖便于精確讀取角度和dB值。%% 結(jié)果可視化 figure(Position, [100, 100, 1200, 500]); % 設(shè)置圖形窗口位置和大小 % 子圖1極坐標(biāo)方向圖 subplot(1, 2, 1); polarplot(phi, P_normalized, LineWidth, 2); % 使用歸一化的功率值繪制 title([均勻圓形陣列方向圖 (極坐標(biāo)) | N, num2str(N), ... | R, num2str(R/lambda), \lambda | 波束指向, num2str(phi0_deg), °]); if has_center_element subtitle(包含中心陣元); else subtitle(不包含中心陣元); end rlim([0 1.2]); % 調(diào)整徑向軸范圍讓圖形更美觀 ax gca; ax.ThetaZeroLocation top; % 將0度方向設(shè)置在圖形頂部 ax.ThetaDir counterclockwise; % 角度遞增方向?yàn)槟鏁r(shí)針標(biāo)準(zhǔn)數(shù)學(xué)約定 % 子圖2直角坐標(biāo)方向圖dB subplot(1, 2, 2); plot(phi_deg, P_dB, LineWidth, 2); grid on; xlabel(方位角 (度)); ylabel(歸一化功率 (dB)); title([均勻圓形陣列方向圖 (直角坐標(biāo)) | N, num2str(N), ... | R, num2str(R/lambda), \lambda | 波束指向, num2str(phi0_deg), °]); if has_center_element subtitle(包含中心陣元); else subtitle(不包含中心陣元); end xlim([0 360]); ylim([-50 0]); % 通常將縱軸下限設(shè)為-50dB或-60dB以觀察旁瓣結(jié)構(gòu) % 標(biāo)記波束指向和主瓣寬度 hold on; plot([phi0_deg, phi0_deg], ylim, r--, LineWidth, 1.5, DisplayName, 波束指向); legend(Location, best); % 計(jì)算并標(biāo)注主瓣寬度-3dB寬度 [max_dB, max_idx] max(P_dB); half_power max_dB - 3; % -3dB點(diǎn) % 找到主瓣兩側(cè)-3dB點(diǎn)的角度簡(jiǎn)化查找假設(shè)主瓣對(duì)稱(chēng) % 注意這是一個(gè)簡(jiǎn)化算法對(duì)于不對(duì)稱(chēng)或復(fù)雜的主瓣可能不準(zhǔn)。更穩(wěn)健的方法是尋找主瓣峰值兩側(cè)首次穿越-3dB線(xiàn)的點(diǎn)。 left_idx find(P_dB(1:max_idx) half_power, 1, last); right_idx find(P_dB(max_idx:end) half_power, 1, first) max_idx - 1; if ~isempty(left_idx) ~isempty(right_idx) beamwidth_deg phi_deg(right_idx) - phi_deg(left_idx); % 處理360度邊界情況 if beamwidth_deg 0 beamwidth_deg beamwidth_deg 360; end fprintf(【結(jié)果分析】主瓣寬度-3dB約為%.2f 度\n, beamwidth_deg); % 在圖上標(biāo)注 plot([phi_deg(left_idx), phi_deg(right_idx)], [half_power, half_power], ... g*-, LineWidth, 2, MarkerSize, 10, DisplayName, -3dB點(diǎn)); text(mean([phi_deg(left_idx), phi_deg(right_idx)]), half_power2, ... sprintf(BW%.1f°, beamwidth_deg), Color, g, FontWeight, bold); end hold off;代碼解析與注意事項(xiàng)figure(Position, ...)用于控制圖形窗口的大小和位置確保兩個(gè)子圖能清晰顯示。極坐標(biāo)圖polarplot函數(shù)非常適合展示全向方向圖。rlim([0 1.2])將徑向范圍限制在1.2以?xún)?nèi)因?yàn)闅w一化功率最大值為1這樣圖形周?chē)鷷?huì)有一些空白更美觀。ThetaZeroLocation和ThetaDir用于設(shè)置角度坐標(biāo)的起始位置和方向符合工程習(xí)慣0度通常為正北或陣列法線(xiàn)方向。直角坐標(biāo)圖plot圖用于精確測(cè)量。將縱軸范圍設(shè)為[-50, 0]dB可以清晰地看到主瓣以下的旁瓣結(jié)構(gòu)。旁瓣電平是陣列設(shè)計(jì)的關(guān)鍵指標(biāo)之一。主瓣寬度計(jì)算代碼中提供了一個(gè)簡(jiǎn)單的主瓣寬度半功率波束寬度HPBW計(jì)算方法。它通過(guò)尋找主瓣峰值兩側(cè)功率首次降至-3dB以下的位置來(lái)估算。請(qǐng)注意這種方法對(duì)于對(duì)稱(chēng)且單一的主瓣有效。如果方向圖存在多個(gè)峰值如柵瓣或主瓣嚴(yán)重不對(duì)稱(chēng)此方法可能失效。在實(shí)際工程中可能需要更復(fù)雜的峰值檢測(cè)和插值算法來(lái)精確計(jì)算。圖形標(biāo)注使用plot和text函數(shù)在圖上直接標(biāo)記波束指向和主瓣寬度使得結(jié)果一目了然。fprintf在命令窗口輸出數(shù)值結(jié)果便于記錄。4. 仿真結(jié)果對(duì)比與深度分析運(yùn)行上述代碼通過(guò)設(shè)置has_center_element true/false我們可以得到兩組方向圖。下面我們基于一組典型參數(shù)N8, R0.5λ, 波束指向30°進(jìn)行對(duì)比分析。4.1 無(wú)圓心陣元的均勻圓形陣列方向圖當(dāng)has_center_element false時(shí)我們得到經(jīng)典的8元均勻圓陣方向圖。主瓣特征波束成功指向30度方向。主瓣寬度HPBW大約在40-50度左右具體數(shù)值通過(guò)代碼計(jì)算得出。對(duì)于8元半波長(zhǎng)半徑圓陣這個(gè)寬度是合理的。旁瓣結(jié)構(gòu)可以看到多個(gè)旁瓣且旁瓣電平SLL相對(duì)較高大約在-8 dB 到 -12 dB之間。這是等幅激勵(lì)均勻陣列的典型特征其旁瓣電平由陣列幾何和陣元數(shù)決定通常不會(huì)太低。對(duì)稱(chēng)性方向圖在極坐標(biāo)下呈現(xiàn)出較好的對(duì)稱(chēng)性盡管因?yàn)椴ㄊ鴴呙瓒煌耆珜?duì)稱(chēng)于圓心這是圓周對(duì)稱(chēng)結(jié)構(gòu)在波束掃描時(shí)的表現(xiàn)。零點(diǎn)方向圖中存在明顯的深零點(diǎn)功率接近負(fù)無(wú)窮dB這些零點(diǎn)位置由陣列因子為零的方程決定對(duì)于干擾抑制有重要意義。4.2 有圓心陣元的均勻圓形陣列方向圖將has_center_element設(shè)為true重新運(yùn)行仿真。主瓣變化最直觀的變化是主瓣變窄了。計(jì)算出的HPBW可能減小到30-40度左右。這是因?yàn)橹行年囋募尤胂喈?dāng)于在陣列中心增加了一個(gè)與所有圓周陣元在波束指向上同相的強(qiáng)輻射源增強(qiáng)了陣列在該方向的輻射能力使得能量更加集中。旁瓣特性旁瓣結(jié)構(gòu)發(fā)生了顯著改變。原有的旁瓣電平可能升高或出現(xiàn)新的旁瓣峰值。例如某些角度的旁瓣可能從-12dB升高到-10dB甚至更高。這是因?yàn)橹行年囋c圓周陣元之間的固定間距半徑R引入了一種新的干涉模式破壞了原有純圓周陣元的周期性。方向圖整體形狀方向圖可能看起來(lái)“更胖”或“更瘦”取決于觀察的角度。在波束指向的反方向即210度附近可能會(huì)產(chǎn)生一個(gè)明顯的副瓣或改變?cè)辛泓c(diǎn)的深度。這是因?yàn)橹行年囋拇嬖谑沟藐嚵胁辉訇P(guān)于原點(diǎn)中心對(duì)稱(chēng)。方向性系數(shù)雖然我們沒(méi)有直接計(jì)算方向性系數(shù)D但主瓣變窄通常意味著最大方向性系數(shù)有所提高。中心陣元貢獻(xiàn)了額外的輻射功率并且在主瓣方向上與圓周陣元同相疊加提高了陣列的“聚焦”能力。4.3 關(guān)鍵參數(shù)影響分析為了更全面地理解這兩種陣列我們可以利用寫(xiě)好的代碼輕松修改參數(shù)進(jìn)行探索陣元數(shù)量 N 的影響增加N無(wú)論是哪種結(jié)構(gòu)增加圓周上的陣元數(shù)量都會(huì)使方向圖的主瓣變窄旁瓣數(shù)量增多但旁瓣電平可能降低因?yàn)殛嚵锌讖皆龃蠓直媛侍岣摺?duì)于有中心陣元的陣列中心陣元的相對(duì)影響會(huì)隨著N增大而略有減弱因?yàn)閳A周陣元的集體貢獻(xiàn)占比變大。減少N例如N4方向圖主瓣會(huì)變得非常寬旁瓣巨大。此時(shí)中心陣元的存在與否對(duì)方向圖形狀的影響將更為顯著。圓陣半徑 R 的影響R 與波長(zhǎng)的關(guān)系R 0.5λ是常用起點(diǎn)。如果R過(guò)小如0.2λ陣元間距過(guò)密方向圖主瓣會(huì)變得很寬陣列的定向能力差。如果R過(guò)大如1.0λ或更大需要警惕柵瓣的出現(xiàn)。對(duì)于圓形陣列柵瓣的判斷比直線(xiàn)陣列復(fù)雜但基本原則是陣元間的最大間距這里是圓上相鄰陣元的弧長(zhǎng)約2πR/N不宜超過(guò)半波長(zhǎng)太多。對(duì)兩種結(jié)構(gòu)的影響半徑變化對(duì)兩種結(jié)構(gòu)的影響趨勢(shì)一致。但對(duì)于有中心陣元的陣列半徑R直接決定了中心陣元與圓周陣元的距離這個(gè)距離是影響干涉模式的關(guān)鍵參數(shù)。R越大中心與邊緣的相位差變化越劇烈方向圖可能更復(fù)雜。波束指向phi0的影響對(duì)于無(wú)中心陣元的UCA當(dāng)波束指向改變時(shí)方向圖形狀除指向外基本保持不變只是整體旋轉(zhuǎn)了一個(gè)角度這是圓形陣列各向同性的一種體現(xiàn)。對(duì)于有中心陣元的UCA由于中心陣元的存在破壞了嚴(yán)格的旋轉(zhuǎn)對(duì)稱(chēng)性當(dāng)波束指向不同角度時(shí)方向圖特別是旁瓣和零點(diǎn)結(jié)構(gòu)可能會(huì)發(fā)生微小的變化因?yàn)橹行年囋c圓周上不同位置陣元的空間關(guān)系隨掃描角變化而不同。5. 常見(jiàn)問(wèn)題、調(diào)試技巧與代碼優(yōu)化在實(shí)際仿真和后續(xù)應(yīng)用中你可能會(huì)遇到以下問(wèn)題。這里分享一些我的排查經(jīng)驗(yàn)和優(yōu)化建議。5.1 方向圖看起來(lái)“不對(duì)”或異常問(wèn)題現(xiàn)象主瓣不在指定的phi0方向圖形不對(duì)稱(chēng)出現(xiàn)異常高的旁瓣。排查步驟檢查相位補(bǔ)償計(jì)算這是最容易出錯(cuò)的地方。確認(rèn)公式-k * R * cos(phi0 - phi_n)是否正確。特別注意phi0和phi_n的單位必須是弧度。使用deg2rad()函數(shù)確保轉(zhuǎn)換。驗(yàn)證陣元位置在計(jì)算權(quán)值前可以先畫(huà)個(gè)散點(diǎn)圖看看陣元位置對(duì)不對(duì)。figure; plot(x_n, y_n, bo, MarkerSize, 10, LineWidth, 2); hold on; if has_center_element plot(0, 0, r*, MarkerSize, 15, LineWidth, 2); % 中心陣元用紅色星號(hào)表示 end axis equal; grid on; xlabel(x (波長(zhǎng))); ylabel(y (波長(zhǎng))); title(陣元位置分布);檢查歸一化確保方向圖進(jìn)行了正確的歸一化P / max(P)。有時(shí)未歸一化的方向圖絕對(duì)值很小在對(duì)數(shù)坐標(biāo)下會(huì)顯示為異常的負(fù)值。檢查波數(shù)k和波長(zhǎng)λ確認(rèn)載頻fc和光速c定義正確。一個(gè)常見(jiàn)的低級(jí)錯(cuò)誤是c 3e8寫(xiě)成了c 3e6導(dǎo)致波長(zhǎng)計(jì)算錯(cuò)誤100倍整個(gè)空間相位全亂。5.2 仿真速度太慢當(dāng)陣元數(shù)N或角度采樣點(diǎn)M很大時(shí)雙重循環(huán)會(huì)非常耗時(shí)。優(yōu)化方案向量化計(jì)算將內(nèi)層循環(huán)替換為矩陣運(yùn)算。核心思想是構(gòu)建一個(gè)M x N的“空間相位矩陣”。% 向量化計(jì)算陣列因子 (以無(wú)中心陣元為例) % phi 是 1 x M 的行向量 phi_n 是 1 x N 的行向量 % 利用 broadcasting 和矩陣乘法 % 構(gòu)建 M x N 的相位矩陣 Phase_Matrix(m,n) k*R*cos(phi(m) - phi_n(n)) [Phi_grid, Phi_n_grid] meshgrid(phi, phi_n); % Phi_n_grid 是 N x M, 需要轉(zhuǎn)置 % 注意meshgrid的輸出維度通常更適合的用法是 [Phi_n_grid, Phi_grid] meshgrid(phi_n, phi); % Phi_grid 是 M x N, Phi_n_grid 是 M x N Phase_Matrix k * R * cos(Phi_grid - Phi_n_grid); % M x N % 計(jì)算陣列因子對(duì)每個(gè)角度m求所有陣元n的 w(n)*exp(j*phase) 之和 % 這等價(jià)于矩陣乘法 AF (exp(j*Phase_Matrix)) * w % 其中 w 是 N x 1 的列向量 AF_vectorized exp(1j * Phase_Matrix) * w(:); % M x 1 的列向量 AF AF_vectorized.; % 轉(zhuǎn)為行向量以保持兼容這種方法可以避免顯式循環(huán)利用MATLAB底層優(yōu)化速度可提升數(shù)十倍甚至上百倍。對(duì)于有中心陣元的情況只需在最后加上中心陣元的貢獻(xiàn)AF AF_vectorized. w_center其中w_center是中心陣元的復(fù)權(quán)值。5.3 如何仿真三維方向圖本文討論的是二維方位角方向圖假設(shè)俯仰角為0陣元在xy平面觀測(cè)也在xy平面。若要仿真三維方向圖需要引入俯仰角θ。模型擴(kuò)展陣元坐標(biāo)需包含z分量對(duì)于平面圓陣z0。波矢方向由方位角φ和俯仰角θ共同決定。相位差公式需擴(kuò)展為 [ \Delta \psi_n k R \sin\theta \cos(\phi - \phi_n) ] 這里假設(shè)了遠(yuǎn)場(chǎng)和球坐標(biāo)系。方向圖將變成AF(θ, φ)的二維函數(shù)。代碼修改需要雙層循環(huán)遍歷φ和θ或者使用meshgrid生成二維角度網(wǎng)格計(jì)算得到二維的陣列因子矩陣然后用surf或mesh函數(shù)繪制三維圖形或用imagesc繪制二維色度圖。計(jì)算量警告三維仿真計(jì)算量急劇增加角度采樣點(diǎn)從M個(gè)變?yōu)镸*L個(gè)L是俯仰角采樣數(shù)務(wù)必使用上述向量化方法優(yōu)化代碼。5.4 擴(kuò)展非等幅激勵(lì)與波束賦形本文使用的是最簡(jiǎn)單的等幅激勵(lì)。在實(shí)際應(yīng)用中為了獲得更低的旁瓣如切比雪夫加權(quán)、泰勒加權(quán)或形成特定的波束形狀如零陷對(duì)準(zhǔn)干擾方向需要對(duì)各陣元的幅度和相位進(jìn)行聯(lián)合優(yōu)化。幅度加權(quán)只需修改權(quán)值向量w的幅度部分。例如為了降低旁瓣可以使用漢明窗、漢寧窗等函數(shù)對(duì)圓周上的陣元進(jìn)行幅度錐削。% 例如對(duì)圓周陣元應(yīng)用漢明窗幅度加權(quán)不包括中心陣元 window_weights hamming(N); % 生成N點(diǎn)的漢明窗值在0~1之間 w_amplitude window_weights; % 轉(zhuǎn)為行向量 if has_center_element w_amplitude [w_amplitude; 1]; % 中心陣元幅度保持為1或另設(shè) end w w_amplitude .* exp(1j * w_phase); % 將幅度加權(quán)與相位補(bǔ)償結(jié)合自適應(yīng)波束形成這涉及到更復(fù)雜的算法如MVDR最小方差無(wú)失真響應(yīng)、LCMV線(xiàn)性約束最小方差等。其核心是根據(jù)接收到的信號(hào)協(xié)方差矩陣實(shí)時(shí)計(jì)算最優(yōu)權(quán)值w以在抑制干擾和噪聲的同時(shí)保持對(duì)期望信號(hào)的接收。這超出了本文基礎(chǔ)仿真的范圍但基于此代碼框架你可以接入信號(hào)模型和自適應(yīng)算法進(jìn)行深入探索。通過(guò)這個(gè)從理論到代碼、從基礎(chǔ)到擴(kuò)展的完整過(guò)程我們不僅實(shí)現(xiàn)了兩種均勻圓形陣列的方向圖仿真更建立了一個(gè)可以靈活用于陣列天線(xiàn)性能分析的基礎(chǔ)平臺(tái)。理解圓心陣元帶來(lái)的影響是進(jìn)行更復(fù)雜陣列設(shè)計(jì)如共形陣列、稀疏陣列的第一步。希望這份詳細(xì)的拆解和代碼能成為你探索陣列信號(hào)處理世界的一塊堅(jiān)實(shí)墊腳石。本文還有配套的精品資源點(diǎn)擊獲取