国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的實(shí)時載波頻率檢測電路設(shè)計(jì)

2020-07-23 06:27陳文藝榮幸楊輝
現(xiàn)代電子技術(shù) 2020年4期
關(guān)鍵詞:對比分析電路設(shè)計(jì)

陳文藝 榮幸 楊輝

摘? 要: 為了實(shí)現(xiàn)窄帶調(diào)制信號載波頻率的快速準(zhǔn)確獲取并減少硬件資源消耗,基于FPGA設(shè)計(jì)一種綜合哥茲柔(Goertzel)算法和能量重心估計(jì)算法的實(shí)時載波頻率檢測電路。首先,確定頻率檢測算法實(shí)現(xiàn)流程,在Matlab中進(jìn)行了頻譜和能量重心的仿真;接著提出一種低復(fù)雜度頻率檢測系統(tǒng)的硬件實(shí)現(xiàn)架構(gòu),以8個哥茲柔電路并行運(yùn)行獲取信號頻譜,通過查找峰值譜線位置初步估計(jì)出信號頻率;最后,采用能量重心估計(jì)法,精確估計(jì)出載波信號的頻率。實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的低復(fù)雜度實(shí)時頻率檢測硬件電路在資源消耗上僅為傳統(tǒng)FFT方法的[13],測頻相對誤差小于0.2%,2 048點(diǎn)頻譜獲取時間僅為103 μs,易于硬件實(shí)現(xiàn),可用于實(shí)時準(zhǔn)確獲取載波頻率。

關(guān)鍵詞: 載波頻率檢測; 電路設(shè)計(jì); FPGA; 架構(gòu)規(guī)劃; 頻率估算; 對比分析

中圖分類號: TN913.6?34; TP391? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼: A? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2020)04?0025?04

Design of FPGA?based circuit for real?time carrier frequency detection

CHEN Wenyi1, RONG Xing2, YANG Hui1

(1. Institute of Internet of Things and IT?based Industrialization, Xian University of Posts and Telecommunications, Xian 710061, China;

2. School of Communication and Information Engineering, Xian University of Posts and Telecommunications, Xian 710121, China)

Abstract: A real?time carrier frequency detection circuit combining Goertzel algorithm and energy barycenter estimation algorithm is designed based on the FPGA, so as to obtain the carrier frequency of narrow?band modulating signal quickly and accurately and reduce the hardware resource consumption. The realization process of frequency detection algorithm is determined, and the simulation of frequency spectrum and energy barycenter is carried out in Matlab. A hardware implementation architecture of the low?complexity frequency detection system is proposed, in which the signal frequency spectrum is obtained by running 8 Goerztel circuits in parallel, the signal frequency is estimated preliminarily by finding the position of the peak spectrum line, and the frequency of the carrier signal is estimated accurately by means of the energy barycenter estimation method. The experimental results show that the designed detection hardware circuit for low?complexity real?time frequency only has 1/3 of the resource consumption as that of the traditional FFT method, the relative error of its frequency measurement is less than 0.2%, and the frequency spectrum acquisition time of 2 048 points is only 103 μs, which is easy to implement and can be used for accurately acquiring the carrier frequency in real time.

Keywords: carrier frequency detection; circuit design; FPGA; architecture planning; frequency estimation; contrastive analysis

0? 引? 言

隨著圖像傳感器和集成電子技術(shù)的發(fā)展,光學(xué)直線位置編碼器中采用了圖像檢測技術(shù)[1]?;趫D像傳感器的光學(xué)直線位置編碼器,也稱為條碼尺,編碼結(jié)構(gòu)簡單,便于實(shí)現(xiàn)絕對位置編碼;由于直接對編碼的條碼圖像進(jìn)行數(shù)字化,并用數(shù)字信號處理技術(shù)提取條碼位置信息,極大地提高了檢測精度和可靠性[2]。在條碼尺定位中,實(shí)時準(zhǔn)確地獲取條碼周期(載波頻率)是整個條碼位置信息提取過程中關(guān)鍵的一步,等效于窄帶調(diào)制信號的載波頻率檢測。文獻(xiàn)[3?4]分別提出了基于自相關(guān)函數(shù)相位和分段自相關(guān)的信號頻率估計(jì)算法,在頻率檢測中具有很高的準(zhǔn)確度,但算法僅限于對正弦信號的頻率檢測,并要求信號具有較高信噪比;文獻(xiàn)[5]提出了一種基于自相關(guān)法和三點(diǎn)法的信號頻率檢測法,原理簡單,運(yùn)算量小,頻率跟蹤性強(qiáng)且不受采樣頻率的影響,但信號中的諧波分量會大大降低精確度,影響測量結(jié)果;文獻(xiàn)[6]提出了一種基于結(jié)構(gòu)函數(shù)算法的頻率檢測方法,能夠很好判斷信號周期,但精度的提高需要犧牲存儲資源和運(yùn)算速度;文獻(xiàn)[7?8]先后提出了基于修正Rife算法和能量重心法的頻率估計(jì)算法,在頻率估計(jì)性能上比較穩(wěn)定,但在獲取信號的功率譜時,采用FFT運(yùn)算會增加許多無意義的計(jì)算量;文獻(xiàn)[9]提出了基于Goertzel算法的信號檢測方法,仿真結(jié)果表明基于Goertzel算法的信號編解碼具有速度快、精度高、運(yùn)算量少的特點(diǎn),但沒有對Goertzel算法進(jìn)行進(jìn)一步的應(yīng)用。

本文在Goertzel算法的特性基礎(chǔ)上,設(shè)計(jì)了一種綜合Goertzel算法和能量重心法的載波頻率檢測電路。首先介紹了頻率檢測原理,針對不同的信號模型進(jìn)行了算法仿真分析,其次給出了頻率檢測系統(tǒng)的硬件實(shí)現(xiàn)架構(gòu)。通過仿真和測試,表明所設(shè)計(jì)的電路消耗資源少、測量精度高和硬件執(zhí)行速度快,并且可以實(shí)現(xiàn)資源和速度的靈活配置,符合高性能、高靈活性和低消耗的特點(diǎn)。

1? 頻率檢測原理

對傳感器獲取的載波信號進(jìn)行頻率檢測的算法流程如圖1所示。在實(shí)際中采集的信號往往伴隨著噪聲,首先對信號進(jìn)行灰度形態(tài)學(xué)濾波來提高信噪比,接著對信號進(jìn)行自適應(yīng)閾值二值化,將信號轉(zhuǎn)化為二值圖像,即完成了對信號的預(yù)處理工作;然后采用譜分析的方法估計(jì)出信號頻率,借助Goertzel算法對信號進(jìn)行頻譜獲取,可粗略估計(jì)出信號頻率;最后采用能量重心估計(jì)算法對信號頻譜進(jìn)行校正,獲得高精度的頻率估計(jì)值。

1.1? Goertzel算法原理

在一些應(yīng)用中,信號的頻譜范圍已知。在這種情況下,與其進(jìn)行完整的傅里葉變換,不如采用Goertzel算法,后者可以極大地減少計(jì)算量[10]。首先考慮傅里葉變換的一個單獨(dú)的頻率成分:

[Fu=x=0N-1fxWuxN? ? ?=x=0N-2fxWuxNN-x+fN-1W-uN] (1)

式(1)等效于一個迭代運(yùn)算:

[Fu=Fun-1+fnW-uN] (2)

這樣仍需要對每個采樣點(diǎn)進(jìn)行一次復(fù)數(shù)乘法運(yùn)算,從而在z域內(nèi)考察此迭代過程:

[Fuzfz=11-2cos2πuNz-1+z-2W-uN-z-1] (3)

式中,第一項(xiàng)可作為一個實(shí)系數(shù)二階迭代過程來實(shí)現(xiàn):

[Sun=fn+2cos2πuNSun-1-Sun-2] (4)

經(jīng)過N個采樣點(diǎn)的積累后,可從第二項(xiàng)計(jì)算頻率項(xiàng):

[Fu=SuN-1cos2πuN-SuN-2+? ? ? ? ? ? jSuN-1sin2πuN] (5)

此過程相當(dāng)于一個IIR濾波器來處理流水化的數(shù)據(jù),包含前饋和反饋兩部分。反饋部分必須對每個采樣[fn]計(jì)算一次,而前饋部分只需在[n=N]時計(jì)算一次,在輸入[N]個采樣點(diǎn)數(shù)據(jù)后開始給出頻率值。當(dāng)需要計(jì)算多個頻點(diǎn)值時,可以對每個頻點(diǎn)復(fù)制電路見圖2。

1.2? 能量重心估計(jì)算法原理

通過Goertzel算法得到信號的頻譜,然后通過搜索信號功率譜峰值譜線的位置可實(shí)現(xiàn)粗略的頻率估計(jì)。實(shí)際應(yīng)用中,對信號的頻率估計(jì)性能有更高的要求,因此在以峰值譜線粗估計(jì)的基礎(chǔ)上,采用質(zhì)心算法計(jì)算以峰值譜線為中心的區(qū)間的質(zhì)心位置,并以該質(zhì)心位置作為載波信號精確的頻率估計(jì)值。設(shè)對信號[yn]做[N]點(diǎn)Goertzel變換得到離散頻譜[Yk],則信號的功率譜[Gk]為:

[Gk=Yk/N2] (6)

通過逐點(diǎn)掃描功率譜信號[Gk],檢測[Gk]中的峰值譜線位置[Pmax]。再以峰值譜線位置[Pmax]為中心,取[2M+1]條譜線作為峰值譜線區(qū)間,用質(zhì)心法計(jì)算峰值譜線區(qū)間的質(zhì)心位置,并以該質(zhì)心位置作為圖像信號頻率的精確估計(jì)值[PP],其中:

[PP=k=12M+1GPmax+k-M-1?Pmax+k-M-1k=12M+1GPmax+k-M-1] (7)

1.3? 信號模型與算法仿真

在算法原理基礎(chǔ)上,按照頻率檢測算法的實(shí)現(xiàn)流程,以不同情況的條碼尺作為輸入信號模型,首先用FFT算法和Goertzel算法分別求出信號的頻譜;然后采用質(zhì)心算法,根據(jù)求得的頻譜算出信號的能量重心。仿真結(jié)果如圖3~圖5所示。

本文結(jié)合實(shí)際,充分分析了可能出現(xiàn)的3種條碼尺情況,包括正常的條碼和異常的有缺失的條碼。在仿真圖中,圖a)表示各種情況下的信號模型,圖b)表示用FFT求解出的信號的頻譜,圖c)表示用Goerztel算法求解出的信號的頻譜,采用質(zhì)心算法求出的能量重心值power顯示在圖b)和圖c)的右上方。通過仿真結(jié)果可以分析:Goertzel算法針對正常和異常條碼都可以準(zhǔn)確求取其頻譜,在信號頻譜的基礎(chǔ)上,采用能量重心估計(jì)算法可以準(zhǔn)確求得載波頻率。

2? FPGA硬件實(shí)現(xiàn)

2.1? 系統(tǒng)設(shè)計(jì)

頻率檢測系統(tǒng)的電路如圖6所示,主要分為數(shù)據(jù)緩存模塊、頻率項(xiàng)計(jì)算模塊、能量重心計(jì)算模塊和控制狀態(tài)機(jī)模塊。二值圖像在雙口RAM中完成數(shù)據(jù)緩存后,通過并行的Goertzel電路計(jì)算出信號的頻譜,再通過能量重心法求取功率譜的質(zhì)心位置即可確定信號頻率,得到的頻率值將送到后續(xù)處理電路,整個系統(tǒng)的數(shù)據(jù)路徑均在主控制狀態(tài)機(jī)和輔控制狀態(tài)機(jī)的控制下完成。

2.2? 數(shù)據(jù)緩存模塊

數(shù)據(jù)緩存模塊采用了乒乓操作。外部輸入數(shù)據(jù)流通過輸入數(shù)據(jù)選擇控制模塊送入兩個數(shù)據(jù)緩沖區(qū)中,數(shù)據(jù)緩沖模塊采用雙口RAM來作為存儲單元。在第一個緩存周期,將輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩沖區(qū)1;在第二個緩沖周期,輸入的數(shù)據(jù)流在緩沖區(qū)2完成緩存的同時,輸出數(shù)據(jù)選擇控制模塊將第一個周期緩存的數(shù)據(jù)流送到后續(xù)處理模塊;在第三個緩沖周期,輸入數(shù)據(jù)選擇控制模塊進(jìn)行切換,輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩沖區(qū)1,輸出數(shù)據(jù)選擇控制模塊也進(jìn)行切換,將第二個緩沖周期緩存的數(shù)據(jù)流送到后續(xù)處理模塊,如此不斷循環(huán)。

2.3? 頻率項(xiàng)計(jì)算模塊

根據(jù)頻譜計(jì)算功能需求分析,設(shè)計(jì)一套并串結(jié)合的數(shù)據(jù)處理算法,該模塊以8個Goertzel硬件電路并行完成8個頻點(diǎn)計(jì)算,重復(fù)串行計(jì)算5次,共完成40個頻點(diǎn)的計(jì)算,相應(yīng)的控制信號均由主控制狀態(tài)機(jī)產(chǎn)生,計(jì)算所需系數(shù)被提前存放在ROM中。該模塊工作流程見圖7。

其基本運(yùn)算思想為:

1) 上電開始后,預(yù)加載信號load拉高,完成一組實(shí)部系數(shù)加載操作;

2) 電路使能信號enable拉高,Goertzel電路開始并行工作,一次并行運(yùn)算需進(jìn)行2 048次迭代操作,在最后一次迭代操作時需將實(shí)部系數(shù)右移一位;

3) 電路進(jìn)入暫停狀態(tài),將并行運(yùn)算結(jié)果通過多路選擇器存放在單口RAM中,同時加載一組虛部系數(shù)和下一組實(shí)部系數(shù);

4) 在完成一次并行運(yùn)算和結(jié)果的存儲后,使電路復(fù)位,清零寄存器;

5) 電路進(jìn)行下一次并行運(yùn)算,處理過程重復(fù)步驟2)~步驟4)操作。單口RAM中最終存儲著40個實(shí)部值和40個虛部值,進(jìn)行上述完整運(yùn)算流程耗費(fèi)的時鐘數(shù)為M=5×(2 048+16)+12=10 332。

2.4? 能量重心計(jì)算模塊

能量重心計(jì)算電路主要包括功率譜計(jì)算模塊、峰值譜線計(jì)算模塊、質(zhì)心計(jì)算模塊和輔控制狀態(tài)機(jī)模塊,電路結(jié)構(gòu)框圖如圖8所示。

在輔控制狀態(tài)機(jī)的控制下,功率譜計(jì)算模塊讀取存放在單口RAM中的實(shí)、虛部數(shù)據(jù),隨之計(jì)算出每個頻點(diǎn)對應(yīng)的幅度的平方值,即得到了信號的功率譜[Gk,k=1,2,…,40];峰值譜線計(jì)算模塊通過查找功率譜的峰值譜線位置[Pmax],可以粗略估計(jì)出信號頻率;質(zhì)心計(jì)算模塊是數(shù)據(jù)處理部分處理核心,首先以峰值譜線位置[Pmax]為中心,取9條(M=4)譜線作為峰值譜線區(qū)間[GPmax-n,n=-4,-3,…,4],然后依據(jù)質(zhì)心公式計(jì)算出峰值譜線區(qū)間的質(zhì)心位置[PP],最后以該質(zhì)心位置[PP]作為最后的信號頻率估計(jì)值[f0]。

3? 實(shí)驗(yàn)結(jié)果與分析

為了評估提出的基于Goertzel算法的頻率檢測系統(tǒng)硬件架構(gòu),本文同時選用Altera自帶的FFT IP核去代替Goertzel并行電路來完成頻率項(xiàng)計(jì)算,從硬件資源消耗、2 048點(diǎn)頻譜獲取時間和頻率求解精度三個方面對兩種實(shí)現(xiàn)架構(gòu)進(jìn)行了對比分析。設(shè)計(jì)中FPGA采用Altera公司的Cyclone系列的EP4CE30F23C6芯片,該芯片內(nèi)部資源豐富,可以滿足系統(tǒng)需求。采用Verilog語言編程,在Quartus Ⅱ 11.0平臺上進(jìn)行邏輯綜合和測試,對比結(jié)果如表1所示。

由表1可得:基于Goertzel算法的頻率檢測系統(tǒng)相對于FFT算法,在保證測頻精度和實(shí)時性的同時,大大地減少了硬件資源消耗,在邏輯單元數(shù)量(LEs)、寄存器數(shù)量(Registers)和內(nèi)部存儲資源(Memory bits)三個方面均有明顯的體現(xiàn)。同時,系統(tǒng)可以通過增加Goertzel硬件電路的并行數(shù)量,來進(jìn)一步提高2 048點(diǎn)頻譜獲取速度,因此大大地提高了系統(tǒng)的靈活性。

4? 結(jié)? 語

本文利用流水線技術(shù)和串并結(jié)合思想,設(shè)計(jì)了一種基于Goertzel算法的載波頻率檢測硬件電路。經(jīng)過驗(yàn)證和分析,相比于傳統(tǒng)的FFT算法,在保證精度的同時,采用Goertzel算法極大地降低了硬件資源消耗,且系統(tǒng)達(dá)到了設(shè)計(jì)高速的要求,可適用于窄帶信號頻率的快速獲取,具有一定的實(shí)際應(yīng)用價值。

參考文獻(xiàn)

[1] 熊金旺,賈平,劉晶紅.利用圖像傳感器的光電軸角編碼器編碼研究 [J].測控技術(shù),2009,28(12):6?9.

[2] 齊荔荔,萬秋華.高分辨力面陣圖像式光電編碼器的測角技術(shù)[J].儀器儀表學(xué)報,2013,34(1):234?240.

[3] 黃超,索繼東,于亮.基于自相關(guān)函數(shù)相位的正弦信號頻率估計(jì)新算 法[J].電訊技術(shù),2014,54(1):63?67.

[4] 張曉威,李洋洋,孟凡明.分段自相關(guān)頻率估計(jì)算法研究[J].計(jì)算機(jī)應(yīng)用研究,2014,31(1):92?94.

[5] 馬亞男,戴爾晗,陳誠.一種利用自相關(guān)法和三點(diǎn)法檢測信號頻率的方法[J].微型機(jī)與應(yīng)用,2016,35(14):74?76.

[6] 姜乃卓,陳孝楨.微弱周期信號頻率檢測的一種改進(jìn)方法[J].實(shí)驗(yàn)技術(shù)與管理,2009,26(8):32?35.

[7] 王旭東,劉渝,鄧振淼.基于修正Rife算法的正弦波頻率估計(jì)及FPGA實(shí)現(xiàn)[J].系統(tǒng)工程與電子技術(shù),2008,30(4):621?624.

[8] 侯盼衛(wèi),楊錄.基于自相關(guān)檢測法和能量重心法的正弦信號頻率估計(jì)算法[J].科學(xué)技術(shù)與工程,2014,14(3):97?102.

[9] 陳系玉,張曉晰,哈曉聞.基于GOERTZEL算法的雙音多頻信號檢測與仿真[J].科技信息,2012(28):118?119.

[10] BAILEY D,貝利,原魁,等.基于FPGA的嵌入式圖像處理系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2013.

猜你喜歡
對比分析電路設(shè)計(jì)
Altium Designer在電路設(shè)計(jì)中的應(yīng)用
負(fù)反饋放大電路設(shè)計(jì)
成渝經(jīng)濟(jì)區(qū)城市經(jīng)濟(jì)發(fā)展水平比較研究
英漢動物詞匯文化內(nèi)涵的對比分析
基于UC3843的60W升壓電路設(shè)計(jì)
基于數(shù)據(jù)庫的唐詩宋詞對比研究
基于UC3842應(yīng)用電路設(shè)計(jì)