王 平,梁家祺
(重慶大學(xué)電氣工程學(xué)院,重慶 400044)
傳統(tǒng)超聲成像通常采用延時(shí)疊加(Delay and Sum,DAS)的波束形成算法進(jìn)行成像。DAS 算法原理簡(jiǎn)單且易于在硬件上實(shí)現(xiàn),被廣泛用于醫(yī)療診斷的實(shí)時(shí)成像[1]。同時(shí),隨著現(xiàn)場(chǎng)可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)技術(shù)的發(fā)展,有學(xué)者開始研究將FPGA 作為超聲成像的主控芯片,將延時(shí)疊加等運(yùn)算過程移植到FPGA 上實(shí)現(xiàn)[2]。在文獻(xiàn)[3]中,KIDAV 提出了一種在FPGA上利用流水線處理回波數(shù)據(jù)最終實(shí)現(xiàn)超聲實(shí)時(shí)成像的方案,但是在該方案中,對(duì)回波信號(hào)的聚焦處理采用的是定點(diǎn)聚焦方法,導(dǎo)致成像結(jié)果在焦點(diǎn)附近較為清晰,在遠(yuǎn)離焦點(diǎn)的邊緣區(qū)域分辨率卻嚴(yán)重下降,此外,該方案在近場(chǎng)處會(huì)產(chǎn)生成像盲區(qū),嚴(yán)重影響了近場(chǎng)成像的質(zhì)量。在文獻(xiàn)[4]中,PAI-CHI LI 提出了分段聚焦方案,將掃描區(qū)域根據(jù)深度分成若干子區(qū)間,在每個(gè)區(qū)間內(nèi)分別進(jìn)行定點(diǎn)聚焦,以改善成像質(zhì)量,但是該方法在近場(chǎng)處仍存在較大誤差。在文獻(xiàn)[5]中,BOHUMILA提出了動(dòng)態(tài)孔徑方案,通過改變對(duì)近場(chǎng)聚焦時(shí)的孔徑大小,有效減小了近場(chǎng)盲區(qū)的大小,改善了近場(chǎng)成像的質(zhì)量。
針對(duì)上述文獻(xiàn)存在的問題,本文首先介紹超聲聚焦的基本原理,之后介紹一種基于誤差約束的超聲延時(shí)參數(shù)壓縮算法。該算法以逐點(diǎn)聚焦為基礎(chǔ),將聚焦延時(shí)參數(shù)相近的焦點(diǎn)作為一個(gè)分段,段內(nèi)統(tǒng)一采用一組聚焦延時(shí)參數(shù),其本質(zhì)是分段算法的一種,但是通過在分段邊界點(diǎn)的合理選取,使得聚焦延時(shí)參數(shù)的誤差值被控制在一個(gè)限定范圍之內(nèi)。在該算法的基礎(chǔ)上,本文結(jié)合動(dòng)態(tài)孔徑技術(shù),在減小近場(chǎng)盲區(qū)的同時(shí),進(jìn)一步壓縮聚焦延時(shí)參數(shù)的存儲(chǔ)空間,減少算法的硬件資源需求。
超聲聚焦的本質(zhì)為延時(shí)疊加(Delay And Sum,DAS),將各個(gè)陣元接收到的回波信號(hào)按照焦點(diǎn)到各個(gè)陣元之間的聲程差進(jìn)行延時(shí)后疊加。疊加后,有效信號(hào)相加,噪聲信號(hào)相抵,從而達(dá)到加強(qiáng)焦點(diǎn)處的信號(hào)強(qiáng)度和提升信噪比的目的[6]。
動(dòng)態(tài)聚焦是焦點(diǎn)跟隨探測(cè)深度變化而變化的聚焦方式,各個(gè)陣元的延時(shí)時(shí)間也隨焦點(diǎn)變化而改變。在數(shù)字動(dòng)態(tài)聚焦系統(tǒng)中,各個(gè)陣元的回波信號(hào)經(jīng)A/D(模數(shù)轉(zhuǎn)換器)采集之后緩存在隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)中,不同深度的回波信息按時(shí)間存儲(chǔ)在RAM 的不同地址中,深度越深的回波其返回時(shí)間越遲,則對(duì)應(yīng)地址值越大[7]。而掃描線上同一點(diǎn)到各個(gè)陣元的距離不同,若該點(diǎn)的回波信息在中心陣元對(duì)應(yīng)的RAM 中存儲(chǔ)在地址ADDRmid處,則同樣是該點(diǎn)的回波信息在邊緣陣元對(duì)應(yīng)的RAM 中存儲(chǔ)地址為ADDRmid+τ,其中τ即為延時(shí)參數(shù)。在FPGA 中,只要對(duì)超聲聚焦參數(shù)進(jìn)行預(yù)先存儲(chǔ),再根據(jù)掃描深度實(shí)時(shí)讀取聚焦延時(shí)參數(shù)作為RAM 地址讀取的附加值,最后將各個(gè)陣元RAM 的讀取值相加即可完成數(shù)字動(dòng)態(tài)聚焦[8]。然而,該方法下,中心陣元的每個(gè)地址值都需要一組配套的聚焦延時(shí)參數(shù),存儲(chǔ)這些聚焦延時(shí)參數(shù)需要消耗大量硬件資源。在N陣元線型陣列中,一條掃描線的回波數(shù)據(jù)需要RAM 深度為D=2(Fend-Fstart)fs/c,其中c為超聲波介質(zhì)聲速,fs為采樣頻率,F(xiàn)start為起始聚焦深度,F(xiàn)end為最大聚焦深度,若每個(gè)延時(shí)參數(shù)消耗2 Bytes 空間,則總共將消耗(2N×D)Bytes 空間,因?yàn)閷?duì)稱性減半也還需要(N×D)Bytes 的空間。若想減少資源消耗,則需要對(duì)聚焦延時(shí)參數(shù)進(jìn)行壓縮,使用時(shí)再實(shí)時(shí)解壓輸出,因此聚焦延時(shí)參數(shù)的壓縮算法是能否在FPGA上實(shí)現(xiàn)動(dòng)態(tài)聚焦的關(guān)鍵。
本節(jié)將簡(jiǎn)單介紹一種基于誤差約束的超聲延時(shí)參數(shù)壓縮算法。在N陣元陣列中,陣元分別編號(hào)0,…,N-1,陣元間距d,探測(cè)深度區(qū)間為[Fstart,F(xiàn)end],則區(qū)間內(nèi)一點(diǎn)Fk做焦點(diǎn)時(shí)其到陣元i的延時(shí)時(shí)間ti,Fk為:
在該分段方法下,在任意一段聚焦區(qū)域[Fk,F(xiàn)k+1]內(nèi),聚焦延時(shí)時(shí)間的變化量絕對(duì)值小于1/fs,各個(gè)通道的聚焦延時(shí)參數(shù)的遞減量DECi,k只存在“ 0 ”和“ 1 ”兩種情況,則各個(gè)通道在進(jìn)入第k組分段時(shí),其聚焦延時(shí)參數(shù)可表示為
τi,0為各個(gè)通道聚焦延時(shí)參數(shù)的初始值,可通過式(4)進(jìn)行計(jì)算:
此時(shí),只需要記錄上述ADDRedge,k,DECi,k和τi,0三種信息,即可通過簡(jiǎn)單加減運(yùn)算還原出所有聚焦延時(shí)參數(shù)。每個(gè)ADDRedge,k值占用2 Bytes 存儲(chǔ)空間,數(shù)量為K;每個(gè)DECi,k值占用1 bit 存儲(chǔ)空間,數(shù)量由于對(duì)稱性減半為KN/2;每個(gè)τi,0值占用2 Bytes 存儲(chǔ)空間,數(shù)量由于對(duì)稱性減半為N/2。綜上所述,壓縮后的聚焦延時(shí)參數(shù)總計(jì)占用存儲(chǔ)空間為(N+2K+KN/16)Bytes。
擁有自信,能讓自身的智慧的靈光得以閃亮,創(chuàng)造出許多自己也意想不到的奇跡。小仲馬在自己艱難的創(chuàng)作中并沒有困為一時(shí)的挫折而放棄,而是憑借著自己的信心和才能去闖出了一番天地。巴魯瑪面臨唾手可得的成功放棄了,選擇了一條與大相徑庭的充滿挑戰(zhàn)的道路勇敢的走下去,是心燭點(diǎn)亮了她的錦繡人生;也是心燭使她驕傲地面對(duì)人生。
動(dòng)態(tài)孔徑技術(shù)指隨著探測(cè)深度改變,激活的陣元數(shù)也隨之改變,其原理如下文所述。超聲相控陣在形成波束時(shí)會(huì)對(duì)不同入射角的回波信號(hào)產(chǎn)生不同強(qiáng)度的響應(yīng),對(duì)于均勻線型排列的相控陣來說,其對(duì)不同入射角度θ的響應(yīng)幅值歸一化后的波束方向圖可表達(dá)為:
式中:N表示陣元數(shù)量,d表示相鄰陣元中心距,λ表示入射波波長(zhǎng)。其圖像如圖1 所示。
圖1 波束方向圖
取B=-3 dB 半功率點(diǎn)作為波束區(qū)域的邊界,則兩個(gè)半功率點(diǎn)之間的夾角為可視夾角。該角度意味著,不計(jì)超聲衰減的情況下,在相控陣正前方可視夾角內(nèi),若存在一個(gè)向周圍均勻發(fā)散的點(diǎn)震源,則會(huì)在該波束上留下一個(gè)可視影像,區(qū)域外的震源則無法留下可視影像,該扇形區(qū)域被稱為可視區(qū)域。若保持陣元數(shù)不變,則相鄰的扇形可視區(qū)域之間的近場(chǎng)會(huì)有一塊扇形無法覆蓋到的三角形盲區(qū)。通過改變N的取值可以改變可視夾角大小,陣元數(shù)量越少,孔徑越小,對(duì)應(yīng)的可視區(qū)域夾角就越大,則相應(yīng)的相鄰兩條波束之間的成像盲區(qū)就越小。然而,可視區(qū)域夾角的增大會(huì)引起成像橫向分辨率的下降,探測(cè)深度越深,橫向分辨率下降就越嚴(yán)重,因此孔徑大小的設(shè)置需要綜合考慮對(duì)可視區(qū)域夾角和橫向分辨率的影響。
為了減少近場(chǎng)盲區(qū)同時(shí)又不影響遠(yuǎn)場(chǎng)分辨率,可以采用動(dòng)態(tài)孔徑技術(shù),即在近場(chǎng)只激活中心區(qū)域少量陣元,維持較小孔徑,隨著聚焦深度的增加,激活的陣元數(shù)也逐漸增加,直至增大到所能激活陣元數(shù)的最大值。不同探測(cè)深度對(duì)應(yīng)的陣元開啟數(shù)量的具體計(jì)算過程如下文所述。
將N=2n(n=1,2,…,Nmax/2)分別代入上述過程求得對(duì)應(yīng)的可視夾角Δθn,則該波束可視區(qū)域單側(cè)的邊界線可表示為:
相鄰波束中心距為db,一般情況下db=d,現(xiàn)x=db/2 可得一系列fn(db/2)值即為動(dòng)態(tài)孔徑分段邊界深度。圖2 展示了使用動(dòng)態(tài)孔徑技術(shù)前后的可視區(qū)域范圍,圖2(a)為使用前,圖2(b)為使用后,由圖可知,采用動(dòng)態(tài)孔徑技術(shù)之后,近場(chǎng)盲區(qū)區(qū)域面積將顯著減小。
圖2 使用動(dòng)態(tài)孔徑技術(shù)前后的近場(chǎng)可視區(qū)域
在第3 節(jié)的壓縮算法中,算法對(duì)探測(cè)深度進(jìn)行了分段,其分段特點(diǎn)為前密后疏,而各個(gè)陣元的遞減信息中,遞減值為“ 1 ”的區(qū)域主要集中在邊緣陣元。若將動(dòng)態(tài)孔徑分段投影到第3 節(jié)算法的遞減信息中,其結(jié)果如圖3 所示。
圖3 動(dòng)態(tài)孔徑分段在聚焦分段遞減信息上的投影
圖中紫色區(qū)塊表示該通道在進(jìn)入該分段時(shí)的遞減值為“0”,即不發(fā)生遞減,黃色區(qū)塊表示遞減值為“-1”,紅色線段所圍成的區(qū)域?yàn)榧せ畹年囋獏^(qū)域。由圖3 可知,在陣元激活區(qū)域外,存在大量的“-1 ”遞減信息,這些信息由于對(duì)應(yīng)陣元在該分段并未激活,都成了無效信息;而在陣元激活區(qū)域內(nèi),“-1 ”遞減信息變得相對(duì)稀疏,存在進(jìn)一步壓縮的可能。
基于上述現(xiàn)象,本文提出一種結(jié)合動(dòng)態(tài)孔徑的聚焦延時(shí)參數(shù)分段壓縮算法,首先按照上述過程計(jì)算出動(dòng)態(tài)孔徑分段邊界值fn,則整個(gè)探測(cè)區(qū)間[f0,將被劃分為Nmax/2 段,在每個(gè)子區(qū)間內(nèi),分別采用基于誤差約束的超聲延時(shí)參數(shù)壓縮算法計(jì)算分段邊界地址、激活陣元的遞減值和陣元初次激活的初始聚焦延時(shí)參數(shù)值,即可還原出各個(gè)陣元需要的聚焦延時(shí)參數(shù)值。
該算法下用FPGA 實(shí)現(xiàn)動(dòng)態(tài)聚焦和動(dòng)態(tài)孔徑的結(jié)構(gòu)如圖4 所示。
圖4 動(dòng)態(tài)聚焦和動(dòng)態(tài)孔徑模塊的結(jié)構(gòu)示意圖
當(dāng)外圍電路發(fā)射超聲并將回波信號(hào)經(jīng)過A/D采集存儲(chǔ)到FPGA 內(nèi)各個(gè)陣元對(duì)應(yīng)的原始數(shù)據(jù)RAM 后,系統(tǒng)進(jìn)入波束運(yùn)算模式。運(yùn)算開始時(shí),模塊外部會(huì)使能一個(gè)計(jì)數(shù)器進(jìn)行加計(jì)數(shù),其計(jì)數(shù)值作為原始數(shù)據(jù)RAM 讀取基礎(chǔ)地址值cal_addr 輸入模塊,在分段邊界比較器中和分段邊界地址值A(chǔ)DDRedge,k進(jìn)行比較得到所在分段k,再以k為地址值在遞減值RAM 中檢索該分段下的遞減信息DECi,k傳輸?shù)礁髀愤f減器當(dāng)中;當(dāng)cal_addr 值遞增跨越ADDRedge,k值時(shí)在各路遞減器中根據(jù)DECi,k值執(zhí)行一次遞減操作,實(shí)時(shí)得到各通道聚焦延時(shí)參數(shù),再將聚焦延時(shí)參數(shù)和實(shí)時(shí)的cal_addr 值疊加就是焦點(diǎn)信息在各個(gè)通道原始數(shù)據(jù)RAM 中存儲(chǔ)的地址位置,而動(dòng)態(tài)孔徑開關(guān)會(huì)根據(jù)該cal_addr 下激活陣元數(shù)為各個(gè)原始數(shù)據(jù)RAM 提供讀取使能,只有開啟的陣元對(duì)應(yīng)的RAM 才能讀取出數(shù)據(jù);從原始數(shù)據(jù)RAM 中讀取出相同相位的回波數(shù)據(jù)后,在最后的32 路加法器中疊加,即可得到聚焦結(jié)果,整個(gè)過程共計(jì)產(chǎn)生6 個(gè)時(shí)鐘周期的數(shù)據(jù)延遲。
實(shí)際應(yīng)用中,以廣東汕頭超聲電子股份有限公司 的5L128-0.75×10-C58-P-110-2.0-D1型壓電換能器探頭為例。該探頭可同時(shí)激活陣元數(shù)N=32,陣元中心距d=0.75 mm,聲波頻率fc=3.5 MHz,介質(zhì)聲速c=1 500 m·s-1,聚焦區(qū)間選定在[2,240] mm,采樣頻率設(shè)定為fs=50 MHz。在未采用壓縮算法時(shí),緩存一條掃描線的RAM 深度為15 455,則其聚焦延時(shí)參數(shù)占用的存儲(chǔ)空間為N×J=494 560 Bytes,存儲(chǔ)壓力較大。
使用基于誤差約束的超聲延時(shí)參數(shù)壓縮算法后,在同樣條件下計(jì)算可得該算法的分段數(shù)K=307,分段序號(hào)和探測(cè)深度的關(guān)系如圖5 所示。
圖5 聚焦深度和分段序號(hào)關(guān)系
該算法下,聚焦延時(shí)參數(shù)占用的存儲(chǔ)空間為(N+2K+KN/16)=1 260 Bytes,壓縮率達(dá)到了2.548‰,大大節(jié)約了對(duì)FPGA 硬件資源的使用。根據(jù)壓縮后的ADDRedge,k、DECi,k和τi,0三種信息,各通道聚焦延時(shí)時(shí)間還原過程如下。
對(duì)于掃描線上探測(cè)深度區(qū)間內(nèi)任意一點(diǎn)F,從接收到Fstart處的回波信號(hào)開始,對(duì)回波信號(hào)以采樣率fs進(jìn)行采樣并將數(shù)據(jù)緩存進(jìn)原始數(shù)據(jù)RAM 中,則該點(diǎn)F在假想中心通道RAM 中的對(duì)應(yīng)地址為:
再將ADDRF,mid與各分段邊界值進(jìn)行比較,找到點(diǎn)F所處的分段序號(hào)kF,則該點(diǎn)到i號(hào)陣元的聚焦延時(shí)參數(shù)τi,F和聚焦延時(shí)時(shí)間ti,F分別為:
還原后的聚焦延時(shí)時(shí)間與原始聚焦延時(shí)時(shí)間的對(duì)比如圖6 所示,圖中自上而下分別為通道1 到通道16 的數(shù)據(jù)。
圖6 各通道聚焦延時(shí)時(shí)間
原始數(shù)據(jù)和還原數(shù)據(jù)的差值如圖7 所示,可得差值在區(qū)間[-20,20] ns 之內(nèi),符合預(yù)設(shè)的δ<fs,誤差在可接受范圍內(nèi)。
圖7 原始數(shù)據(jù)和還原數(shù)據(jù)的差值
使用結(jié)合動(dòng)態(tài)孔徑的超聲延時(shí)參數(shù)壓縮算法后,在同樣條件下計(jì)算可得各個(gè)動(dòng)態(tài)孔徑子區(qū)間的分段數(shù)如表1 所示。
由表1 可知,與基于誤差約束的超聲延時(shí)參數(shù)壓縮算法相比,結(jié)合動(dòng)態(tài)孔徑的超聲延時(shí)參數(shù)壓縮算法分段總數(shù)顯著減少,從原來的307 段下降到了94 段,同時(shí)每個(gè)分段中僅需記錄已激活陣元的遞減情況,所需存儲(chǔ)空間將進(jìn)一步減少。該算法下所需的存儲(chǔ)空間如表2 所示。
表1 各個(gè)子區(qū)間分段數(shù)
由表2 可知,在之前壓縮算法的基礎(chǔ)上,結(jié)合動(dòng)態(tài)孔徑的超聲延時(shí)參數(shù)壓縮算法所占用的存儲(chǔ)空間再次壓縮到了之前的28.15%,是不壓縮數(shù)據(jù)量的0.717‰,極大緩解了聚焦延時(shí)參數(shù)的存儲(chǔ)壓力。
表2 結(jié)合動(dòng)態(tài)孔徑的超聲聚焦壓縮算法所需存儲(chǔ)空間
在實(shí)際應(yīng)用中,以廣東汕頭超聲電子股份有限公司的5L128-0.75×10-C58-P-110-2.0-D1型壓電換能器探頭為研究對(duì)象,存儲(chǔ)動(dòng)態(tài)聚焦參數(shù)所消耗的空間在不壓縮的情況下為494 560 Bytes,采用基于誤差約束的超聲延時(shí)參數(shù)壓縮算法后消耗的空間為1 260 Bytes,壓縮比達(dá)到了2.548‰,采用結(jié)合動(dòng)態(tài)孔徑的超聲延時(shí)參數(shù)壓縮算法后消耗的空間為354.75 Bytes,壓縮比達(dá)到了0.717‰,是第二種壓縮算法的28.15%,有效緩解了聚焦延時(shí)參數(shù)的存儲(chǔ)壓力,為在FPGA 上實(shí)現(xiàn)超聲成像提供了理論基礎(chǔ)。