專(zhuān)利名稱(chēng):一種中值濾波電路及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及中值濾波領(lǐng)域,尤其涉及ー種應(yīng)用于微弱信號(hào)測(cè)量的中值濾波電路及方法。
背景技術(shù):
在微弱信號(hào)測(cè)量吋,由于受到各種干擾,使得測(cè)量結(jié)果產(chǎn)生奇異數(shù)據(jù),中值濾波能很好的解決這個(gè)問(wèn)題。中值濾波是ー種典型的非線(xiàn)性濾波技術(shù),對(duì)某ー被測(cè)參數(shù)連續(xù)采樣n次(一般n取奇數(shù)),然后把n次采樣值按大小排列,取中間值為本次采樣值(若n為偶數(shù),則排序的兩個(gè)中間值的平均值為本次采樣值)。中位值濾波能有效地克服偶然因素引起的波動(dòng)或采樣器不穩(wěn)定引起的誤碼等脈沖干擾。中值濾波現(xiàn)在多用于兩維的圖像處理領(lǐng)域,能很好的濾出圖像的椒鹽噪聲(Salt& P印perNoise),中值的計(jì)算在于對(duì)滑動(dòng)窗口內(nèi)采樣值的排序操作。要進(jìn)行排序,就必須對(duì)序列中的采樣值做比較和交換,采樣值之間的比較次數(shù)是影響排序速度的ー個(gè)重要因素。現(xiàn)有技術(shù)中關(guān)于兩維的中值濾波方法應(yīng)用快速排隊(duì)算法來(lái)取代傳統(tǒng)的基于冒泡排序法的排序串行算法,但仍存在以下缺點(diǎn):一方面,窗ロ長(zhǎng)度過(guò)短,不能適應(yīng)大窗ロ的中值濾波;另ー方面,對(duì)長(zhǎng)度為n的中值濾波窗ロ,需要n+1個(gè)串行連接的處理單元,算法和控制復(fù)雜,計(jì)算量很大,較費(fèi)時(shí),且輸出時(shí)間不確定。因此,急需ー種算法和控制相對(duì)簡(jiǎn)單,且輸出時(shí)間確定的快速中值濾波方法。
發(fā)明內(nèi)容
本發(fā)明所解決的技術(shù)問(wèn)題在于提供ー種中值濾波電路及方法,應(yīng)用于微弱信號(hào)測(cè)量,算法和控制相對(duì)簡(jiǎn)單,速度快,且輸出時(shí)間確定。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供ー種中值濾波電路,應(yīng)用于微弱信號(hào)測(cè)量,包括:控制處理單元,產(chǎn)生整個(gè)中值濾波電路的控制信號(hào),完成對(duì)整個(gè)中值濾波電路的控制功能;時(shí)間戳處理單元,接收輸入數(shù)據(jù)并在所述控制處理單元輸出的控制信號(hào)下輸出為加蓋有效時(shí)間戳的數(shù)據(jù);第一排隊(duì)處理單元和第二排隊(duì)處理單元,對(duì)所述加蓋有效時(shí)間戳的數(shù)據(jù)進(jìn)行中值濾波算法處理,輸出中值數(shù)據(jù);中值數(shù)據(jù)輸出選擇器,選擇所述第一排隊(duì)處理單元的中值數(shù)據(jù)或所述第二排隊(duì)處理單元的中值數(shù)據(jù)作為有效中值數(shù)據(jù)輸出。進(jìn)ー步的,在測(cè)量一微弱信號(hào)之前,所述微弱信號(hào)先經(jīng)一信號(hào)調(diào)理電路進(jìn)行調(diào)整和模擬濾波,再經(jīng)ー模數(shù)轉(zhuǎn)換電路轉(zhuǎn)換后輸入所述中值濾波電路。進(jìn)ー步的,所述微弱信號(hào)經(jīng)模數(shù)轉(zhuǎn)換電路轉(zhuǎn)換,產(chǎn)生輸入數(shù)據(jù)信號(hào)和輸入數(shù)據(jù)有效信號(hào),所述控制處理單元接收所述輸入數(shù)據(jù)有效信號(hào),所述時(shí)間戳處理単元接收所述輸入數(shù)據(jù)信號(hào)。進(jìn)ー步的,所述第一排隊(duì)處理單元和第二排隊(duì)處理單元中有相等數(shù)目的滑動(dòng)窗ロ數(shù)據(jù)緩存模塊,且緩存的數(shù)據(jù)按照由小到大或由大到小的方式進(jìn)行存儲(chǔ)。進(jìn)ー步的,所述相等數(shù)目為偶數(shù)時(shí),所述第一排隊(duì)處理單元和第二排隊(duì)處理單元還各包含ー個(gè)求取中間位置的兩個(gè)滑動(dòng)窗口數(shù)據(jù)緩存模塊中的數(shù)據(jù)的平均值的中值處理模塊,所述第一排隊(duì)處理單元的中值處理模塊得到的平均值為所述第一排隊(duì)處理單元的中值數(shù)據(jù),所述第二排隊(duì)處理單元的中值處理模塊得到的平均值為所述第二排隊(duì)處理單元的中值數(shù)據(jù)。進(jìn)ー步的,所述相等數(shù)目為奇數(shù)時(shí),所述第一排隊(duì)處理單元中間位置的滑動(dòng)窗ロ數(shù)據(jù)緩存模塊中的數(shù)據(jù)為所述第一排隊(duì)處理單元的中值數(shù)據(jù),所述第二排隊(duì)處理單元中間位置的滑動(dòng)窗口數(shù)據(jù)緩存模塊中的數(shù)據(jù)為所述第二排隊(duì)處理單元的中值數(shù)據(jù)。進(jìn)ー步的,所述第一排隊(duì)處理單元和第二排隊(duì)處理單元是算法相同的兩個(gè)處理單元,均分兩步運(yùn)算:第一步對(duì)最新輸入數(shù)據(jù)和緩存數(shù)據(jù)進(jìn)行大小比較和交換,輸出有效的中值;第二步進(jìn)行滑動(dòng)窗ロ的滑動(dòng)運(yùn)算。進(jìn)ー步的,當(dāng)所述第一排隊(duì)處理單元接收最新輸入數(shù)據(jù)時(shí),所述第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊中的數(shù)據(jù)由最新輸入數(shù)據(jù)和第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊中的數(shù)據(jù)按照大小比較結(jié)果進(jìn)行交換更新;當(dāng)所述第二排隊(duì)處理單元接收最新輸入數(shù)據(jù)時(shí),所述第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊中的數(shù)據(jù)由最新輸入數(shù)據(jù)和第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊中的數(shù)據(jù)按照比較結(jié)果進(jìn)行交換更新。進(jìn)ー步的,當(dāng)所述第一排隊(duì)處理單元接收最新輸入數(shù)據(jù)時(shí),所述第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊中的數(shù)據(jù)由最新輸入數(shù)據(jù)和第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊中的數(shù)據(jù)按照大小比較結(jié)果進(jìn)行交換更新,包括:判斷所述最新輸入數(shù)據(jù)加入所述第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊的滑動(dòng)窗ロ后,所述第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊的所有滑動(dòng)窗口中數(shù)據(jù)的原有存儲(chǔ)序列是否有效;如果所述原有存儲(chǔ)序列有效,就將所述第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊的前一位置滑動(dòng)窗口中的數(shù)據(jù)依次交換更新到第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊的當(dāng)前位置的滑動(dòng)窗口中,所述最新輸入數(shù)據(jù)存到第一排隊(duì)處理單元的最后ー個(gè)第二排隊(duì)處理單元的數(shù)據(jù)所在的滑動(dòng)窗口中;如果原有存儲(chǔ)序列無(wú)效,通過(guò)最新輸入數(shù)據(jù)與第二排隊(duì)處理單元的滑動(dòng)窗口數(shù)據(jù)緩存模塊中的數(shù)據(jù)進(jìn)行大小比較,將最新輸入數(shù)據(jù)存儲(chǔ)到第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊中合適的滑動(dòng)窗ロ,并將第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊中與所述合適的滑動(dòng)窗ロ的位置相同的滑動(dòng)窗口中的數(shù)據(jù)順次交換到第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊的所述合適的滑動(dòng)窗ロ之后滑動(dòng)窗ロ中,在第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊中產(chǎn)生包含最新輸入數(shù)據(jù)的新排隊(duì)序列,輸出新排隊(duì)序列的中值數(shù)據(jù)及中值數(shù)據(jù)有效信號(hào)。進(jìn)ー步的,所述第一排隊(duì)處理單元和第二排隊(duì)處理單元還輸出中值數(shù)據(jù)有效信號(hào),所述中值濾波電路還包括中值數(shù)據(jù)輸出有效選擇器,接收所述控制處理單元的控制信號(hào)及所述第一排隊(duì)處理單元和第二排隊(duì)處理單元的中值數(shù)據(jù)有效信號(hào)并輸出。進(jìn)ー步的,所述中值濾波電路由可編程邏輯器件FPGA實(shí)現(xiàn),或者由比較器、計(jì)數(shù)器和數(shù)據(jù)存儲(chǔ)器搭建實(shí)現(xiàn)。根據(jù)本發(fā)明的另一面,提供一種應(yīng)用上述中值濾波電路的中值濾波方法,應(yīng)用于信號(hào)測(cè)量,該方法包括如下步驟:(a)所述中值濾波電路的最新輸入數(shù)據(jù)輸入到時(shí)間戳處理單元,在控制處理單元的控制下加蓋時(shí)間戳后輸出;(b)所述控制處理單元選擇第一排隊(duì)處理單元對(duì)接收加蓋時(shí)間戳后輸出的所述最新輸入數(shù)據(jù);(C)所述第一排隊(duì)處理單元對(duì)最新輸入數(shù)據(jù)和第二排隊(duì)處理單元滑動(dòng)窗口內(nèi)的緩存數(shù)據(jù)進(jìn)行大小比較和交換,輸出最新輸入數(shù)據(jù)與所述緩存數(shù)據(jù)的中值數(shù)據(jù);(d)所述第一排隊(duì)處理單元進(jìn)行滑動(dòng)窗ロ的滑動(dòng)運(yùn)算;(e)所述中值數(shù)據(jù)輸出選擇接收器所述中值數(shù)據(jù)作為有效中值數(shù)據(jù)輸出;(f)所述中值濾波電路接收下ー個(gè)輸入數(shù)據(jù),重復(fù)上述步驟,其中所述控制處理單元選擇所述第二排隊(duì)處理單元對(duì)接收加蓋時(shí)間戳后輸出的所述下ー個(gè)輸入數(shù)據(jù)。與現(xiàn)有技術(shù)相比,本發(fā)明提供的中值濾波電路及方法,通過(guò)時(shí)間戳處理単元確定了輸出時(shí)間,通過(guò)所述第一排隊(duì)處理單元和第二排隊(duì)處理單元實(shí)現(xiàn)了ー維快速中值濾波,算法和控制相對(duì)簡(jiǎn)単,能適應(yīng)大窗ロ的中值濾波。
圖1是本發(fā)明被測(cè)信號(hào)的處理單元示意圖;圖2是本發(fā)明具體實(shí)施例的中值濾波電路示意圖;圖3是本發(fā)明具體實(shí)施例的第一排隊(duì)處理單元排序算法流程圖;圖4是本發(fā)明具體實(shí)施例的排隊(duì)處理單元滑動(dòng)窗ロ的滑動(dòng)算法流程圖。
具體實(shí)施例方式以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明提出的中值濾波電路及方法作進(jìn)ー步詳細(xì)說(shuō)明。需說(shuō)明的是,附圖均采用非常簡(jiǎn)化的形式,僅用于方便、明晰地輔助說(shuō)明本發(fā)明實(shí)施例的目的。本發(fā)明提供ー種中值濾波電路,應(yīng)用于微弱信號(hào)測(cè)量。請(qǐng)參考圖1,本實(shí)施例中,被測(cè)信號(hào)進(jìn)入信號(hào)調(diào)理電路I進(jìn)行電壓放大和初步的模擬濾波后,進(jìn)入模數(shù)轉(zhuǎn)換電路2進(jìn)行模數(shù)轉(zhuǎn)換生成的數(shù)字信號(hào),該數(shù)字信號(hào)為中值濾波電路3的輸入。本實(shí)施例中,模數(shù)轉(zhuǎn)換電路I可由AD9600、AD7343等多種轉(zhuǎn)換芯片實(shí)現(xiàn),信號(hào)調(diào)理電路可由信號(hào)儀用放大器AD8221BR和運(yùn)算放大器AD8672ARZ等運(yùn)放實(shí)現(xiàn)。請(qǐng)參考圖2,本發(fā)明提供的中值濾波電路包含時(shí)間戳處理單元30、控制處理單元31、第一排隊(duì)處理單元32、第二排隊(duì)處理單元33、數(shù)據(jù)輸出選擇器34、數(shù)據(jù)輸出有效選擇器35等功能處理單元。本實(shí)施例中,中值濾波電路有兩個(gè)來(lái)自模數(shù)轉(zhuǎn)換電路輸入信號(hào)(輸入數(shù)據(jù)20、輸入數(shù)據(jù)有效21)和兩個(gè)輸出(輸出數(shù)據(jù)36、輸出數(shù)據(jù)有效37),中值濾波電路可由可編程邏輯器件FPGA實(shí)現(xiàn),也可由比較器、計(jì)數(shù)器和數(shù)據(jù)存儲(chǔ)器等芯片搭建。控制處理単元31的輸入是輸入數(shù)據(jù)有效21的信號(hào),根據(jù)相應(yīng)的控制機(jī)制,產(chǎn)生整個(gè)中值濾波電路的控制信號(hào),完成對(duì)整個(gè)中值濾波電路的控制功能。時(shí)間戳處理單元30的輸入信號(hào)是輸入數(shù)據(jù)20和控制處理單元31輸出的控制信號(hào),輸出是加蓋了時(shí)間戳的數(shù)據(jù);時(shí)間戳處理單元30在控制處理單元31輸出的控制信號(hào)有效時(shí)生成的有效時(shí)間戳加蓋在輸入數(shù)據(jù)20的輸入數(shù)據(jù)上,并將加蓋了時(shí)間戳的數(shù)據(jù)輸出給第一排隊(duì)處理單元32和第二排隊(duì)處理單元33。第一排隊(duì)處理單元32和第二排隊(duì)處理單元33是算法相同的兩個(gè)處理單元,他們的數(shù)據(jù)緩存模塊中各有n個(gè)按照由0到n-1的方式進(jìn)行命名的滑動(dòng)窗ロ,且緩存的數(shù)據(jù)按照由小到大或由大到小的方式進(jìn)行存儲(chǔ)。當(dāng)n為奇數(shù)吋,第一排隊(duì)處理單元32輸出中值數(shù)據(jù)為數(shù)據(jù)緩存模塊的第(n-1)/2滑動(dòng)窗口中緩存的數(shù)據(jù);第二排隊(duì)處理單元33輸出中值數(shù)據(jù)為數(shù)據(jù)緩存模塊的第(n-1)/2滑動(dòng)窗口中緩存的數(shù)據(jù);當(dāng)11為偶數(shù)時(shí),所述第一排隊(duì)處理單元32和第二排隊(duì)處理單元33還各包含一個(gè)求取數(shù)據(jù)緩存模塊的中間位置的兩個(gè)滑動(dòng)窗口中緩存數(shù)據(jù)的平均值的中值處理模塊,此時(shí),第ー排隊(duì)處理單元32輸出中值數(shù)據(jù)為其數(shù)據(jù)緩存模塊的n/2滑動(dòng)窗口中緩存的數(shù)據(jù)與(n-2)/2滑動(dòng)窗口中緩存的數(shù)據(jù)的平均值,第二排隊(duì)處理單元32輸出中值數(shù)據(jù)為其數(shù)據(jù)緩存模塊的n/2滑動(dòng)窗ロ中緩存的數(shù)據(jù)與(n-2)/2滑動(dòng)窗口中緩存的數(shù)據(jù)的平均值。第一排隊(duì)處理單元32和第二排隊(duì)處理單元33采用乒乓機(jī)制,它們?cè)诳刂铺幚韱卧?1的控制下決定是由第一排隊(duì)處理單元32還是第二排隊(duì)處理單元33實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)20的最新輸入數(shù)據(jù)的中值濾波算法處理,該中值濾波算法處理分兩步運(yùn)算:第一步對(duì)最新輸入數(shù)據(jù)和緩存數(shù)據(jù)進(jìn)行比較和交換,輸出有效的中值,其中,所述第一排隊(duì)處理單元和第ニ排隊(duì)處理單元的中值濾波運(yùn)算采用乒乓機(jī)制時(shí),第一排隊(duì)處理單元32的數(shù)據(jù)緩存模塊中的數(shù)據(jù)由最新輸入數(shù)據(jù)和第二排隊(duì)處理單元33的數(shù)據(jù)緩存模塊中的數(shù)據(jù)按照比較結(jié)果進(jìn)行交換更新;第二排隊(duì)處理單元33的數(shù)據(jù)緩存模塊中的數(shù)據(jù)由最新輸入數(shù)據(jù)和第一排隊(duì)處理単元32的數(shù)據(jù)緩存模塊中的數(shù)據(jù)按照比較結(jié)果進(jìn)行交換更新;第二步進(jìn)行窗ロ的滑動(dòng)運(yùn)算。中值數(shù)據(jù)輸出選擇器34的輸入是控制處理單元31輸出的控制信號(hào)、第一排隊(duì)處理單元32輸出的中值數(shù)據(jù)和第二排隊(duì)處理單元33輸出的中值數(shù)據(jù),輸出是有效的中值數(shù)據(jù)。中值數(shù)據(jù)輸出有效選擇器35的輸入是控制處理單元31輸出的控制信號(hào)、第一排隊(duì)處理單元32輸出的中值數(shù)據(jù)有效信號(hào)和第二排隊(duì)處理單元33輸出的中值數(shù)據(jù)有效信號(hào),輸出是中值數(shù)據(jù)有效信號(hào)。請(qǐng)參考圖2,根據(jù)本發(fā)明的另一面,提供一種應(yīng)用上述中值濾波電路的中值濾波方法,應(yīng)用于信號(hào)測(cè)量,該方法包括如下步驟:(a)所述中值濾波電路的最新輸入數(shù)據(jù)輸入到時(shí)間戳處理單元30,在控制處理單元31的控制下加蓋時(shí)間戳后輸出。(b)所述控制處理單元31選擇第一排隊(duì)處理單元對(duì)接收加蓋時(shí)間戳后輸出的所述最新輸入數(shù)據(jù)。(c)第一排隊(duì)處理單元32對(duì)最新輸入數(shù)據(jù)和第二排隊(duì)處理單元33滑動(dòng)窗口內(nèi)的緩存數(shù)據(jù)進(jìn)行比較和交換,輸出最新輸入數(shù)據(jù)與所述緩存數(shù)據(jù)的中值數(shù)據(jù)。請(qǐng)參考圖3,圖3為第一排隊(duì)處理單元32的排序算法流程圖。步驟300中,第一排隊(duì)處理単元32接收到加蓋時(shí)間戳后輸出的所述最新輸入數(shù)據(jù),與第二排隊(duì)處理單元33的數(shù)據(jù)緩存模塊中的數(shù)據(jù)進(jìn)行比較,判斷最新輸入數(shù)據(jù)加入后,第二排隊(duì)處理單元33的數(shù)據(jù)緩存模塊的數(shù)據(jù)的原有存儲(chǔ)序列是否有效;步驟301中,如果原有存儲(chǔ)序列有效,就將第二排隊(duì)處理單元33的數(shù)據(jù)緩存模塊的滑動(dòng)窗ロ i_l中的數(shù)據(jù)依次交換更新到第一排隊(duì)處理単元32的數(shù)據(jù)緩存模塊的滑動(dòng)窗ロ i中(i = 0,I,2,...,n-1),最新輸入數(shù)據(jù)存到第一排隊(duì)處理単元32的最后ー個(gè)第二排隊(duì)處理單元33的數(shù)據(jù)所在的滑動(dòng)窗口中;步驟302至步驟304中,如果原有存儲(chǔ)序列無(wú)效,通過(guò)最新輸入數(shù)據(jù)與第二排隊(duì)處理單元33的數(shù)據(jù)緩存模塊中的數(shù)據(jù)進(jìn)行大小比較,將最新輸入數(shù)據(jù)存儲(chǔ)到第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊中合適的滑動(dòng)窗ロ i中,并將第二排隊(duì)處理單元33的數(shù)據(jù)緩存模塊中滑動(dòng)窗ロ i之后的數(shù)據(jù)順次交換到第一排隊(duì)處理單元33的數(shù)據(jù)緩存模塊的滑動(dòng)窗ロ i之后滑動(dòng)窗ロ中,在第一排隊(duì)處理単元32中產(chǎn)生包含最新輸入數(shù)據(jù)的新排隊(duì)序列,輸出新排隊(duì)序列的中值數(shù)據(jù)及中值數(shù)據(jù)有效信號(hào)。當(dāng)n為奇數(shù)吋,第一排隊(duì)處理單元32輸出中值數(shù)據(jù)為數(shù)據(jù)緩存模塊的第(n-1)/2滑動(dòng)窗口中緩存的數(shù)據(jù);當(dāng)n為偶數(shù)時(shí),所述第一排隊(duì)處理單元32和第二排隊(duì)處理單元33還各包含ー個(gè)求取兩個(gè)中間值平均值的中值處理模塊,第一排隊(duì)處理單元32中輸出中值數(shù)據(jù)為其數(shù)據(jù)緩存模塊的n/2滑動(dòng)窗ロ中緩存的數(shù)據(jù)與(n-2) /2滑動(dòng)窗ロ中緩存的數(shù)據(jù)的平均值。(d)所述第一排隊(duì)處理單元32進(jìn)行滑動(dòng)窗ロ的滑動(dòng)運(yùn)算。由于時(shí)間戳處理單元為每ー個(gè)數(shù)據(jù)加蓋了有效時(shí)間的時(shí)間戳,所以在完成一次中值濾波后要進(jìn)行超時(shí)失效數(shù)據(jù)剔除,剔除數(shù)據(jù)后進(jìn)執(zhí)行相應(yīng)的窗ロ滑動(dòng)運(yùn)算,使緩存的數(shù)據(jù)由當(dāng)前滑動(dòng)窗ロ緩存單元滑動(dòng)到下ー個(gè)滑動(dòng)窗ロ緩存單元。請(qǐng)參考圖4,在步驟400中,首先判斷以第一排隊(duì)處理單元32的n個(gè)滑動(dòng)窗ロ緩存単元中的數(shù)據(jù)是否均有效;若是,第一排隊(duì)處理單元32執(zhí)行步驟404中滑動(dòng)窗ロ的滑動(dòng),將當(dāng)前滑動(dòng)窗ロ緩存單元中的數(shù)據(jù)依次更新到下一滑動(dòng)窗ロ緩存單元中,以便接收下ー輸入數(shù)據(jù);若否,第一排隊(duì)處理單元32執(zhí)行步驟401至步驟403,尋找到時(shí)間戳失效的數(shù)據(jù),并剔除,將前ー滑動(dòng)窗ロ緩存單元中的數(shù)據(jù)更新到時(shí)間戳失效的數(shù)據(jù)所在當(dāng)前滑動(dòng)窗ロ緩存単元中,其余數(shù)據(jù)保留,接著執(zhí)行步驟404中滑動(dòng)窗ロ的滑動(dòng),以便接收下ー輸入數(shù)據(jù)。(e)所述中值數(shù)據(jù)輸出選擇器34接收所述中值數(shù)據(jù)作為有效中值數(shù)據(jù)輸出。本實(shí)施例中,中值數(shù)據(jù)輸出選擇器34在控制處理單元31的控制下,選擇接收第一排隊(duì)處理單元32輸出的中值數(shù)據(jù)信號(hào),然后將該中值數(shù)據(jù)作為有效中值數(shù)據(jù)輸出,中值數(shù)據(jù)輸出有效選擇器35在控制處理單元31的控制下,選擇接收第一排隊(duì)處理單元32輸出的中值數(shù)據(jù)有效信號(hào)并輸出。(f)所述中值濾波電路接收下ー個(gè)輸入數(shù)據(jù),重復(fù)上述步驟,其中所述控制處理單元31選擇所述第二排隊(duì)處理單元33對(duì)接收加蓋時(shí)間戳后輸出的所述下ー個(gè)輸入數(shù)據(jù)。所述第二排隊(duì)處理單元33與所述第一排隊(duì)處理單元32的算法相同,即在所述第ー排隊(duì)處理單元接收最新輸入數(shù)據(jù)后,所述第二排隊(duì)處理單元33的數(shù)據(jù)緩存模塊中的數(shù)據(jù)由最新輸入數(shù)據(jù)和第一排隊(duì)處理單元32的數(shù)據(jù)緩存模塊中的數(shù)據(jù)按照大小比較結(jié)果進(jìn)行交換更新,也就是說(shuō),所述第二排隊(duì)處理單元33接收到最新輸入數(shù)據(jù),先判斷所述最新輸入數(shù)據(jù)加入所述第一排隊(duì)處理單元32的數(shù)據(jù)緩存模塊的滑動(dòng)窗ロ后,所述第一排隊(duì)處理單元32的數(shù)據(jù)緩存模塊的所有滑動(dòng)窗口中數(shù)據(jù)的原有存儲(chǔ)序列是否有效;如果所述原有存儲(chǔ)序列有效,就將所述第一排隊(duì)處理單元32的數(shù)據(jù)緩存模塊的前一位置滑動(dòng)窗口中的數(shù)據(jù)依次交換更新到第二排隊(duì)處理單元33的數(shù)據(jù)緩存模塊的當(dāng)前位置的滑動(dòng)窗口中,接收到的最新輸入數(shù)據(jù)存到第而排隊(duì)處理單元33的最后ー個(gè)第一排隊(duì)處理単元32的數(shù)據(jù)所在的滑動(dòng)窗口中;如果原有存儲(chǔ)序列無(wú)效,通過(guò)最新輸入數(shù)據(jù)與第一排隊(duì)處理單元32的滑動(dòng)窗ロ數(shù)據(jù)緩存模塊中的數(shù)據(jù)進(jìn)行大小比較,將最新輸入數(shù)據(jù)存儲(chǔ)到第二排隊(duì)處理單元33的數(shù)據(jù)緩存模塊中合適的滑動(dòng)窗ロ,并將第一排隊(duì)處理單元32的數(shù)據(jù)緩存模塊中與所述合適的滑動(dòng)窗ロ的位置相同的滑動(dòng)窗口中的數(shù)據(jù)順次交換到第二排隊(duì)處理單元33的數(shù)據(jù)緩存模塊的所述合適的滑動(dòng)窗ロ之后滑動(dòng)窗口中,在第二排隊(duì)處理單元33的數(shù)據(jù)緩存模塊中產(chǎn)生包含最新輸入數(shù)據(jù)的新排隊(duì)序列,輸出新排隊(duì)序列的中值數(shù)據(jù)及中值數(shù)據(jù)有效信號(hào)。(a)至(f)步驟循環(huán)進(jìn)行,實(shí)現(xiàn)了一種基于乒乓機(jī)制的中值濾波運(yùn)算,毎次的最新輸入數(shù)據(jù)輸入后,第一排隊(duì)處理單元32和第二排隊(duì)處理單元33輪流接收,并將最新數(shù)據(jù)與未接收中值數(shù)據(jù)的處理單元的緩存數(shù)據(jù)進(jìn)行大小比較,根據(jù)大小比較結(jié)果來(lái)將未接收中值數(shù)據(jù)的處理單元的緩存數(shù)據(jù)相應(yīng)的更新到接收中值數(shù)據(jù)的處理單元的合適滑動(dòng)窗口中,最終在接收中值數(shù)據(jù)的處理單元中得到了包含最新輸入數(shù)據(jù)和緩存數(shù)據(jù)的最新排序序列方式,進(jìn)而輸出有效中值數(shù)據(jù)。綜上所述,本發(fā)明提供的中值濾波電路及方法,通過(guò)時(shí)間戳處理單元確定了輸出時(shí)間,通過(guò)所述第一排隊(duì)處理單元和第二排隊(duì)處理單元實(shí)現(xiàn)了ー維快速中值濾波,算法和控制相對(duì)簡(jiǎn)単,能適應(yīng)大窗ロ的中值濾波。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種中值濾波電路,應(yīng)用于微弱信號(hào)測(cè)量,其特征在于,包括: 控制處理單元,產(chǎn)生整個(gè)中值濾波電路的控制信號(hào),完成對(duì)整個(gè)中值濾波電路的控制功能; 時(shí)間戳處理單元,接收輸入數(shù)據(jù)并在所述控制處理單元輸出的控制信號(hào)下輸出為加蓋有效時(shí)間戳的數(shù)據(jù); 第一排隊(duì)處理單元和第二排隊(duì)處理單元,對(duì)所述加蓋有效時(shí)間戳的數(shù)據(jù)進(jìn)行中值濾波算法處理,輸出中值數(shù)據(jù); 中值數(shù)據(jù)輸出選擇器,選擇所述第一排隊(duì)處理單元的中值數(shù)據(jù)或所述第二排隊(duì)處理單元的中值數(shù)據(jù)作為有效中值數(shù)據(jù)輸出。
2.按權(quán)利要求1所述的中值濾波電路,其特征在于,在測(cè)量一微弱信號(hào)之前,所述微弱信號(hào)先經(jīng)一信號(hào)調(diào)理電路進(jìn)行調(diào)整和模擬濾波,再經(jīng)ー模數(shù)轉(zhuǎn)換電路轉(zhuǎn)換后輸入所述中值濾波電路。
3.按權(quán)利要求2所述的中值濾波電路,其特征在于,所述微弱信號(hào)經(jīng)模數(shù)轉(zhuǎn)換電路轉(zhuǎn)換,產(chǎn)生輸入數(shù)據(jù)信號(hào)和輸入數(shù)據(jù)有效信號(hào),所述控制處理單元接收所述輸入數(shù)據(jù)有效信號(hào),所述時(shí)間戳處理単元接收所述輸入數(shù)據(jù)信號(hào)。
4.按權(quán)利要求1所述的中值濾波電路,其特征在于,所述第一排隊(duì)處理單元和第二排隊(duì)處理単元的數(shù)據(jù)緩存模塊有相等數(shù)目的滑動(dòng)窗ロ,且緩存的數(shù)據(jù)按照由小到大或由大到小的方式進(jìn)行存儲(chǔ)。
5.按權(quán)利要求4所述的中值濾波電路,其特征在于,所述相等數(shù)目為偶數(shù)時(shí),所述第一排隊(duì)處理單元和 第二排隊(duì)處理單元還各包含一個(gè)求取數(shù)據(jù)緩存模塊中中間位置的兩個(gè)滑動(dòng)窗ロ的數(shù)據(jù)的平均值的中值處理模塊,所述第一排隊(duì)處理單元的中值處理模塊得到的平均值為所述第一排隊(duì)處理單元的中值數(shù)據(jù),所述第二排隊(duì)處理單元的中值處理模塊得到的平均值為所述第二排隊(duì)處理單元的中值數(shù)據(jù)。
6.按權(quán)利要求4所述的中值濾波電路,其特征在于,所述相等數(shù)目為奇數(shù)時(shí),所述第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊的中間位置的滑動(dòng)窗ロ的數(shù)據(jù)為所述第一排隊(duì)處理單元的中值數(shù)據(jù),所述第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊的中間位置的滑動(dòng)窗ロ的數(shù)據(jù)為所述第ニ排隊(duì)處理單元的中值數(shù)據(jù)。
7.按權(quán)利要求5或6所述的中值濾波電路,其特征在于,所述第一排隊(duì)處理單元和第二排隊(duì)處理單元是算法相同的兩個(gè)處理單元,均分兩步運(yùn)算:第一步對(duì)最新輸入數(shù)據(jù)和緩存數(shù)據(jù)進(jìn)行大小比較和順序交換,輸出中值數(shù)據(jù);第二步進(jìn)行滑動(dòng)窗ロ的滑動(dòng)運(yùn)算。
8.按權(quán)利要求7所述的中值濾波電路,其特征在于,所述第一排隊(duì)處理單元和第二排隊(duì)處理単元的中值濾波運(yùn)算采用乒乓機(jī)制,當(dāng)所述第一排隊(duì)處理單元接收最新輸入數(shù)據(jù)時(shí),所述第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊中的數(shù)據(jù)由最新輸入數(shù)據(jù)和第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊中的數(shù)據(jù)按照大小比較結(jié)果進(jìn)行交換更新;當(dāng)所述第二排隊(duì)處理單元接收最新輸入數(shù)據(jù)時(shí),所述第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊中的數(shù)據(jù)由最新輸入數(shù)據(jù)和第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊中的數(shù)據(jù)按照比較結(jié)果進(jìn)行交換更新。
9.按權(quán)利要求8所述的中值濾波電路,其特征在干,當(dāng)所述第一排隊(duì)處理單元接收最新輸入數(shù)據(jù)時(shí),所述第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊中的數(shù)據(jù)由最新輸入數(shù)據(jù)和第二排隊(duì)處理単元的數(shù)據(jù)緩存模塊中的數(shù)據(jù)按照大小比較結(jié)果進(jìn)行交換更新,包括:判斷所述最新輸入數(shù)據(jù)加入所述第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊的滑動(dòng)窗ロ后,所述第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊的所有滑動(dòng)窗口中數(shù)據(jù)的原有存儲(chǔ)序列是否有效; 如果所述原有存儲(chǔ)序列有效,就將所述第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊的前一位置滑動(dòng)窗口中的數(shù)據(jù)依次交換更新到第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊的當(dāng)前位置的滑動(dòng)窗口中,所述最新輸入數(shù)據(jù)存到第一排隊(duì)處理單元的最后ー個(gè)第二排隊(duì)處理單元的數(shù)據(jù)所在的滑動(dòng)窗口中; 如果原有存儲(chǔ)序列無(wú)效,通過(guò)最新輸入數(shù)據(jù)與第二排隊(duì)處理單元的滑動(dòng)窗口數(shù)據(jù)緩存模塊中的數(shù)據(jù)進(jìn)行大小比較,將最新輸入數(shù)據(jù)存儲(chǔ)到第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊中合適的滑動(dòng)窗ロ,并將第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊中與所述合適的滑動(dòng)窗ロ的位置相同的滑動(dòng)窗口中的數(shù)據(jù)順次交換到第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊的所述合適的滑動(dòng)窗ロ之后滑動(dòng)窗口中,在第一排隊(duì)處理單元的數(shù)據(jù)緩存模塊中產(chǎn)生包含最新輸入數(shù)據(jù)的新排隊(duì)序列,輸出新排隊(duì)序列的中值數(shù)據(jù)及中值數(shù)據(jù)有效信號(hào)。
10.按權(quán)利要求1所述的中值濾波電路,其特征在于,所述第一排隊(duì)處理單元和第二排隊(duì)處理單元還輸出中值數(shù)據(jù)有效信號(hào),所述中值濾波電路還包括中值數(shù)據(jù)輸出有效選擇器,接收所述控制處理單元的控制信號(hào)及所述第一排隊(duì)處理單元和第二排隊(duì)處理單元的中值數(shù)據(jù)有效信號(hào)并輸出。
11.按權(quán)利要求1所述的中值濾波電路,其特征在于,所述中值濾波電路由可編程邏輯器件FPGA實(shí)現(xiàn),或者由比較器、計(jì)數(shù)器和數(shù)據(jù)存儲(chǔ)器搭建實(shí)現(xiàn)。
12.一種應(yīng)用權(quán)利要求1至11中任一項(xiàng)所述的中值濾波電路的中值濾波方法,其特征在于,包括: (a)所述中值濾波電路的最新輸入數(shù)據(jù)輸入到時(shí)間戳處理單元,在控制處理單元的控制下加蓋時(shí)間戳后輸出; (b)所述控制處 理單元選擇第一排隊(duì)處理單元對(duì)接收加蓋時(shí)間戳后輸出的所述最新輸入數(shù)據(jù); (C)所述第一排隊(duì)處理單元對(duì)最新輸入數(shù)據(jù)和第二排隊(duì)處理單元的數(shù)據(jù)緩存模塊的滑動(dòng)窗口內(nèi)的緩存數(shù)據(jù)進(jìn)行大小比較和交換,輸出最新輸入數(shù)據(jù)與所述緩存數(shù)據(jù)的中值數(shù)據(jù); (d)所述第一排隊(duì)處理單元進(jìn)行滑動(dòng)窗ロ的滑動(dòng)運(yùn)算; (e)所述中值數(shù)據(jù)輸出選擇器將所述中值數(shù)據(jù)作為有效中值數(shù)據(jù)輸出; (f)所述中值濾波電路接收下ー個(gè)輸入數(shù)據(jù),重復(fù)上述步驟,其中所述控制處理單元選擇所述第二排隊(duì)處理單元對(duì)接收加蓋時(shí)間戳后輸出的所述下ー個(gè)輸入數(shù)據(jù)。
全文摘要
本發(fā)明提供一種中值濾波電路及方法,包括控制處理單元,產(chǎn)生整個(gè)中值濾波電路的控制信號(hào),完成對(duì)整個(gè)中值濾波電路的控制功能;時(shí)間戳處理單元,接收輸入數(shù)據(jù)并在所述控制處理單元輸出的控制信號(hào)下輸出為加蓋有效時(shí)間戳的數(shù)據(jù);第一排隊(duì)處理單元和第二排隊(duì)處理單元,在所述控制處理單元輸出的控制信號(hào)下對(duì)所述加蓋有效時(shí)間戳的數(shù)據(jù)進(jìn)行中值濾波算法處理,輸出中值數(shù)據(jù);中值數(shù)據(jù)輸出選擇器,在所述控制處理單元輸出的控制信號(hào)下選擇第一排隊(duì)處理單元或第二排隊(duì)處理單元的中值數(shù)據(jù)作為有效中值數(shù)據(jù)輸出。本發(fā)明通過(guò)時(shí)間戳處理單元確定了輸出時(shí)間,通過(guò)兩個(gè)排隊(duì)處理單元實(shí)現(xiàn)了一維快速中值濾波,算法和控制相對(duì)簡(jiǎn)單,能適應(yīng)大窗口的中值濾波。
文檔編號(hào)H03H17/02GK103095249SQ201110335148
公開(kāi)日2013年5月8日 申請(qǐng)日期2011年10月28日 優(yōu)先權(quán)日2011年10月28日
發(fā)明者李志強(qiáng) 申請(qǐng)人:上海微電子裝備有限公司