專利名稱:一種峰值搜索方法及裝置的制作方法
技術領域:
本發(fā)明涉及峰值搜索技術,尤其涉及一種峰值搜索方法及裝置。
背景技術:
峰值搜索常用于小區(qū)搜索、多徑搜索、時隙同步等應用場景,對于速度的要求比較高。例如,在長期演進(LTE,Long-Term Evolution)中,小區(qū)初搜時,每5ms進行15個4800 序列的搜索,其它處理大概需要420k周期(cycle);鄰區(qū)搜索啟動時,每5ms進行3個4800 序列的搜索,同時可能還會有下行接收、測量和鄰區(qū)搜索等的其它任務?,F有的峰值搜索電路,每次讀入單個能量數據,并通過將讀入的能量數據與之前得到的最大能量數據進行比較,直到各能量數據一一讀取完畢時,才能得到能量數據的最大值,并需要反復進行正向、反向掃描,找到其他最大值,如申請?zhí)枮?00510098701.4的中國專利,就提出了一種WCDMA系統(tǒng)中峰值搜索的方法,現有的峰值搜索方法,掃描效率低, 功耗高,不能適應適量處理器高吞吐率的要求。
發(fā)明內容
有鑒于此,本發(fā)明的主要目的在于提供一種峰值搜索方法及裝置,能夠適應矢量處理器高吞吐率的要求。為達到上述目的,本發(fā)明的技術方案是這樣實現的本發(fā)明提供了一種峰值搜索方法,所述方法包括獲取多個能量數據,第一組比較電路和第二組比較電路共同對所獲取的多個能量數據進行篩選,在完成所有需搜索能量數據的獲取及篩選后,第一組比較電路得到主峰值候選人,第二組比較電路得到次峰值候選人;對所述第一組比較電路得到的所有主峰值候選人、以及所述第二組比較電路得到的次峰值候選人進行篩選,得到峰值。在上述方案中,所述第一組比較電路包括多個加法器、多個數據寄存器,第二組比較電路包括多個加法器、多個數據寄存器;所述第一比較電路和第二組比較電路共同對所獲取的多個能量數據進行篩選,包括,對每個非首次獲取的能量數據執(zhí)行下述處理在非首次所獲取的第k個能量數據的地址、與所述第一組比較電路中第k個第一地址寄存器當前保存的能量數據地址之間差值大于預設的清零閾值時,其中,k用于表示所獲取能量數據的序號,為不小于零的整數;將所獲取的第k個能量數據輸入到第一組比較電路中第k個第一加法器,所述第 k個第一加法器將輸入的第k個能量數據與所述第k個第一數據寄存器當前保存的數據進行比較當所述第k個能量數據大于所述第k個第一數據寄存器當前保存的能量數據時, 將所述第k個第一數據寄存器當前保存的主峰值候選人輸入到所述第二組比較電路中第k個第二數據寄存器,將所述第k個第二數據寄存器當前的次峰值候選人更新為所述第k個第一數據寄存器當前保存的主峰值候選人,并將所述第k個第一數據寄存器當前保存的主峰值候選人更新為所述第k個能量數據;當所述第k個能量數據不大于所述第k個第一數據寄存器當前保存的主峰值候選人時,將所述第k個能量數據輸入到所述第二比較電路的第k個第二加法器,所述第k個第二加法器將所述第k個能量數據與所述第k個第二數據寄存器當前保存的次峰值候選人進行比較,在所述第k個能量數據大于所述第k個第二數據寄存器當前保存的次峰值候選人時,將所述第k個第二數據寄存器當前保存的次峰值候選人更新為所述第k個能量數據。在上述方案中,所述第一比較電路和第二組比較電路共同對所獲取的多個能量數據進行篩選,包括,對每個非首次獲取的能量數據執(zhí)行下述處理在非首次獲取的第k個能量數據的地址、與所述第一組比較電路中第k個第一地址寄存器當前保存的能量數據地址之間差值不大于預設的清零閾值時,將所獲取的第k個能量數據輸入到所述第k個第一加法器,所述第k個第一加法器將輸入的第k個能量數據與所述第k個第一數據寄存器當前保存的主峰值候選人進行比較當所述第k個能量數據大于所述第k個第一數據寄存器當前保存的主峰值候選人時,將所述第k個第一數據寄存器當前保存的主峰值候選人更新為所述第k個能量數據;當所述第k個能量數據不大于所述第k個第一數據寄存器當前保存的主峰值候選人時,不更新所述第k個第一數據寄存器和第k個第二數據寄存器。在上述方案中,所述第一組比較電路還包括多個第一地址寄存器,所述第二組比較電路還包括多個第二地址寄存器;所述方法還包括更新所述第一組比較電路的第一數據寄存器時,相應的更新所述第一組比較電路中第一地址寄存器保存的主峰值候選人地址;更新所述第二組比較電路的第二數據寄存器時,相應的更新所述第二組比較電路中第二地址寄存器保存的次峰值候選人地址。在上述方案中,所述更新所述第一組比較電路的第一數據寄存器時,相應的更新所述第一組比較電路中第一地址寄存器保存的主峰值候選人地址,包括對每個非首次獲取的能量數據執(zhí)行下述處理對于在第k個第一數據寄存器當前保存的次峰值候選人更新為所述第k個能量數據時,還將所述第k個第一地址寄存器當前保存的數據地址更新為所述第k個能量數據的地址;所述更新所述第二組比較電路的第二數據寄存器時,相應的更新所述第二組比較電路中第二地址寄存器保存的次峰值候選人地址,包括對每個非首次獲取的能量數據執(zhí)行下述處理將所述第k個第二數據寄存器當前保存的次峰值候選人更新為所述第k個能量數據時,還將第k個第二地址寄存器當前保存的數據地址更新為所述第k個能量數據的地址;和/或,將所述第k個第二數據寄存器當前保存的次峰值候選人更新為所述第k 個第一數據寄存器當前保存的主峰值候選人時,還將第k個第二地址寄存器當前保存的數據地址更新為所述第k個第一地址寄存器當前保存的地址。在上述方案中,在所述獲取多個能量數據之前,所述方法還包括
7
對獲取的采樣數據進行相關運算處理、過濾運算處理后,再進行取模運算處理,從取模運算處理的結果中提取實部,得到所述能量數據并保存到存儲器中。在上述方案中,所述存儲器每行存儲有多個能量數據;所述獲取多個能量數據,為從所述存儲器中讀取一行量數據。在上述方案中,所述在獲取多個能量數據之前,所述方法還包括將所得到的主峰值候選人、次峰值候選人、主峰值候選人左右兩邊的預設清零閾值個數據、以及次峰值候選人左右兩邊的預設清零閾值個數據從所述所有需搜索的能量數據中清零。在上述方案中,所述對所述第一組比較電路得到的所有主峰值候選人、以及所述第二組比較電路得到的次峰值候選人進行篩選,得到峰值,包括最大值排序電路從所述第一組比較電路獲取主峰值候選人,從所述第二組比較電路獲取到次峰值候選人,并分別對所獲取到的主峰值候選人、次峰值候選人進行排序、剔除假峰值、以及比較等處理,得到多個峰值。在上述方案中,在得到峰值之后,所述方法還包括驗證所得到峰值的個數是否達到預設的峰值個數閾值,如果不是,則將所得到的峰值、以及所述峰值左右兩邊的一個或多個數據從所述所有需搜索的能量數據中清零后, 重復進行峰值搜索;否則,結束當前峰值搜索。本發(fā)明還提供了一種峰值搜索裝置,所述裝置包括第一組比較電路、第二組比較電路和最大值排序電路,其中,第一組比較電路,用于獲取多個能量數據,并與所述第二組比較電路共同對所獲取的多個能量數據進行篩選,得到主峰值候選人;第二組比較電路,用于獲取多個能量數據,并與所述第一組比較電路共同對所獲取的多個能量數據進行篩選,得到主峰值候選人;最大值排序電路,用于對所述第一組比較電路得到的所有主峰值候選人、以及所述第二組比較電路得到的次峰值候選人進行篩選,得到峰值。在上述方案中,所述裝置還包括存儲器和矢量處理器,其中,存儲器,用于保存所有需搜索的能量數據; 矢量處理器,用于對獲取的采樣數據進行相關運算處理、過濾運算處理后,再進行取模運算處理,從取模運算處理的結果中提取實部,得到所述能量數據并保存到存儲器中。在上述方案中,所述存儲器,還用于每行存儲多個能量數據;所述第一組比較電路和第二組比較電路,還用于從所述存儲器中每次讀取一行能量數據。在上述方案中,所述第一組比較電路包括多個第一加法器、和多個第一數據寄存器,所述第一加法器與所述第一數據寄存器一一對應并連接;所述第一加法器,用于獲取多個能量數據,并對所獲取的多個能量數據進行篩選, 得到主峰值候選人,并將得到的主峰值候選人保存到所述第一數據寄存器;所述第一數據寄存器,用于保存所述主峰值候選人。在上述方案中,所述第一組比較電路還包括多個第一地址寄存器,用于保存所述主峰值候選人的地址;
所述第一加法器,還用于將所得到主峰值候選人的地址保存到所述第一地址寄存器;其中,所述第一地址寄存器與所述第一加法器一一對應并連接,與所述第一數據寄存器一一對應并連接。在上述方案中,所述第二組比較電路包括多個第二加法器、和多個第二數據寄存器,所述第一加法器與所述第一數據寄存器一一對應并連接;所述第二加法器,用于獲取多個能量數據,并對所獲取的多個能量數據進行篩選, 得到次峰值候選人,并將得到的次峰值候選人保存到所述第二數據寄存器;所述第二數據寄存器,用于保存所述次峰值候選人。在上述方案中,所述第二組比較電路還包括多個第二地址寄存器,用于保存所述次峰值候選人的地址;所述第二加法器,還用于將所得到次峰值候選人的地址保存到所述第二地址寄存器;所述第二地址寄存器與所述第二加法器一一對應并連接,與所述第二數據寄存器一一對應并連接。在上述方案中,所述裝置還包括循環(huán)控制電路和清零控制電路,其中,循環(huán)控制電路,用于驗證所述第二組比較電路所得到峰值的個數是否達到預設的峰值個數閾值,如果不是,則通知所述清零控制電路進行清零,并啟動所述第一組比較電路、第二組比較電路和最大值排序電路,重復進行峰值搜索;否則,結束當前峰值搜索;清零控制電路,用于在接收到所述循環(huán)控制電路的通知時,將所述第二組比較電路得到的峰值、以及所述峰值左右兩邊的一個或多個能量數據從存儲有所有需搜索能量數據的存儲器中清零。在上述方案中,所述清零控制電路,還用于將所述第一組比較電路得到的主峰值候選人和所述主峰值候選人左右兩邊的預設清零閾值個能量數據、以及第二組比較電路得到的次峰值候選人和次峰值候選人左右兩邊的預設清零閾值個能量數據,從存儲有所有需搜索能量數據的存儲器中清零。本發(fā)明所提供的峰值搜索方法及裝置,每個時鐘周期讀出多個能量數據,并將所讀取的多個能量數據進行兩次并行比較,在對所有能量數據進行并行比較之后,得到主峰值候選人和次峰值候選人,再從所得到的主峰值候選人和次峰值候選人中篩選出峰值,掃描數據的過程中,多個數據按列、并行地比較,而且讀數據和比較數據可以流線進行,中間不停頓,速度快,能夠實現矢量處理器高吞吐率的要求,并且每輪掃描至少能夠得到兩個峰值,可以減少對存儲器的讀操作,節(jié)省功耗,并且兼顧峰值搜索的速度和硬件邏輯資源,如芯片的面積;此外,本發(fā)明的峰值搜索裝置的核心部分只需要一系列加法器和寄存器即可實現,簡單易實現,面積小,成本低。
圖1為本發(fā)明峰值搜索方法的實現流程圖;圖2為本發(fā)明的峰值搜索裝置的組成結構示意圖;圖3為本發(fā)明具體實施例中數據存儲器的結構示意圖4為本發(fā)明具體實施例中數據存儲器每個倉庫(bank)的結構示意圖;圖5為本發(fā)明具體實施例中峰值搜索模塊的兩組比較電路的組成結構示意圖;圖6為本發(fā)明具體實施例中峰值搜索模塊的最大值排序電路(maX_SOrt)電路的組成結構示意圖。
具體實施例方式本發(fā)明的基本思想是每次獲取多個能量數據,并通過多個加法器進行比較,再根據比較結果更新所保存的能量數據;直到所有需搜索的能量數據均獲取并比較之后,將所保存的各能量數據再進行比較,得到峰值,如此,多個能量數據并行進行比較,速度快,峰值搜索效率高,能夠適應矢量處理器高吞吐率的要求。本發(fā)明的峰值搜索方法,參照圖1所示,主要包括以下步驟步驟101 獲取多個能量數據,第一組比較電路和第二組比較電路共同對所獲取的多個能量數據進行篩選,在完成所有需搜索能量數據的獲取及篩選后,第一組比較電路得到主峰值候選人,第二組比較電路得到次峰值候選人;步驟102 對所述第一組比較電路得到的所有主峰值候選人、以及所述第二組比較電路得到的次峰值候選人進行篩選,得到峰值。其中,第一組比較電路包括多個第一加法器、多個第一數據寄存器,第二組比較電路包括多個第二加法器、多個第二數據寄存器。其中,所述第一加法器與所述第一數據寄存器一一對應并連接,所述第二加法器與所述第二數據寄存器一一對應并連接。具體地,在步驟101中,對每個非首次獲取的能量數據執(zhí)行下述處理,實現能量數據的篩選在非首次所獲取的第k個能量數據的地址、與所述第一組比較電路中第k個第一地址寄存器當前保存的能量數據地址之間差值大于預設的清零閾值時,其中,k用于表示所獲取能量數據的序號,為不小零的整數,如果當前共獲取到P (P為大于ι的整數)個能量數據,k的取值可以是0、1、2、3.....p-1 ;將所獲取的第k個能量數據輸入到第一組比較電路中第k個第一加法器,所述第 k個第一加法器將輸入的第k個能量數據與所述第k個第一數據寄存器當前保存的數據進行比較;當所述第k個能量數據大于所述第k個第一數據寄存器當前保存的能量數據時, 將所述第k個第一數據寄存器當前保存的主峰值候選人輸入到所述第二組比較電路中第k 個第二數據寄存器,將所述第k個第二數據寄存器當前的次峰值候選人更新為所述第k個第一數據寄存器當前保存的主峰值候選人,并將所述第k個第一數據寄存器當前保存的主峰值候選人更新為所述第k個能量數據;當所述第k個能量數據不大于所述第k個第一數據寄存器當前保存的主峰值候選人時,將所述第k個能量數據輸入到所述第二比較電路的第k個第二加法器,所述第k個第二加法器將所述第k個能量數據與所述第k個第二數據寄存器當前保存的次峰值候選人進行比較,在所述第k個能量數據大于所述第k個第二數據寄存器當前保存的次峰值候選人時,將所述第k個第二數據寄存器當前保存的次峰值候選人更新為所述第k個能量數據。這里,所述清零閾值表示主峰值或次峰值左右兩邊需清除/屏蔽的數據個數。這里,在步驟101中,上述對每個非首次獲取的能量數據執(zhí)行處理,實現能量數據篩選的過程還可以包括在非首次獲取的第k個能量數據的地址、與所述第一組比較電路中第k個第一地址寄存器當前保存的能量數據地址之間差值不大于預設的清零閾值時,將所獲取的第k個能量數據輸入到所述第k個第一加法器,所述第k個第一加法器將輸入的第k個能量數據與所述第k個第一數據寄存器當前保存的主峰值候選人進行比較;當所述第k個能量數據大于所述第k個第一數據寄存器當前保存的主峰值候選人時,將所述第k個第一數據寄存器當前保存的主峰值候選人更新為所述第k個能量數據;當所述第k個能量數據不大于所述第k個第一數據寄存器當前保存的主峰值候選人時,不更新所述第k個第一數據寄存器和第k個第二數據寄存器。這里,所述第一組比較電路還包括多個第一地址寄存器,所述第二組比較電路還包括多個第二地址寄存器,其中,所述第一地址寄存器與所述第一加法器一一對應并連接, 與所述第一數據寄存器一一對應并連接,所述第二地址寄存器與所述第二加法器一一對應并連接,與所述第二數據寄存器一一對應并連接。在上述篩選過程中,更新所述第一組比較電路的第一數據寄存器時,相應的更新所述第一組比較電路中第一地址寄存器保存的主峰值候選人地址;更新所述第二組比較電路的第二數據寄存器時,相應的更新所述第二組比較電路中第二地址寄存器保存的次峰值候選人地址。具體地,在第k個第一數據寄存器當前保存的次峰值候選人更新為所述第k個能量數據時,還將所述第k個第一地址寄存器當前保存的數據地址更新為所述第k個能量數據的地址;將所述第k個第二數據寄存器當前保存的次峰值候選人更新為所述第k個能量數據時,還將第k個第二地址寄存器當前保存的數據地址更新為所述第k個能量數據的地址;將所述第k個第二數據寄存器當前保存的次峰值候選人更新為所述第k個第一數據寄存器當前保存的主峰值候選人時,還將第k個第二地址寄存器當前保存的數據地址更新為所述第k個第一地址寄存器當前保存的地址。在獲取多個能量數據之前,所述方法還包括將所述第一組比較電路中的各第一數據寄存器、和/或第一地址寄存器清零。在首次獲取能量數據,并進行篩選時,所述方法還包括將首次獲取的能量數據分別輸入到第一組比較電路中的各第一數據寄存器中保存,并對所述第二組比較電路中的各
第二數據寄存器清零。同時,還可以將首次獲取的能量數據的地址輸入到第一組比較電路中的各第一地址寄存器中保存,并對所述第二組比較電路中的各第二地址寄存器清零。這里,在獲取多個能量數據之前,所述方法還可以包括將所得到的主峰值候選人、次峰值候選人、主峰值候選人左右預設清零閾值個能量數據、以及次峰值候選人左右預設清零閾值個能量數據從所述所有需搜索的能量數據中清零。如果是首次進行篩選,則不需要在獲取能量數據之前進行上述的清零操作。實際應用中,一輪掃描結束后,如果找到i個峰值,且i小于需搜索的峰值個數n, 那么在進行下一輪掃描之前,必須先將已找到的各個峰值、以及各個峰值左右兩邊預設的清零閾值個能量數據清零。在所述獲取多個能量數據之前,所述方法還可以包括對獲取的采樣數據進行相關運算處理、過濾運算處理后,再進行取模運算處理,從取模運算處理的結果中提取實部, 得到所述能量數據并保存到存儲器中。其中,所述存儲器每行存儲有多個能量數據;所述獲取多個能量數據,為從所述存儲器中讀取一行能量數據。其中,對所述第一組比較電路得到的所有主峰值候選人、以及所述第二組比較電路得到的次峰值候選人進行篩選,得到峰值,可以包括最大值排序電路(maX_SOrt電路) 從所述第一組比較電路獲取主峰值候選人,從所述第二組比較電路獲取到次峰值候選人, 并分別對所獲取到的主峰值候選人、次峰值候選人進行排序、剔除假峰值、以及比較等處理,得到多個峰值。具體地,max_sort電路分別對主峰值候選人、以及次峰值候選人按照從大到小進行排序,并進行剔除假峰值處理;再將最大的次峰值候選人與各主峰值候選人進行比較,如果所述最大的次峰值候選人小于最小的主峰值候選人,則確定所有主峰值候選人、以及所有次峰值候選人為峰值,否則,將大于所述最大次峰值候選人的各主峰值候選人、以及所述最大次峰值候選人確定為峰值。其中,在得到峰值之后,所述方法還可以包括驗證所得到峰值的個數是否達到預設的峰值個數閾值,如果不是,則將所得到的峰值、以及所述峰值左右兩邊的一個或多個數據從所述所有需搜索的能量數據中清零,并重復進行上述的峰值搜索;否則,結束當前峰值搜索。相應的,本發(fā)明還提供了一種峰值搜索裝置,所述裝置包括第一組比較電路、第二組比較電路和最大值排序電路,其中,第一組比較電路,用于獲取多個能量數據,并與所述第二組比較電路共同對所獲取的多個能量數據進行篩選,得到主峰值候選人;第二組比較電路,用于獲取多個能量數據,并與所述第一組比較電路共同對所獲取的多個能量數據進行篩選,得到主峰值候選人;最大值排序電路,用于對所述第一組比較電路得到的所有主峰值候選人、以及所述第二組比較電路得到的次峰值候選人進行篩選,得到峰值。具體地,所述第一組比較電路包括多個第一加法器、和多個第一數據寄存器,所述第一加法器與所述第一數據寄存器一一對應并連接;所述第一加法器,用于獲取多個能量數據,并對所獲取的多個能量數據進行篩選,得到主峰值候選人,并將得到的主峰值候選人保存到所述第一數據寄存器;所述第一數據寄存器,用于保存所述主峰值候選人。其中,所述第一組比較電路還包括多個第一地址寄存器,用于保存所述主峰值候選人的地址;所述第一加法器,還用于將所得到主峰值候選人的地址保存到所述第一地址寄存器;其中,所述第一地址寄存器與所述第一加法器一一對應并連接,與所述第一數據寄存器一一對應并連接。具體地,所述第二組比較電路包括多個第二加法器、和多個第二數據寄存器,所述第一加法器與所述第一數據寄存器一一對應并連接。所述第二加法器,用于獲取多個能量數據,并對所獲取的多個能量數據進行篩選,得到次峰值候選人,并將得到的次峰值候選人保存到所述第二數據寄存器;所述第二數據寄存器,用于保存所述次峰值候選人。其中,所述第二組比較電路還包括多個第二地址寄存器,用于保存所述次峰值候選人的地址;所述第二加法器,還用于將所得到次峰值候選人的地址保存到所述第二地址寄存器;所述第二地址寄存器與所述第二加法器一一對應并連接,與所述第二數據寄存器一一對應并連接。其中,所述裝置還包括存儲器和矢量處理器,其中,存儲器,用于保存所有的能量數據;矢量處理器,用于對獲取的采樣數據進行相關運算處理、過濾運算處理后,再進行取模運算處理,從取模運算處理的結果中提取實部,得到所述能量數據并保存到存儲器中;這里,所述存儲器,還用于每行存儲多個能量數據;所述第一組比較電路和第二組比較電路,還用于從所述存儲器中每次讀取一行能量數據。所述裝置還包括循環(huán)控制電路和清零控制電路,其中,循環(huán)控制電路,用于驗證所述第二組比較電路所得到峰值的個數是否已達到預設的峰值個數閾值,如果不是,則通知所述清零控制電路進行清零,并啟動所述第一組比較電路、第二組比較電路和最大值排序電路,重復進行峰值搜索;否則,不通知所述清零控制電路,結束當前峰值搜索;清零控制電路,用于在接收到所述循環(huán)控制電路的通知時,將所述第二組比較電路得到的峰值、以及所述峰值左右兩邊的一個或多個能量數據從存儲有所有需搜索能量數據的存儲器中清零。這里,所述清零控制電路,還可以用于將所述第一組比較電路得到的主峰值候選人和所述主峰值候選人左右兩邊的預設清零閾值個能量數據、以及第二組比較電路得到的次峰值候選人和次峰值候選人左右兩邊的預設清零閾值個能量數據,從存儲有所有需搜索能量數據的存儲器中清零。實施例一實際應用中,峰值搜索前的計算任務由矢量處理器來完成,峰值搜索的過程可以由硬件加速器來實現。如圖2所示,峰值搜索裝置可以包括射頻接收模塊、數據存儲器、矢量處理器和峰值搜索模塊,其中,射頻接收模塊,用于接收ADC采樣的數據,并將所得到的采用數據存儲到數據存儲器;矢量處理器,用于從所述數據存儲器讀取采樣數據,對所讀取的采樣數據進行處理后,得到能量數據,并將所得到的能量數據保存到數據存儲器;峰值搜索模塊,用于從數據存儲器中讀取能量數據,進行峰值搜索處理,找到需要的峰值,將所找到的峰值保存,并返回給所述矢量處理器。具體地,射頻接收模塊通過接收ADC采樣的數據,并將采樣數據存儲到數據存儲器,矢量處理器從所述數據存儲器中讀取采樣數據,并對采樣數據進行相關運算、過濾運算、取模運算處理后,提取實部,得到能量數據,將所得到的能量數據再保存到所述數據存儲器中;在矢量處理器對峰值搜索模塊進行參數設置后,峰值搜索模塊從數據存儲器中讀取能量數據,進行峰值搜索處理,找到峰值,并返回給矢量處理器。實際應用中,矢量處理器對采樣數據進行處理的過程可以包括矢量處理器以流水線的方式從數據存儲器中讀取采樣數據,再進行下行采樣數據與主同步序列(PSS)相關和濾波等運算,將所得到的運算結果(包括I通道的相關、濾波后的結果和Q通道相關、濾波后的結果)存儲到數據存儲器中,進行取模運算處理時,再從數據存儲器中讀取上述相關和過濾后的結果進行取模運算處理,之后,從取模運算處理的結果中再提取實部,得到能量數據,再將所得到的能量數據寫入到數據存儲器中。其中,矢量處理器按照公式(1)進行取模運算處理后,所得到結果的實部為能量數據,保存于數據存儲器的低16比特,所得到結果中的虛部為0,保存于數據存儲器的高16比特。\r\=r r* =Re2+Im2其中,?表示一個復數信號,Re為?的實部,Im為F的虛部。原先每個bank存儲ρ/2 個數據,執(zhí)行提取實部的壓縮處理后,將數據虛部的空位去掉,則數據存儲器的一個bank 就存儲了 P個能量數據,如此,不僅壓縮/節(jié)省了數據存儲器的存儲空間,并且,在后續(xù)進行峰值搜索時,數據存儲器的組織結構決定了峰值搜索模塊能夠一次讀出多個能量數據,讀取能量數據的效率會相應提高一倍,并行搜索的吞吐率也可以提高一倍。實際應用中,矢量處理器可以通過一個提取實部的指令來進行上述的提取實部的處理。具體地,為了適應矢量處理器的吞吐率,所述數據存儲器具有以下結構特征數據存儲格式為復數能量^r = Re+)1111 ,用32比特的單元來存儲一個復數能量數據,其中低16比特為實部,高16比特為虛部;如圖3所示,存儲器寬度(width)為16*P*4比特(P為大于0 的偶數),分為4個bank,每個bank有P/2個32比特的存儲單元,矢量處理器能夠一次讀取存儲器的一列數據,即P*2個能量數據。如果矢量處理器只進行相關運算、濾波運算等操作過后,不進行提取實部的操作,然后將結果寫回存儲器中,那么,其結果還是存儲器的一列有P*2個能量數據,但是每個32比特的存儲單元將存放著復數能量的模值,其高16比特為 0,低16比特為實部(不為0),而實際上,峰值搜索中包含提取實部的操作,即在相關運算、 濾波運算后,緊接著用提取實部的指令進行提取實部的操作,然后將結果寫回存儲器中,那么存儲器的一列存放(16*P*4)/16 = P*4個能量數據,即一個32比特的單元存放著兩個能量數據,一個bank能存放P個能量數據,如圖4所示。前面描述了矢量處理器能一次訪問存儲器的4個bank的同一列數據,而峰值搜索模塊則每次可以訪問存儲器的某一個bank的一行,即16*P比特的數據,也即P個能量數據 (如果矢量處理器沒有進行過提取實部的操作,那么每次讀寫的是P/2個數據)。實際應用中,所述數據存儲器可以是同步靜態(tài)存儲器(ssram)。其中,矢量處理器還用于對所述峰值搜索模塊進行參數設置。峰值搜索模塊根據所述矢量處理器的參數設置,對讀取到的能量數據進行峰值搜索處理。其中,峰值搜索模塊可以由硬件加速器來實現,可以訪問數據存儲器,每次從數據存儲器中讀出16*p比特的能量數據,即讀出ρ個能量數據,并以流水線的方式,對每次讀取的能量數據分兩次來進行比較,即將每次讀取的能量數據同時送到第一組比較電路和第二組比較電路并進行比較,所有能量數據均讀取并比較后,對所述比較的結果進行篩選,找到峰值搜索,每輪掃描可以找到多個峰值。峰值搜索模塊主要可以包括兩組比較電路和一個maX_SOrt電路,其中,由兩組比較電路對數據存儲器逐行進行掃描,獲取能量數據,同時,對獲取到的每行能量數據進行比較篩選后,得到峰值候選人,再由maX_SOrt電路對得到的峰值候選人進行篩選,得到峰值。 其中,兩組比較電路結構相似,第一組比較電路從所獲取能量數據中得到主峰值候選人,第二組比較電路從所獲取能量數據中得到次峰值候選人,在完成所有需搜索的能量數據均讀取篩選后,max_sort電路從第一組比較電路獲取主峰值候選人,從第二組比較電路獲取到次峰值候選人,分別對所獲取到的主峰值候選人、次峰值候選人進行排序、剔除假峰值、以及比較等處理,得到多個峰值。如此,一輪搜索后,可以搜索到2到2p個峰值,ρ為每行所讀取能量數據的數目。如果這時找到的峰值個數還小于預設的峰值個數閾值n,則繼續(xù)進行下一輪掃描,直到找到的峰值個數達到預設的峰值個數閾值η為止。如圖4所示,第一組比較電路中包含ρ個第一加法器、P個第一數據寄存器max_ vec0[]、p個第一地址寄存器addr_vec0 □,其中,第一組比較電路中的各第一加法器用于得到所讀數據列中的最大值,即用于得到主峰值候選人,第一數據寄存器maX_vec0[]用于存儲主峰值候選人,例如,圖5中用虛線框標示的maX_vec0[p]用于存儲第ρ個主峰值候選人,第一地址寄存器addr_vecO[]用于存儲主峰值候選人的地址;第二組比較電路包含ρ個第二加法器、P個第二數據寄存器maX_vecl[]和ρ個第二地址寄存器addr_vecl[]。其中, 第二組比較電路中的各第二加法器用于得到所讀數據列的次大值,即用于得到次峰值候選人,第二數據寄存器maX_vecl[]用于存儲次峰值候選人,第二地址寄存器addr_vecl[]用于存儲次峰值候選人的地址。如圖5所示,max_sort電路包括ρ個比較單元,每個比較單元包括一個加法器、一個數據寄存器和一個地址寄存器。實際應用中,如果數據存儲器中一個bank存儲了 ρ個能量數據,其中,ρ為大于0 的整數,一次讀入P個能量數據到第一組比較電路,為實現并行比較,第一組比較電路中需要包含P個加法器,第二組比較電路也需要包含P個加法器。也可以根據實際需要并行處理的能量數據的數量,調整第一組比較電路中加法器的數量。具體地,峰值搜索模塊進行峰值搜索處理的過程,具體流程如下步驟0 矢量處理器在峰值搜索模塊中寫入要配置的峰值搜索參數,為峰值搜索模塊配置峰值搜索參數;具體地,矢量處理器所配置的峰值搜索參數可以包括表示要讀取能量數據地址的源數據地址srC_data_addr、要讀取能量數據的數據長度data_len、峰值個數閾值η、主峰值候選人或次峰值候選人左右兩邊需清除/屏蔽的數據個數即清零閾值m、主峰值的地址addrjecO、次峰值的地址addr_Vecl、數據存儲器中用于存放峰值的地址Dest_add、用于表示存儲于寄存器還是數據存儲器的參數dest_sel等。實際應用中,峰值左右兩邊需清除/屏蔽的數據個數m為經驗參數,如果濾波效果好、或者射頻信號的信噪比高,可以設置較小的數值。步驟1 啟動之時,清零控制電路將第一組比較電路中的ρ個數據寄存器、以及ρ 個地址寄存器清零。步驟2 首次讀入的ρ個能量數據,直接存放到第一數據寄存器maX_VeC0 [],并將第二數據寄存器maX_vecl[]清零。這里,每時鐘周期可以讀進ρ個能量數據,ρ為大于0的整數,與保存能量數據的數據存儲器的組織結構有關,具體可以為數據存儲器每行所保存的能量數據個數。步驟3 驗證所述數據存儲器中是否有還有未讀取的能量數據,如果是,則從保存有能量數據的數據存儲器中讀取P個能量數據,并繼續(xù)步驟4,否則,繼續(xù)步驟6 ;步驟4 分別對所讀取的ρ個數據中每個能量數據執(zhí)行下述處理過程,找到主峰值候選人和次峰值候選人,繼續(xù)步驟5 步驟A,得到當前讀入第k個能量數據的地址addr_CUr、與第一組比較電路中第 k個第一地址寄存器addr_VecO[k]當前保存的主峰值候選人地址addr_pre之間的差值 addr_gap,判斷得到的差值addr_gap是否大于清零閾值m,如果是,則繼續(xù)步驟B ;否則,繼續(xù)步驟F;
步驟B,將讀進來的第k個能量數據k到第一組比較電路的第k個第一加法器,第 k個第一加法器將輸入的第k個能量數據、與第k個第一數據寄存器maX_VeC0 [k]當前保存的主峰值候選人進行比較,如果第k個能量數據大于第k個第一數據寄存器maX_vec0 [k] 當前保存的主峰值候選人,則繼續(xù)步驟C ;否則,繼續(xù)步驟D ;步驟C,對第k個第一數據寄存器maxjecO [k]和第k個第二數據寄存器max_ vecl[k]進行更新,第k個第二加法器將第k個第一數據寄存器maX_VeC0[k]當前所保存主峰值候選人的取值輸入到第k個第二數據寄存器maX_vecl [k],第k個第二數據寄存器 max_vecl[k]將自身當前所保存次峰值候選人的取值修改為所述第k個第一數據寄存器 max_vecO[k]當前保存的主峰值候選人的取值,并且,第k個第一加法器將讀入的第k個能量數據輸入到第k個第一數據寄存器maxjecO [k],第k個第一數據寄存器maxjecO [k]將自身當前所保存主峰值候選人的取值修改為所述第k個能量數據;同時,第k個第二加法器將第k個第一地址寄存器addr_VeC0[k]當前保存的主峰值候選人的地址輸入到第k個第二地址寄存器addr_vecl [k],第k個第二地址寄存器 addr_vecl[k]將自身當前保存次峰值候選人的地址修改為所述第k個第一地址寄存器 addr_vecO[k]當前保存的主峰值候選人地址;并且,第k個第一加法器將讀入的第k個能量數據的地址輸入到第k個第一地址寄存器addr_vecl [k],第k個第一地址寄存器addr_ vecl[k]將自身當前保存的主峰值候選人地址修改為所述第k個能量數據的地址;步驟D,將讀進來的能量數據k輸入到第二組比較電路的第k個第二加法器,第k 個第二加法器將輸入的第k個能量數據、與第k個第二數據寄存器maX_VeCl[k]當前保存的次峰值候選人進行比較,如果第k個能量數據大于第k個第二數據寄存器maX_vecl [k] 當前保存的次峰值候選人,則繼續(xù)步驟E ;否則,結束當前流程;步驟E,第k個第二加法器對第k個第二數據寄存器maX_VeCl[k]進行更新,將讀入的第k個能量數據輸入到第k個第二數據寄存器maX_vecl [k]中,第k個第二數據寄存器maX_vecl [k]自身當前保存次峰值候選人的取值修改為所述第k個能量數據;同時,第k個第二加法器將讀入的第k個能量數據的地址輸入到第k個第二地址寄存器addr_vecl [k],第k個第二地址寄存器addr_vecl [k]將自身當前保存的次峰值候選人地址修改為所述第k個能量數據的地址,結束當前流程。步驟F,將讀進來的第k個能量數據k輸入到第k個第一加法器,第k個第一加法器將輸入的第k個能量數據、與第k個第一數據寄存器maX_vec0[k]當前保存的主峰值候選人進行比較,如果第k個能量數據大于第k個第一數據寄存器maX_vec0 [k]當前保存的主峰值候選人,則繼續(xù)步驟G ;否則,結束當前流程;步驟G,對第k個第一數據寄存器maX_VeC0[k]進行更新,第k個第一加法器將讀入的第k個能量數據輸入到第k個第一數據寄存器maX_vec0 [k],第k個第一數據寄存器 max_vecO[k]將自身當前保存的主峰值候選人的取值修改為所述第k個能量數據,結束當前流程。同時,第k個第一加法器將讀入的第k個能量數據的地址輸入到第k個第一地址寄存器addr_vec0 [k],第k個第一地址寄存器addr_vec0 [k]將自身當前保存的主峰值候選人地址修改為所述第k個能量數據的地址,結束當前流程。步驟5 將所得到的主峰值候選人、次峰值候選人、主峰值候選人左右兩邊的清零閾值m個數據、以及次峰值候選人左右兩邊的清零閾值m個數據從數據存儲器中清零/屏蔽,并返回步驟3;實際應用中,需要在每次掃描峰值后進行清零/屏蔽操作。如此,data_len/p個周期后,所有的能量數據讀完之后,第一數據寄存器maX_ vec0[]保存ρ個主峰值候選人,第二數據寄存器maX_vecl[]保存ρ個次峰值候選人。步驟6 :max_sort電路將所述第一組比較電路中的各數據寄存器保存的主峰值候選人和第二組比較電路中各數據寄存器保存的次峰值候選人進行篩選,找到兩個或多個峰值,具體流程如下步驟a :max_sort電路從第一組比較電路中各數據寄存器獲取主峰值候選人、以及從第二組比較電路中各數據寄存器獲取次峰值候選人,分別對所獲取主峰值候選人、以及次峰值候選人按照從大到小進行排序,并進行剔除假峰值處理;步驟b :max_sort電路將所述次峰值候選人中最大的次峰值候選人、與各主峰值候選人進行比較,如果所述最大的次峰值候選人小于所述主峰值候選人中最小的主峰值候選人,則確定所有主峰值候選人、以及所有次峰值候選人為要搜索的峰值,否則,將大于所述最大次峰值候選人的各主峰值候選人、以及所述最大的次峰值候選人確定為峰值。為避免搜索到假峰值,在對各主峰值候選人、以及次峰值候選人進行排序的時候, 還需要剔除各主峰值候選人、以及次峰值候選人中的假峰值。這里,所述假峰值是指為所述主峰值候選人、和/或次峰值候選人左右兩邊清零閾值個能量數據中任意一個能量數據的峰值。實際應用中,對主峰值候選人進行排序以及剔除假峰值的過程可以是步驟c,max_sort電路從第一個數據寄存器maxjecO []首次讀入主峰值候選人, 同時,從第一個地址寄存器addr_vecO[]讀取該主峰值候選人的地址,并將該主峰值候選人存為maxO、將max_l,max_2, . . .,max_p-l清零,將該主峰值候選人的地址存為addr_0, M addr_l, . . . , addr_p-l ;步驟d,maX_SOrt電路驗證是否已經讀取了 ρ個主峰值候選人,如果是,則繼續(xù)h, 否則,繼續(xù)步驟e ;步驟e,max_sort電路繼續(xù)從第一個數據寄存器maxjecO []讀入主峰值候選人, 同時,從第一個地址寄存器addr_vecO[]讀取該主峰值候選人的地址;步驟f,max_sort電路將所讀入的主峰值后選人與max_0、max_l、. . .、max_p_l進
行比較,同時,將所讀入主峰值后選人的地址與addr_0、addr_l.....addr_p-l之間的差值
和清零閾值m進行比較;步驟g,根據步驟f的比較結果,maX_SOrt電路將該讀入的主峰值候選人存為max_ k(k為0、1、2,... , P-1),并將該主峰值候選人的地址存為對應的addr_k ;本步驟中的操作牽涉到max_0,max_l,. . .,max_p-l之間的拷貝和移位操作。例如,如果所讀入的主峰值候選人小于max_l中的數據且大于max_2,且主峰值候選人的地址addr_in與地址addr_l的差值大于清零閾值m、主峰值候選人的地址addr_ in與地址addr_2的差值大于清零閾值m,則將max_2存為max_3,將所讀入的主峰值候選人存為max_2 ;如果所讀入的主峰值候選人小于max_l且大于max_2,且主峰值候選人的地址addr_in與地址addr_l的差值大于清零閾值m、主峰值候選人的地址addr_in與地址addr_2的差值不大于清零閾值m,則maX_2為假峰值,是無效的,此時,只須將maX_l存為 max_2,如此類推。步驟h,max_sort電路完成對ρ個主峰值候選人的從大到小排序,得到主峰值候選人序列(max_0,max_l, ...,max_p-l)以及相對應的主峰值候選人地址序列(addr_0, addr_l,.. . , addr_p-l);同理,maX_SOrt電路可以對第二數據寄存器maxjecl []中的ρ個次峰值候選人進行從大到小排序,同時,將其中的假峰值剔除掉,得到次峰值候選人序列(smaX_0, smax_l, . . .,smax_p-l)和相對應的次峰值候選人地址序列(saddr_0,saddr_l,..., saddr_p-l)。最后,max_sort電路將次峰值候選人序列中的最大值smaxj)分別與主峰值候選人序列(max_0,max_l, . . .,max_p-l)中的各主峰值候選人進行比較,如果max_ k-1 < smax_0 < max_k, k = 0,1,…,p-1,貝U,將 max_0, max_l,…,max_k 中的 k 個主峰值候選人、以及次峰值候選人序列中的最大值smaX_0確定為峰值,最終搜索到k 個峰值;如果smax_0小于主峰值候選人中的最小值maX_p-l,則將次峰值候選人序列 (smax_0, smax_l, . . .,smax_p-l)中的ρ個次峰值候選人、以及主峰值候選人序列(max_0, max_l, ... , max_p-l)中的ρ個主峰值候選人確定為峰值,最終搜索到2*ρ個最大值。實際應用中,在能量數據中的比較大的數據比較分散的情況下,第一數據寄存器 max_vec0[]中ρ個主峰值候選人的地址差值大于m,第二數據寄存器maxjecl []中的ρ個次峰值候選人的地址差值也大于m,找到峰值數目的概率如下表1所示,其中,χ取決于第二組比較電路篩選出的峰值個數。
權利要求
1.一種峰值搜索方法,其特征在于,所述方法包括獲取多個能量數據,第一組比較電路和第二組比較電路共同對所獲取的多個能量數據進行篩選,在完成所有需搜索能量數據的獲取及篩選后,第一組比較電路得到主峰值候選人,第二組比較電路得到次峰值候選人;對所述第一組比較電路得到的所有主峰值候選人、以及所述第二組比較電路得到的次峰值候選人進行篩選,得到峰值。
2.根據權利要求1所述峰值搜索方法,其特征在于,所述第一組比較電路包括多個加法器、多個數據寄存器,第二組比較電路包括多個加法器、多個數據寄存器;所述第一比較電路和第二組比較電路共同對所獲取的多個能量數據進行篩選,包括, 對每個非首次獲取的能量數據執(zhí)行下述處理在非首次所獲取的第k個能量數據的地址、與所述第一組比較電路中第k個第一地址寄存器當前保存的能量數據地址之間差值大于預設的清零閾值時,其中,k用于表示所獲取能量數據的序號,為不小于零的整數;將所獲取的第k個能量數據輸入到第一組比較電路中第k個第一加法器,所述第k個第一加法器將輸入的第k個能量數據與所述第k個第一數據寄存器當前保存的數據進行比較當所述第k個能量數據大于所述第k個第一數據寄存器當前保存的能量數據時,將所述第k個第一數據寄存器當前保存的主峰值候選人輸入到所述第二組比較電路中第k個第二數據寄存器,將所述第k個第二數據寄存器當前的次峰值候選人更新為所述第k個第一數據寄存器當前保存的主峰值候選人,并將所述第k個第一數據寄存器當前保存的主峰值候選人更新為所述第k個能量數據;當所述第k個能量數據不大于所述第k個第一數據寄存器當前保存的主峰值候選人時,將所述第k個能量數據輸入到所述第二比較電路的第k個第二加法器,所述第k個第二加法器將所述第k個能量數據與所述第k個第二數據寄存器當前保存的次峰值候選人進行比較,在所述第k個能量數據大于所述第k個第二數據寄存器當前保存的次峰值候選人時, 將所述第k個第二數據寄存器當前保存的次峰值候選人更新為所述第k個能量數據。
3.根據權利要求2所述峰值搜索方法,其特征在于,所述第一比較電路和第二組比較電路共同對所獲取的多個能量數據進行篩選,包括,對每個非首次獲取的能量數據執(zhí)行下述處理在非首次獲取的第k個能量數據的地址、與所述第一組比較電路中第k個第一地址寄存器當前保存的能量數據地址之間差值不大于預設的清零閾值時,將所獲取的第k個能量數據輸入到所述第k個第一加法器,所述第k個第一加法器將輸入的第k個能量數據與所述第k個第一數據寄存器當前保存的主峰值候選人進行比較 當所述第k個能量數據大于所述第k個第一數據寄存器當前保存的主峰值候選人時, 將所述第k個第一數據寄存器當前保存的主峰值候選人更新為所述第k個能量數據;當所述第k個能量數據不大于所述第k個第一數據寄存器當前保存的主峰值候選人時,不更新所述第k個第一數據寄存器和第k個第二數據寄存器。
4.根據權利要求2所述峰值搜索方法,其特征在于,所述第一組比較電路還包括多個第一地址寄存器,所述第二組比較電路還包括多個第二地址寄存器;所述方法還包括更新所述第一組比較電路的第一數據寄存器時,相應的更新所述第一組比較電路中第一地址寄存器保存的主峰值候選人地址;更新所述第二組比較電路的第二數據寄存器時,相應的更新所述第二組比較電路中第二地址寄存器保存的次峰值候選人地址。
5.根據權利要求4所述峰值搜索方法,其特征在于,所述更新所述第一組比較電路的第一數據寄存器時,相應的更新所述第一組比較電路中第一地址寄存器保存的主峰值候選人地址,包括對每個非首次獲取的能量數據執(zhí)行下述處理對于在第k個第一數據寄存器當前保存的次峰值候選人更新為所述第k個能量數據時,還將所述第k個第一地址寄存器當前保存的數據地址更新為所述第k個能量數據的地址;所述更新所述第二組比較電路的第二數據寄存器時,相應的更新所述第二組比較電路中第二地址寄存器保存的次峰值候選人地址,包括對每個非首次獲取的能量數據執(zhí)行下述處理將所述第k個第二數據寄存器當前保存的次峰值候選人更新為所述第k個能量數據時,還將第k個第二地址寄存器當前保存的數據地址更新為所述第k個能量數據的地址;和/或,將所述第k個第二數據寄存器當前保存的次峰值候選人更新為所述第k個第一數據寄存器當前保存的主峰值候選人時,還將第k個第二地址寄存器當前保存的數據地址更新為所述第k個第一地址寄存器當前保存的地址。
6.根據權利要求1至5任一項所述峰值搜索方法,其特征在于,在所述獲取多個能量數據之前,所述方法還包括對獲取的采樣數據進行相關運算處理、過濾運算處理后,再進行取模運算處理,從取模運算處理的結果中提取實部,得到所述能量數據并保存到存儲器中。
7.根據權利要求6所述峰值搜索方法,其特征在于,所述存儲器每行存儲有多個能量數據;所述獲取多個能量數據,為從所述存儲器中讀取一行量數據。
8.根據權利要求1至5任一項所述峰值搜索方法,其特征在于,所述在獲取多個能量數據之前,所述方法還包括將所得到的主峰值候選人、次峰值候選人、主峰值候選人左右兩邊的預設清零閾值個數據、以及次峰值候選人左右兩邊的預設清零閾值個數據從所述所有需搜索的能量數據中清零。
9.根據權利要求1至5任一項所述峰值搜索方法,其特征在于,所述對所述第一組比較電路得到的所有主峰值候選人、以及所述第二組比較電路得到的次峰值候選人進行篩選, 得到峰值,包括最大值排序電路從所述第一組比較電路獲取主峰值候選人,從所述第二組比較電路獲取到次峰值候選人,并分別對所獲取到的主峰值候選人、次峰值候選人進行排序、剔除假峰值、以及比較等處理,得到多個峰值。
10.根據權利要求1至5任一項所述峰值搜索方法,其特征在于,在得到峰值之后,所述方法還包括驗證所得到峰值的個數是否達到預設的峰值個數閾值,如果不是,則將所得到的峰值、以及所述峰值左右兩邊的一個或多個數據從所述所有需搜索的能量數據中清零后,重復進行峰值搜索;否則,結束當前峰值搜索。
11.一種峰值搜索裝置,其特征在于,所述裝置包括第一組比較電路、第二組比較電路和最大值排序電路,其中,第一組比較電路,用于獲取多個能量數據,并與所述第二組比較電路共同對所獲取的多個能量數據進行篩選,得到主峰值候選人;第二組比較電路,用于獲取多個能量數據,并與所述第一組比較電路共同對所獲取的多個能量數據進行篩選,得到主峰值候選人;最大值排序電路,用于對所述第一組比較電路得到的所有主峰值候選人、以及所述第二組比較電路得到的次峰值候選人進行篩選,得到峰值。
12.根據權利要求11所述峰值搜索裝置,其特征在于,所述裝置還包括存儲器和矢量處理器,其中,存儲器,用于保存所有需搜索的能量數據;矢量處理器,用于對獲取的采樣數據進行相關運算處理、過濾運算處理后,再進行取模運算處理,從取模運算處理的結果中提取實部,得到所述能量數據并保存到存儲器中。
13.根據權利要求11所述峰值搜索裝置,其特征在于, 所述存儲器,還用于每行存儲多個能量數據;所述第一組比較電路和第二組比較電路,還用于從所述存儲器中每次讀取一行能量數據。
14.根據權利要求11所述峰值搜索裝置,其特征在于,所述第一組比較電路包括多個第一加法器、和多個第一數據寄存器,所述第一加法器與所述第一數據寄存器一一對應并連接;所述第一加法器,用于獲取多個能量數據,并對所獲取的多個能量數據進行篩選,得到主峰值候選人,并將得到的主峰值候選人保存到所述第一數據寄存器; 所述第一數據寄存器,用于保存所述主峰值候選人。
15.根據權利要求14所述峰值搜索裝置,其特征在于,所述第一組比較電路還包括多個第一地址寄存器,用于保存所述主峰值候選人的地址;所述第一加法器,還用于將所得到主峰值候選人的地址保存到所述第一地址寄存器; 其中,所述第一地址寄存器與所述第一加法器一一對應并連接,與所述第一數據寄存器一一對應并連接。
16.根據權利要求11所述峰值搜索裝置,其特征在于,所述第二組比較電路包括多個第二加法器、和多個第二數據寄存器,所述第一加法器與所述第一數據寄存器一一對應并連接;所述第二加法器,用于獲取多個能量數據,并對所獲取的多個能量數據進行篩選,得到次峰值候選人,并將得到的次峰值候選人保存到所述第二數據寄存器; 所述第二數據寄存器,用于保存所述次峰值候選人。
17.根據權利要求16所述峰值搜索裝置,其特征在于,所述第二組比較電路還包括多個第二地址寄存器,用于保存所述次峰值候選人的地址;所述第二加法器,還用于將所得到次峰值候選人的地址保存到所述第二地址寄存器;所述第二地址寄存器與所述第二加法器一一對應并連接,與所述第二數據寄存器一一對應并連接。
18.根據權利要求11至17任一項所述峰值搜索裝置,其特征在于,所述裝置還包括 循環(huán)控制電路和清零控制電路,其中,循環(huán)控制電路,用于驗證所述第二組比較電路所得到峰值的個數是否達到預設的峰值個數閾值,如果不是,則通知所述清零控制電路進行清零, 并啟動所述第一組比較電路、第二組比較電路和最大值排序電路,重復進行峰值搜索;否則,結束當前峰值搜索;清零控制電路,用于在接收到所述循環(huán)控制電路的通知時,將所述第二組比較電路得到的峰值、以及所述峰值左右兩邊的一個或多個能量數據從存儲有所有需搜索能量數據的存儲器中清零。
19.根據權利要求18所述峰值搜索裝置,其特征在于,所述清零控制電路,還用于將所述第一組比較電路得到的主峰值候選人和所述主峰值候選人左右兩邊的預設清零閾值個能量數據、以及第二組比較電路得到的次峰值候選人和次峰值候選人左右兩邊的預設清零閾值個能量數據,從存儲有所有需搜索能量數據的存儲器中清零。
全文摘要
本發(fā)明公開了一種峰值搜索方法,所述方法包括獲取多個能量數據,第一組比較電路和第二組比較電路共同對所獲取的多個能量數據進行篩選,在所有能量數據均已獲取并篩選之后,第一組比較電路得到主峰值候選人并保存,第二組比較電路得到次峰值候選人并保存;對所述第一組比較電路保存的所有主峰值候選人、以及所述第二組比較電路保存的次峰值候選人進行篩選,得到峰值。本發(fā)明還公開了一種峰值搜索裝置,速度快,并且每輪掃描至少能夠得到兩個峰值,可以節(jié)省功耗,并且兼顧峰值搜索的速度和硬件邏輯資源;此外,本發(fā)明的峰值搜索裝置的關鍵電路只需要一系列加法器和寄存器即可實現,簡單易實現,面積小,成本低。
文檔編號H04B1/711GK102185633SQ201110116669
公開日2011年9月14日 申請日期2011年5月6日 優(yōu)先權日2011年5月6日
發(fā)明者戴冠新, 黎立煌 申請人:中興通訊股份有限公司