本發(fā)明屬于電子
技術領域:
:,尤其涉及一種直接數字頻率合成器及其頻率合成方法、調頻發(fā)射裝置。
背景技術:
::頻率合成技術是現代通訊電子系統(tǒng)實現高性能指標的關鍵技術之一,很多電子設備的功能實現都直接依賴于所用頻率合成器的性能,對于不斷變頻的通訊系統(tǒng),諸如無線局域網(WirelessLAN),數字蜂窩系統(tǒng),電子對抗系統(tǒng)等,頻率合成技術是在其中的應用顯得尤為重要?,F有技術提供一種直接數字頻率合成器。該直接數字頻率合成器包括:相位累加器,相位-幅度轉換模塊和數模轉換器。通常,相位-幅度轉換模塊是一個存儲sin/cos數據的正弦查找表只讀存儲器(ROM)。其工作原理為:在工作時鐘的驅動下,相位累加器對頻率控制字進行線性累加,得到相角大小,并將相角大小輸入相位-幅度轉換模塊,相位-幅度轉換模塊根據相角大小進行查表尋址,獲取相角大小對應的信號幅度;最后將該其輸入數模轉換器,經數模轉換器轉換得到正弦頻率的信號,以得到一個輸出幅度隨著相位變化的波形信號。由于相位-幅度轉換模塊需要2D個地址存儲查找表,D為數模轉換器的位寬,即查找表的大小和數模轉換器的位寬成指數關系,所以查找表非常大,占用內存較大。技術實現要素:本發(fā)明提供一種直接數字頻率合成器及其頻率合成方法、調頻發(fā)射裝置,能夠有效減小查找表的長度,減小查找表占用的內存。為解決上述問題,本發(fā)明第一方面提供一種直接數字頻率合成方法,所述直接數字頻率合成方法包括:獲取工作時鐘頻率以及頻率控制字;根據存儲器的最大長度值、所述工作時鐘頻率以及所述頻率控制字,確定滿足預設要求的頻率誤差對應的目標分頻比、查找表長度以及相位步進值;根據所述查找表長度以及所述相位步進值生成查找表;根據所述工作時鐘頻率、所述目標分頻比產生觸發(fā)信號;根據所述觸發(fā)信號對應的計數值從所述查找表獲取所述計數值對應的幅度,并對所述幅度進行數模轉換輸出正弦波信號。為解決上述問題,本發(fā)明第二方面提供一種直接數字頻率合成器,所述直接數字頻率合成器包括:獲取模塊,用于獲取工作時鐘頻率以及頻率控制字;確定模塊,用于根據存儲器的最大長度值、所述工作時鐘頻率以及所述頻率控制字,確定滿足預設要求的頻率誤差對應的目標分頻比、查找表長度以及相位步進值;生成模塊,用于根據所述查找表長度以及所述相位步進值生成查找表;觸發(fā)模塊,用于根據所述工作時鐘頻率、所述目標分頻比產生觸發(fā)信號;頻率合成模塊,用于根據所述觸發(fā)信號對應的計數值從所述查找表獲取所述計數值對應的幅度,并對所述幅度進行數模轉換輸出正弦波信號。為解決上述問題,本發(fā)明第三方面提供一種調頻發(fā)射裝置,所述一種調頻發(fā)射裝置包括上述直接數字頻率合成器。上述方案,直接數字頻率合成器根據存儲器的最大長度值、工作時鐘頻率以及頻率控制字,確定滿足預設要求的頻率誤差對應的目標分頻比、查找表長度以及相位步進值;根據查找表長度以及相位步進值生成查找表;根據工作時鐘頻率、目標分頻比產生觸發(fā)信號;根據觸發(fā)信號對應的計數值從查找表獲取計數值對應的幅度,并對幅度進行數模轉換輸出正弦波信號。由于直接數字頻率合成器是根據符合預設要求的頻率誤差對應的目標分頻比、查找表實現直接數字頻率合成,能夠預先計算查找表中包含的幅度值,有效減小頻率誤差,從而能夠有效減小根據符合預設要求的頻率誤差得到的查找表長度,減少查找表所占用的存儲空間,提高內存占用率。附圖說明圖1是本發(fā)明直接數字頻率合成方法一實施例的流程圖;圖2是本發(fā)明直接數字頻率合成方法另一實施例的流程圖;圖3是本發(fā)明直接數字頻率合成方法再一實施例的流程圖;圖4是本發(fā)明直接數字頻率合成器一實施例的結構示意圖;圖5是本發(fā)明直接數字頻率合成器另一實施例的結構示意圖;圖6是本發(fā)明直接數字頻率合成器再一實施例的結構示意圖;圖7是本發(fā)明直接數字頻率合成器又一實施例的結構示意圖。具體實施方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。請參閱圖1,圖1是本發(fā)明直接數字頻率合成方法一實施例的流程圖。本實施例中的直接數字頻率合成方法的執(zhí)行主體為直接數字頻率合成器。本實施例中的直接數字頻率合成方法包括以下步驟:S101:獲取工作時鐘頻率以及頻率控制字。直接數字頻率合成器獲取工作時鐘頻率以及頻率控制字。工作時鐘頻率可以是直接數字頻率合成器內部晶振對應的頻率或其倍頻。頻率控制字是控制頻率發(fā)生的字(需要輸出的頻率),改變頻率控制字的內容,可改變頻率變化,頻率控制字可以是導頻信號對應的頻率。例如,在調頻((FrequencyModulation,FM)立體聲發(fā)射中,立體聲編碼需要一個19KHz的導頻信號。假設片上系統(tǒng)只使用了一個32.768KHz的晶振,并倍頻32倍到1.048576MHz作為工作時鐘輸入到直接數字頻率合成器中;那么,此時工作時鐘頻率為1.048576MHz,頻率控制字為19KHz。S102:根據存儲器的最大長度值、所述工作時鐘頻率以及所述頻率控制字,確定滿足預設要求的頻率誤差對應的目標分頻比、查找表長度以及相位步進值。直接數字頻率合成器在獲取到工作時鐘頻率、頻率控制字之后,獲取存儲器的最大長度值,根據存儲器的最大長度值、工作時鐘頻率以及頻率控制字進行分頻比和相位步進值的搜索,并計算每個分頻比的所有搜索周期各自對應的頻率誤差,確定滿足預設要求的頻率誤差對應的目標分頻比、查找表長度以及相位步進值。S103:根據所述查找表長度以及所述相位步進值生成查找表。直接數字頻率合成器查找表長度以及相位步進值計算每個存儲地址對應的幅度值,從而生成查找表。S104:根據所述工作時鐘頻率、所述目標分頻比產生觸發(fā)信號。直接數字頻率合成器根據工作時鐘頻率按照目標分頻比分頻后產生一個觸發(fā)信號,并對產生的觸發(fā)信號進行計數,每產生一個觸發(fā)信號將計數值加1。其中,當計數值等于目標分頻比對應的查找表長度后歸零。S105:根據所述觸發(fā)信號對應的計數值從所述查找表獲取所述計數值對應的幅度,并對所述幅度進行數模轉換輸出正弦波信號。直接數字頻率合成器根據觸發(fā)信號對應的計數值從生產的查找表中獲取計數值對應的幅度,并對獲取到幅度進行數模轉換輸出正弦波信號,以實現直接數字頻率合成??梢岳斫獾氖牵苯訑底诸l率合成器當確定頻率控制字發(fā)送改變時,返回步驟S101,執(zhí)行S101~S105。上述方案,直接數字頻率合成器根據存儲器的最大長度值、工作時鐘頻率以及頻率控制字,確定滿足預設要求的頻率誤差對應的目標分頻比、查找表長度以及相位步進值;根據查找表長度以及相位步進值生成查找表;根據工作時鐘頻率、目標分頻比產生觸發(fā)信號;根據觸發(fā)信號對應的計數值從查找表獲取計數值對應的幅度,并對幅度進行數模轉換輸出正弦波信號。由于直接數字頻率合成器是根據符合預設要求的頻率誤差對應的目標分頻比、查找表實現直接數字頻率合成,能夠預先計算查找表中包含的幅度值,有效減小頻率誤差,從而能夠有效減小根據符合預設要求的頻率誤差得到的查找表長度,減少查找表所占用的存儲空間,提高內存占用率。請參閱圖2,圖2是本發(fā)明直接數字頻率合成方法另一實施例的流程圖。本實施例中的直接數字頻率合成方法的執(zhí)行主體為直接數字頻率合成器。如圖2所示的直接數字頻率合成方法包括以下步驟:S201:獲取工作時鐘頻率以及頻率控制字。直接數字頻率合成器獲取工作時鐘頻率以及頻率控制字。工作時鐘頻率可以是直接數字頻率合成器內部晶振對應的頻率或其倍頻。頻率控制字是控制頻率發(fā)生的字(需要輸出的頻率),改變頻率控制字的內容,可改變頻率變化,頻率控制字可以是導頻信號對應的頻率。例如,在調頻((FrequencyModulation,FM)立體聲發(fā)射中,立體聲編碼需要一個19KHz的導頻信號。假設片上系統(tǒng)只使用了一個32.768KHz的晶振,并倍頻32倍到1.048576MHz作為工作時鐘輸入到直接數字頻率合成器中;那么,此時工作時鐘頻率為1.048576MHz,頻率控制字為19KHz。S202:根據存儲器的最大長度值、所述工作時鐘頻率以及所述頻率控制字確定分頻比對應的搜索范圍值以及每個分頻比的搜索周期數目。直接數字頻率合成器獲取存儲器的最大長度值,根據取存儲器的最大長度值、工作時鐘頻率以及頻率控制字計算最小分頻比以及最大分頻比,從而根據最小分頻比與最大分頻比確定分頻比的搜索范圍。其中,初始化的分頻比為最小分頻比。直接數字頻率合成器還根據取存儲器的最大長度值、工作時鐘頻率以及頻率控制字計算每個分頻比需要搜索的周期數目。其中,直接數字頻率合成器計算每個分頻比需要搜索的最大周期數目,并將每個分頻比需要搜索的周期數目初始化為1。S203:根據所述搜索范圍以及所述每個分頻比的搜索周期數目,獲取所述每個分頻比的所有搜索周期各自對應的頻率誤差。例如,直接數字頻率合成器遍歷分頻比的搜索范圍,確定每個分頻比對應的需要搜索的周期數目,并根據每個分頻比的搜索周期數目遍歷每個分頻比對應的需要搜索的周期,獲取每個分頻比的所有搜索周期各自對應的頻率誤差,并從每個分頻比對應的所有搜索周期各自對應的頻率誤差中,確定滿足預設要求的頻率誤差??梢岳斫獾氖?,直接數字頻率合成器可以按從最小分頻比到最大分頻比的順序遍歷分頻比的搜索范圍,也可以按最大分頻比到最小分頻比的順序遍歷分頻比的搜索范圍,還可以進行隨機搜索,此處不做限制。具體地,分頻比的搜索范圍為[最小分頻比,最大分頻比],任意兩個連續(xù)且相鄰的分頻比的差值的絕對值為1。直接數字頻率合成器根據第一分頻比(可以為最小分頻比)以及第一分頻比對應的需要搜索的周期數目,獲取第一分頻比對應的所有搜索周期各自對應的頻率誤差,并從第一分頻比對應的所有搜索周期各自對應的頻率誤差中,確定滿足預設要求的頻率誤差。直接數字頻率合成器在確認已經遍歷第一分頻比的所有搜索周期,并確定滿足預設要求的頻率誤差時,根據第二分頻比(第二分頻比的值在第一分頻比的基礎上遞增1)以及第二分頻比對應的需要搜索的周期數目,獲取第二分頻比對應的所有搜索周期各自對應的頻率誤差,并從第二分頻比對應的所有搜索周期各自對應的頻率誤差中,確定滿足預設要求的頻率誤差。按照上述方法依次逐一獲取每個分頻比對應的所有搜索周期各自對應的頻率誤差,并從每個分頻比對應的所有搜索周期各自對應的頻率誤差中,確定滿足預設要求的頻率誤差,直到確認已獲取到分頻比的搜索范圍內的所有分頻比各自對應的滿足預設要求的頻率誤差。在另一實施例中,直接數字頻率合成器也可以遍歷分頻比的搜索范圍,確定每個分頻比對應的需要搜索的周期數目,并根據每個分頻比的搜索周期數目遍歷每個分頻比對應的需要搜索的周期,獲取每個分頻比的所有搜索周期各自對應的頻率誤差。S204:確定滿足預設要求的所述頻率誤差對應的目標分頻比、目標搜索周期的標識。直接數字頻率合成器在獲取到搜索范圍內的所有分頻比各自對應的滿足預設要求的頻率誤差時,再從中確定滿足預設要求的頻率誤差對應的目標分頻比、目標搜索周期的標識。在另一種實施例中,當直接數字頻率合成器分別獲取到搜索范圍內的每個分頻比的所有搜索周期各自對應的頻率誤差時,從獲取到的所有頻率誤差中確定滿足預設要求的頻率誤差,并記錄滿足預設要求的頻率誤差對應的目標分頻比、目標搜索周期的標識。可以理解的是,預設要求用于標識頻率誤差在可接受的誤差范圍內,可以是當前的頻率誤差小于或等于預設頻率誤差閾值,也可以是當前的頻率誤差為獲取到的所有頻率誤差中值最小。最終確定的滿足預設要求的頻率誤差的個數可以為一個,也可以為至少兩個。當滿足預設要求的頻率誤差的個數為兩個時,可以將其中任意一個識別為目標頻率誤差,也可以將其中值最小的頻率誤差識別為目標頻率誤差,此處不做限制。目標頻率誤差于目標分頻比、目標搜索周期的標識一一對應。S205:根據所述目標搜索周期的標識計算所述目標分頻比對應的查找表長度以及相位步進值。直接數字頻率合成器根據目標搜索周期的標識、工作時鐘頻率以及頻率控制字計算目標分頻比對應的查找表長度以及相位步進值。S206:根據所述查找表長度以及所述相位步進值生成查找表。直接數字頻率合成器查找表長度以及相位步進值計算每個存儲地址對應的幅度值,從而生成查找表。S207:根據所述工作時鐘頻率、所述目標分頻比產生觸發(fā)信號。直接數字頻率合成器根據工作時鐘頻率按照目標分頻比分頻后產生一個觸發(fā)信號,并對產生的觸發(fā)信號進行計數,每產生一個觸發(fā)信號將計數值加1。其中,當計數值等于目標分頻比對應的查找表長度后歸零。S208:根據所述觸發(fā)信號對應的計數值從所述查找表獲取所述計數值對應的幅度,并對所述幅度進行數模轉換輸出正弦波信號。直接數字頻率合成器根據觸發(fā)信號對應的計數值從生產的查找表中獲取計數值對應的幅度,并對獲取到幅度進行數模轉換輸出正弦波信號,以實現直接數字頻率合成??梢岳斫獾氖?,直接數字頻率合成器當確定頻率控制字發(fā)送改變時,返回步驟S201,執(zhí)行S201~S208。上述方案,直接數字頻率合成器根據存儲器的最大長度值、工作時鐘頻率以及頻率控制字確定分頻比對應的搜索范圍以及每個分頻比的搜索周期數目;根據搜索范圍以及每個分頻比的搜索周期數目,獲取每個分頻比的所有搜索周期各自對應的頻率誤差;確定滿足預設要求的頻率誤差對應的目標分頻比、目標搜索周期的標識;根據目標搜索周期的標識計算目標分頻比對應的查找表長度以及相位步進值;根據查找表長度以及相位步進值生成查找表;根據工作時鐘頻率、目標分頻比產生觸發(fā)信號;根據觸發(fā)信號對應的計數值從查找表獲取計數值對應的幅度,并對幅度進行數模轉換輸出正弦波信號。由于直接數字頻率合成器是根據符合預設要求的頻率誤差對應的目標分頻比、查找表實現直接數字頻率合成,能夠預先計算查找表中包含的幅度值,有效減小頻率誤差,從而能夠有效減小根據符合預設要求的頻率誤差得到的查找表長度,減少查找表所占用的存儲空間,提高內存占用率。請參閱圖3,圖3是本發(fā)明直接數字頻率合成方法再一實施例的流程圖。本實施例中的直接數字頻率合成方法的執(zhí)行主體為直接數字頻率合成器。如圖3所示的直接數字頻率合成方法包括以下步驟:S301:獲取工作時鐘頻率以及頻率控制字。直接數字頻率合成器獲取工作時鐘頻率以及頻率控制字。工作時鐘頻率可以是直接數字頻率合成器內部晶振對應的頻率或其倍頻。頻率控制字是控制頻率發(fā)生的字(需要輸出的頻率),改變頻率控制字的內容,可改變頻率是否發(fā)生和可改變頻率變化,頻率控制字可以是導頻信號對應的頻率。例如,在調頻((FrequencyModulation,FM)立體聲發(fā)射中,立體聲編碼需要一個19KHz的導頻信號。假設片上系統(tǒng)只使用了一個32.768KHz的晶振,并倍頻32倍到1.048576MHz作為工作時鐘輸入到直接數字頻率合成器中;那么,此時工作時鐘頻率為1.048576MHz,頻率控制字為19KHz。S302:根據存儲器的最大長度值、所述工作時鐘頻率以及所述頻率控制字確定分頻比對應的搜索范圍值以及每個分頻比的搜索周期數目。直接數字頻率合成器獲取存儲器的最大長度值,根據取存儲器的最大長度值、工作時鐘頻率以及頻率控制字計算最小分頻比以及最大分頻比,從而根據最小分頻比與最大分頻比確定分頻比的搜索范圍。其中,初始化的分頻比為最小分頻比。直接數字頻率合成器還根據取存儲器的最大長度值、工作時鐘頻率以及頻率控制字計算每個分頻比需要搜索的周期數目。其中,直接數字頻率合成器計算每個分頻比需要搜索的最大周期數目,并將每個分頻比需要搜索的周期數目初始化為1。進一步地,步驟S302可以包括以下步驟:S3021:根據所述工作時鐘頻率、所述頻率控制字以及所述存儲器的最大長度值計算所述頻率控制字對應的最小分頻比。最小分頻比div_min的計算公式為:div_min=ceil(fc/(fo*mem_len));其中,div_min表示最小分頻比,ceil(x)表示將x向無窮大方向取整(例如,當x=2.1時,ceil(x)=3),fc表示工作時鐘頻率,fo表示頻率控制字(要輸出的頻率),mem_len表示存儲器的最大長度值,按照需求的頻率精度來決定,存儲器長度越大,頻率越準確。按照經驗數據mem_len為64時,可以達到萬分之一的頻率誤差。假設工作時鐘頻率fc為1.048576MHz,頻率控制字fo=19KHz,存儲器的最大長度值為128,那么,div_min=ceil(1.048576MHz/(19KHz*128))=1。S3022:根據所述工作時鐘頻率以及所述頻率控制字計算所述頻率控制字對應的最大分頻比。最大分頻比div_max的計算公式為div_max=floor(fc/(fo*2))。其中,floor(x)表示將x向無窮小方向取整(例如,當x=2.8時,floor(x)=2)。假設工作時鐘頻率fc=1.048576MHz,頻率控制字fo=19KHz,那么最大分頻比div_max=floor(1.048576MHz/(19KHz*2))=27。S3023:根據所述最小分頻比以及所述最大分頻比確定所述分頻比對應的搜索范圍。直接數字頻率合成器在確定最小分頻比以及最大分頻比時,根據最小分頻比以及最大分頻比確定分頻比對應的搜索范圍。分頻比對應的搜索范圍為[最小分頻比,最大分頻比]。分頻比為正整數,且任意兩個連續(xù)且相鄰的分頻比之間的差值的絕對值為1。S3024:根據所述工作時鐘頻率、所述存儲器的最大長度值、所述頻率控制字以及所述每個分頻比各自對應的搜索范圍內的搜索值計算所述每個分頻比的搜索周期數目。具體地,根據所述工作時鐘頻率、每個分頻比各自對應的搜索范圍內的搜索值計算每個分頻比的搜索值各自對應的采樣率;根據存儲器的最大長度值、每個分頻比的搜索值各自對應的采樣率、頻率控制字計算每個分頻比的搜索周期數目。例如,當前分頻比的搜索值小于或等于最大分頻比時,直接數字頻率合成器根據工作時鐘頻率計算每個分頻比的搜索值對應的采樣率,當前分頻比對應的采樣率fs=fc/N,N為當前分頻比對應的搜索范圍內的搜索值(當前分頻比)。當fc=1.048576MHz,N為25時,fs=1.048576MHz/25=41.94304KHz。計算當前分頻比對應的需要搜索的最大周期數目為:max_period=floor(mem_len/(fs/fo));其中,當前分頻比對應的搜索周期范圍為[1,max_period],初始化周期數i=1。當fs=41.94304KHz,fo=19KHz,mem_len=128時,max_period=floor(128/(41.94304KHz/19KHz))=57。S303:根據所述搜索范圍以及所述每個分頻比的搜索周期數目,獲取所述每個分頻比的所有搜索周期各自對應的頻率誤差。直接數字頻率合成器根據分頻比的搜索范圍以及每個分頻比的搜索周期數目,獲取當前分頻比,并在確認前分頻比小于或等于最大分頻比,且當前分頻比的當前搜索周期的值小于當前分頻比的最大搜索周期數目時,計算當前分頻比以及當前搜索周期下的頻率誤差。其中,計算當前分頻比和當前周期數下的頻率誤差,頻率誤差計算公式可以為:freq_delta=abs(fs/(round(fs/fo*i)/i)-fo);其中,abs(x)是指取x的絕對值,round(x)是指將x向最接近的整數取整,i為當前搜索周期的值,i=1,2,……,max_period(最大搜索周期的數目)。假設i=53,fs=41.94304KHz,fo=19KHz,那么,freq_delta=abs(41.94304KHz/(round(41.94304KHz/19KHz*53)/53)-19KHz)≈0.000161367521KHz。直接數字頻率合成器在計算得到當前分頻比以及當前搜索周期下的頻率誤差時,調整搜索周期(在當前搜索周期的基礎上遞增1),計算當前分頻比下調整后的搜索周期對應的頻率誤差,以計算當前分頻比的所有搜索周期各自對應的頻率誤差。直接數字頻率合成器在確認調整后的搜索周期的值大于當前分頻比的最大周期數目時,調整分頻比(在當前分頻比的基礎上遞增1),并返回步驟S3024,執(zhí)行步驟S3024~S303,直到確認調整后的分頻比大于最大分頻比時,停止搜索。直接數字頻率合成器在執(zhí)行完步驟S303時,執(zhí)行步驟S304。S304:確定滿足預設要求的所述頻率誤差對應的目標分頻比、目標搜索周期的標識。直接數字頻率合成器在獲取到搜索范圍內的所有分頻比的所有搜索周期各自對應的滿足預設要求的頻率誤差時,再從中確定滿足預設要求的目標頻率誤差,記錄目標頻率誤差對應的目標分頻比、目標搜索周期的標識。最終確定的滿足預設要求的頻率誤差的個數可以為一個,也可以為至少兩個。當滿足預設要求的頻率誤差的個數為兩個時,可以將其中任意一個識別為目標頻率誤差,也可以將其中值最小的頻率誤差識別為目標頻率誤差,此處不做限制。目標頻率誤差于目標分頻比、目標搜索周期的標識一一對應??梢岳斫獾氖牵苯訑底诸l率合成器可以在獲取到一個頻率誤差比較一次,也可以在獲取到所有頻率誤差再進行比較,此處不做限制。進一步地,步驟S304可以包括:若當前分頻比的當前搜索周期對應的頻率誤差小于所述搜索范圍內,所有分頻比的歷史搜索周期對應的歷史頻率誤差,則將所述當前分頻比識別為目標分頻比,將所述當前搜索周期的標識識別為目標搜索周期的標識。例如,直接數字頻率合成器在獲取到搜索范圍內的所有分頻比的所有搜索周期各自對應的滿足預設要求的頻率誤差時,分別比較所有獲取到的頻率誤差,以判斷當前分頻比的當前搜索周期對應的頻率誤差是否小于搜索范圍內,所有分頻比的歷史搜索周期對應的歷史頻率誤差。直接數字頻率合成器在確定當前分頻比的當前搜索周期對應的頻率誤差小于搜索范圍內,所有分頻比的歷史搜索周期對應的歷史頻率誤差時,將當前分頻比的當前搜索周期對應的頻率誤差識別為目標頻率誤差,以從獲取到的頻率誤差中確定值最小的頻率誤差為目標頻率誤差,并將目標頻率誤差對應的當前分頻比識別為目標分頻比,將目標分頻比對應的當前搜索周期的標識識別為目標搜索周期的標識。進一步地,步驟S304還可以包括:若當前分頻比的當前搜索周期對應的頻率誤差小于預設頻率誤差閾值,則所述當前分頻比識別為目標分頻比,將所述當前搜索周期的標識識別為目標搜索周期的標識。例如,直接數字頻率合成器在獲取到搜索范圍內的所有分頻比的所有搜索周期各自對應的滿足預設要求的頻率誤差時,分別比較所有獲取到的頻率誤差,以判斷當前分頻比的當前搜索周期對應的頻率誤差是否小于預設頻率誤差閾值。直接數字頻率合成器在確定當前分頻比的當前搜索周期對應的頻率誤差小于預設頻率誤差閾值時,當前分頻比識別為目標分頻比,將當前搜索周期的標識識別為目標搜索周期的標識。預設頻率誤差閾值可以根據獲取到的頻率誤差計算得到,可以根據實際需要進行設置,此處不做限制。當小于預設頻率誤差閾值的頻率誤差的個數為兩個時,可以將其中任意一個識別為目標頻率誤差,也可以將其中值最小的頻率誤差識別為目標頻率誤差,此處不做限制。目標頻率誤差于目標分頻比、目標搜索周期的標識一一對應。S305:根據所述目標搜索周期的標識計算所述目標分頻比對應的查找表長度以及相位步進值。直接數字頻率合成器根據目標搜索周期的標識、工作時鐘頻率以及頻率控制字計算目標分頻比對應的查找表長度以及相位步進值。其中,查找表長度search_table_len計算公式為:search_table_len=round(fs/fo*i)。相位步進phase_step計算公式為:phase_step=1/(round(fs/fo*i)/i)*2*pi,pi是圓周率。假設目標搜索周期的標識i=53,fs=41.94304KHz,fo=19KHz,那么,search_table_len=round(41.94304KHz/19KHz*53)=117phase_step=1/(round(41.94304KHz/19KHz*53)/53)*2*3.1415926=2.8462291931623931623931623931624(rad)S306:根據所述查找表長度以及所述相位步進值生成查找表。直接數字頻率合成器查找表長度以及相位步進值計算每個存儲地址對應的正弦值的幅度,從而生成查找表。按照搜索得出的相位步進計算正弦值并按k為地址寫入查找表存儲器,需要計算正弦值的數量就是搜索得到的查找表長度,正弦值計算公式如下,其中amp=2(D-1)-1為最大幅度,由幅度字長D決定,其中,search_table_out[k]指寫入存儲器第k個地址:search_table_out[k]=round(amp*sin(phase_step*k));(k=0,1,2,…..,(search_table_len-1))。假設幅度字長是16bit,則amp為32768-1,那么search_table_out[k]=round(32767*sin(2.8462291931623931623931623931624*k));(k=0,1,2,…..,(search_table_len-1))。當k=0時,有search_table_out[0]=0;寫入存儲器地址0;當k=1時,有search_table_out[1]=9538;寫入存儲器地址1;當k=2時,有search_table_out[2]=-18251;寫入存儲器地址2;當k=3時,有search_table_out[3]=25382;寫入存儲器地址3;……當k=116時,有search_table_out[3]=-9538;寫入存儲器地址116。直接數字頻率合成器最后將具有最小頻率誤差的參數組合輸出,其中目標分頻比為53;查找表長度為117,將上述正弦值輸出到存儲器形成查找表,完成查找表預計算。由上述計算結果可以知道,本發(fā)明只使用了117個查找表即可以實現16Bit或者更高字長的精度,遠小于現有技術中的2D個查找表長度,且最終的頻率誤差小于0.001KHz。換算為百分比為0.000161367521KHz/19KHz~=8.4931*10-6。S307:根據所述工作時鐘頻率、所述目標分頻比產生觸發(fā)信號。直接數字頻率合成器根據工作時鐘頻率按照目標分頻比分頻后產生一個觸發(fā)信號,并對產生的觸發(fā)信號進行計數,每產生一個觸發(fā)信號將計數值加1。其中,當計數值等于目標分頻比對應的查找表長度后歸零。S308:根據所述觸發(fā)信號對應的計數值從所述查找表獲取所述計數值對應的幅度,并對所述幅度進行數模轉換輸出正弦波信號。直接數字頻率合成器根據觸發(fā)信號對應的計數值從生產的查找表中獲取計數值對應的幅度,并對獲取到幅度進行數模轉換輸出正弦波信號,以實現直接數字頻率合成??梢岳斫獾氖?,直接數字頻率合成器當確定頻率控制字發(fā)送改變時,返回步驟S301,執(zhí)行S301~S308。上述方案,直接數字頻率合成器根據存儲器的最大長度值、工作時鐘頻率以及頻率控制字確定分頻比對應的搜索范圍以及每個分頻比的搜索周期數目;根據搜索范圍以及每個分頻比的搜索周期數目,獲取每個分頻比的所有搜索周期各自對應的頻率誤差;確定滿足預設要求的頻率誤差對應的目標分頻比、目標搜索周期的標識;根據目標搜索周期的標識計算目標分頻比對應的查找表長度以及相位步進值;根據查找表長度以及相位步進值生成查找表;根據工作時鐘頻率、目標分頻比產生觸發(fā)信號;根據觸發(fā)信號對應的計數值從查找表獲取計數值對應的幅度,并對幅度進行數模轉換輸出正弦波信號。由于直接數字頻率合成器是根據符合預設要求的頻率誤差對應的目標分頻比、查找表實現直接數字頻率合成,能夠有效減小頻率誤差,從而能夠有效減小根據符合預設要求的頻率誤差得到的查找表長度,減少查找表所占用的存儲空間,提高內存占用率。請參閱圖4,圖4是本發(fā)明直接數字頻率合成器一實施例的結構示意圖。直接數字頻率合成器所包括的各模塊用于執(zhí)行圖1對應的實施例中的各步驟,具體請參閱圖1以及圖1對應的實施例中的相關描述,此處不贅述。本實施例的直接數字頻率合成器400包括獲取模塊410、確定模塊420、生成模塊430、觸發(fā)模塊440以及頻率合成模塊450。獲取模塊410用于獲取工作時鐘頻率以及頻率控制字。比如,獲取模塊310獲取工作時鐘頻率以及頻率控制字。獲取模塊410將工作時鐘頻率以及頻率控制字向確定模塊420發(fā)送,獲取模塊410將工作時鐘頻率向觸發(fā)模塊440發(fā)送。確定模塊420用于接收獲取模塊410發(fā)送的工作時鐘頻率以及頻率控制字,根據存儲器的最大長度值、所述工作時鐘頻率以及所述頻率控制字,確定滿足預設要求的頻率誤差對應的目標分頻比、查找表長度以及相位步進值。比如,確定模塊420接收獲取模塊410發(fā)送的工作時鐘頻率以及頻率控制字,根據存儲器的最大長度值、所述工作時鐘頻率以及所述頻率控制字,確定滿足預設要求的頻率誤差對應的目標分頻比、查找表長度以及相位步進值。確定模塊420將目標分頻比向觸發(fā)模塊440發(fā)送,將查找表長度以及相位步進值向生成模塊430發(fā)送。生成模塊430用于接收確定模塊420發(fā)送的查找表長度以及相位步進值,根據所述查找表長度以及所述相位步進值生成查找表。比如,生成模塊430接收確定模塊420發(fā)送的查找表長度以及相位步進值,根據所述查找表長度以及所述相位步進值生成查找表。生成模塊430將查找表向頻率合成模塊450發(fā)送。觸發(fā)模塊440用于接收獲取模塊410發(fā)送的工作時鐘頻率,以及確定模塊420發(fā)送的目標分頻比,根據所述工作時鐘頻率、所述目標分頻比產生觸發(fā)信號。比如,觸發(fā)模塊440接收獲取模塊410發(fā)送的工作時鐘頻率,以及確定模塊420發(fā)送的目標分頻比,根據所述工作時鐘頻率、所述目標分頻比產生觸發(fā)信號。觸發(fā)模塊440將觸發(fā)信號向頻率合成模塊450發(fā)送。頻率合成模塊450用于接收觸發(fā)模塊440發(fā)送的觸發(fā)信號以及生成模塊430發(fā)送的查找表,根據所述觸發(fā)信號對應的計數值從所述查找表獲取所述計數值對應的幅度,并對所述幅度進行數模轉換輸出正弦波信號。比如,頻率合成模塊450接收觸發(fā)模塊440發(fā)送的觸發(fā)信號以及生成模塊330發(fā)送的查找表,根據所述觸發(fā)信號對應的計數值從所述查找表獲取所述計數值對應的幅度,并對所述幅度進行數模轉換輸出正弦波信號。上述方案,直接數字頻率合成器根據存儲器的最大長度值、工作時鐘頻率以及頻率控制字,確定滿足預設要求的頻率誤差對應的目標分頻比、查找表長度以及相位步進值;根據查找表長度以及相位步進值生成查找表;根據工作時鐘頻率、目標分頻比產生觸發(fā)信號;根據觸發(fā)信號對應的計數值從查找表獲取計數值對應的幅度,并對幅度進行數模轉換輸出正弦波信號。由于直接數字頻率合成器是根據符合預設要求的頻率誤差對應的目標分頻比、查找表實現直接數字頻率合成,能夠預先計算查找表中包含的幅度值,有效減小頻率誤差,從而能夠有效減小根據符合預設要求的頻率誤差得到的查找表長度,減少查找表所占用的存儲空間,提高內存占用率。請參閱圖5,圖5是本發(fā)明直接數字頻率合成器另一實施例的結構示意圖。直接數字頻率合成器所包括的各模塊用于執(zhí)行圖2對應的實施例中的各步驟,具體請參閱圖2以及圖2對應的實施例中的相關描述,此處不贅述。本實施例的直接數字頻率合成器500包括獲取模塊510、確定模塊520、生成模塊530、觸發(fā)模塊540以及頻率合成模塊550。其中,確定模塊520包括第一確定模塊521、頻率誤差獲取模塊522、第二確定模塊523、計算模塊524。獲取模塊510用于獲取工作時鐘頻率以及頻率控制字。獲取模塊510將工作時鐘頻率以及頻率控制字向第一確定模塊521發(fā)送,將工作時鐘頻率向觸發(fā)模塊540發(fā)送。第一確定模塊521用于接收獲取模塊510發(fā)送的工作時鐘頻率以及頻率控制字,根據存儲器的最大長度值、所述工作時鐘頻率以及所述頻率控制字確定分頻比對應的搜索范圍以及每個分頻比的搜索周期數目。第一確定模塊521將確定的分頻比對應的搜索范圍以及每個分頻比的搜索周期數目向頻率誤差獲取模塊522發(fā)送。頻率誤差獲取模塊522用于接收第一確定模塊521發(fā)送的分頻比對應的搜索范圍以及每個分頻比的搜索周期數目,根據所述搜索范圍以及所述每個分頻比的搜索周期數目,獲取每個分頻比的所有搜索周期各自對應的頻率誤差。頻率誤差獲取模塊522將每個分頻比的所有搜索周期各自對應的頻率誤差向第二確定模塊523發(fā)送。第二確定模塊523用于接收頻率誤差獲取模塊522發(fā)送的每個分頻比的所有搜索周期各自對應的頻率誤差,確定滿足預設要求的所述頻率誤差對應的目標分頻比、目標搜索周期的標識。第二確定模塊523將目標分頻比、目標搜索周期的標識向計算模塊524發(fā)送。計算模塊524用于接收第二確定模塊523發(fā)送的目標分頻比、目標搜索周期的標識,根據所述目標搜索周期的標識計算所述目標分頻比對應的查找表長度以及相位步進值。計算模塊524將目標分頻比對應的查找表長度以及相位步進值向生成模塊530發(fā)送。生成模塊530用于接收計算模塊524發(fā)送的目標分頻比對應的查找表長度以及相位步進值,根據所述查找表長度以及所述相位步進值生成查找表。生成模塊530將目標分頻比的信息向觸發(fā)模塊540發(fā)送,將查找表向頻率合成模塊550發(fā)送。觸發(fā)模塊540用于接收獲取模塊510發(fā)送的工作時鐘頻率,以及生成模塊530發(fā)送的目標分頻比的信息,根據所述工作時鐘頻率、所述目標分頻比產生觸發(fā)信號。觸發(fā)模塊540將觸發(fā)信號向頻率合成模塊550發(fā)送。頻率合成模塊550用于接收生成模塊530發(fā)送的查找表,接收觸發(fā)模塊540發(fā)送的觸發(fā)信號,根據所述觸發(fā)信號對應的計數值從所述查找表獲取所述計數值對應的幅度,并對所述幅度進行數模轉換輸出正弦波信號。上述方案,直接數字頻率合成器根據存儲器的最大長度值、工作時鐘頻率以及頻率控制字確定分頻比對應的搜索范圍以及每個分頻比的搜索周期數目;根據搜索范圍以及每個分頻比的搜索周期數目,獲取每個分頻比的所有搜索周期各自對應的頻率誤差;確定滿足預設要求的頻率誤差對應的目標分頻比、目標搜索周期的標識;根據目標搜索周期的標識計算目標分頻比對應的查找表長度以及相位步進值;根據查找表長度以及相位步進值生成查找表;根據工作時鐘頻率、目標分頻比產生觸發(fā)信號;根據觸發(fā)信號對應的計數值從查找表獲取計數值對應的幅度,并對幅度進行數模轉換輸出正弦波信號。由于直接數字頻率合成器是根據符合預設要求的頻率誤差對應的目標分頻比、查找表實現直接數字頻率合成,能夠有效減小頻率誤差,從而能夠有效減小根據符合預設要求的頻率誤差得到的查找表長度,減少查找表所占用的存儲空間,提高內存占用率。請參閱圖6,圖6是本發(fā)明直接數字頻率合成器再一實施例的結構示意圖。直接數字頻率合成器所包括的各模塊用于執(zhí)行圖3對應的實施例中的各步驟,具體請參閱圖3以及圖3對應的實施例中的相關描述,此處不贅述。本實施例的直接數字頻率合成器600包括:獲取模塊610、確定模塊620、生成模塊630、觸發(fā)模塊640以及頻率合成模塊650。其中,其中,確定模塊620包括第一確定模塊621、頻率誤差獲取模塊622、第二確定模塊623、計算模塊624,第一確定模塊621包括計算單元6211、第一確定單元6212、第二確定單元6213。獲取模塊610用于獲取工作時鐘頻率以及頻率控制字。獲取模塊610將工作時鐘頻率以及頻率控制字向第一確定模塊621發(fā)送,將工作時鐘頻率向觸發(fā)模塊640發(fā)送。第一確定模塊621用于接收獲取模塊610發(fā)送的工作時鐘頻率以及頻率控制字,根據存儲器的最大長度值、所述工作時鐘頻率以及所述頻率控制字確定分頻比對應的搜索范圍以及每個分頻比的搜索周期數目。進一步地,第一確定模塊621包括:計算單元6211用于根據所述工作時鐘頻率、所述頻率控制字以及所述存儲器的最大長度值計算所述頻率控制字對應的最小分頻比;根據所述工作時鐘頻率以及所述頻率控制字計算所述頻率控制字對應的最大分頻比;第一確定單元6212用于根據所述最小分頻比以及所述最大分頻比確定所述分頻比對應的搜索范圍;第二確定單元6213用于根據所述工作時鐘頻率、所述存儲器的最大長度值、所述頻率控制字以及所述每個分頻比各自對應的搜索范圍內的搜索值計算所述每個分頻比的搜索周期數目。第一確定模塊621將確定的分頻比對應的搜索范圍以及每個分頻比的搜索周期數目向頻率誤差獲取模塊622發(fā)送。頻率誤差獲取模塊622用于接收第一確定模塊621發(fā)送的分頻比對應的搜索范圍以及每個分頻比的搜索周期數目,根據所述搜索范圍以及所述每個分頻比的搜索周期數目,獲取每個分頻比的所有搜索周期各自對應的頻率誤差。頻率誤差獲取模塊622將每個分頻比的所有搜索周期各自對應的頻率誤差向第二確定模塊623發(fā)送。第二確定模塊623用于接收頻率誤差獲取模塊622發(fā)送的每個分頻比的所有搜索周期各自對應的頻率誤差,確定滿足預設要求的所述頻率誤差對應的目標分頻比、目標搜索周期的標識。第二確定模塊623將目標分頻比、目標搜索周期的標識向計算模塊624發(fā)送。計算模塊624用于接收第二確定模塊623發(fā)送的目標分頻比、目標搜索周期的標識,根據所述目標搜索周期的標識計算所述目標分頻比對應的查找表長度以及相位步進值。計算模塊624將目標分頻比對應的查找表長度以及相位步進值向生成模塊630發(fā)送。生成模塊630用于接收計算模塊624發(fā)送的目標分頻比對應的查找表長度以及相位步進值,根據所述查找表長度以及所述相位步進值生成查找表。生成模塊630將目標分頻比的信息向觸發(fā)模塊640發(fā)送。觸發(fā)模塊640用于接收生成模塊630發(fā)送的目標分頻比的信息,根據所述工作時鐘頻率、所述目標分頻比產生觸發(fā)信號。觸發(fā)模塊640將觸發(fā)信號向頻率合成模塊650發(fā)送。頻率合成模塊650用于接收獲取模塊610發(fā)送的工作時鐘頻率,以及觸發(fā)模塊640發(fā)送的觸發(fā)信號,根據所述觸發(fā)信號對應的計數值從所述查找表獲取所述計數值對應的幅度,并對所述幅度進行數模轉換輸出正弦波信號。上述方案,直接數字頻率合成器根據存儲器的最大長度值、工作時鐘頻率以及頻率控制字確定分頻比對應的搜索范圍以及每個分頻比的搜索周期數目;根據搜索范圍以及每個分頻比的搜索周期數目,獲取每個分頻比的所有搜索周期各自對應的頻率誤差;確定滿足預設要求的頻率誤差對應的目標分頻比、目標搜索周期的標識;根據目標搜索周期的標識計算目標分頻比對應的查找表長度以及相位步進值;根據查找表長度以及相位步進值生成查找表;根據工作時鐘頻率、目標分頻比產生觸發(fā)信號;根據觸發(fā)信號對應的計數值從查找表獲取計數值對應的幅度,并對幅度進行數模轉換輸出正弦波信號。由于直接數字頻率合成器是根據符合預設要求的頻率誤差對應的目標分頻比、查找表實現直接數字頻率合成,能夠有效減小頻率誤差,以能夠有效減小根據符合預設要求的頻率誤差得到的查找表長度,減少查找表所占用的存儲空間,提高內存占用率。參見圖7,圖7是本發(fā)明直接數字頻率合成器又一實施例的結構示意圖。如圖所示的本實施例中的直接數字頻率合成器700可以包括:一個或多個處理器710,一個或多個輸入設備720,一個或多個輸出設備730和存儲器740。上述處理器710、輸入設備720、輸出設備730和存儲器740通過總線750連接。存儲器740用于存儲程序指令。處理器710用于根據存儲器740存儲的程序指令執(zhí)行以下操作:處理器710用于獲取工作時鐘頻率以及頻率控制字;處理器710還用于根據存儲器的最大長度值、所述工作時鐘頻率以及所述頻率控制字,確定滿足預設要求的頻率誤差對應的目標分頻比、查找表長度以及相位步進值;處理器710還用于根據所述查找表長度以及所述相位步進值生成查找表;處理器710還用于根據所述工作時鐘頻率、所述目標分頻比產生觸發(fā)信號;處理器710還用于根據所述觸發(fā)信號對應的計數值從所述查找表獲取所述計數值對應的幅度,并對所述幅度進行數模轉換輸出正弦波信號。進一步地,處理器710還用于根據存儲器的最大長度值、所述工作時鐘頻率以及所述頻率控制字確定分頻比對應的搜索范圍以及每個分頻比的搜索周期數目;以及用于根據所述搜索范圍以及所述每個分頻比的搜索周期數目,獲取所述每個分頻比的所有搜索周期各自對應的頻率誤差;以及用于確定滿足預設要求的所述頻率誤差對應的目標分頻比、目標搜索周期的標識;以及用于根據所述目標搜索周期的標識計算所述目標分頻比對應的查找表長度以及相位步進值。進一步地,處理器710具體用于根據所述工作時鐘頻率、所述頻率控制字以及所述存儲器的最大長度值計算所述頻率控制字對應的最小分頻比;根據所述工作時鐘頻率以及所述頻率控制字計算所述頻率控制字對應的最大分頻比;根據所述最小分頻比以及所述最大分頻比確定所述分頻比對應的搜索范圍;根據所述工作時鐘頻率、所述存儲器的最大長度值、所述頻率控制字以及所述每個分頻比的搜索值計算所述每個分頻比的搜索周期數目。進一步地,處理器710具體用于根據所述工作時鐘頻率、每個分頻比的搜索值計算所述每個分頻比的搜索值各自對應的采樣率;根據所述存儲器的最大長度值、所述采樣率、所述頻率控制字計算所述每個分頻比的搜索周期數目。進一步地,處理器710具體用于若當前分頻比的當前搜索周期對應的頻率誤差小于所述搜索范圍內,所有分頻比的歷史搜索周期對應的歷史頻率誤差,則將所述當前分頻比識別為目標分頻比,將所述當前搜索周期的標識識別為目標搜索周期的標識。進一步地,處理器710具體用于若當前分頻比的當前搜索周期對應的頻率誤差小于預設頻率誤差閾值,則所述當前分頻比識別為目標分頻比,將所述當前搜索周期的標識識別為目標搜索周期的標識。應當理解,在本發(fā)明實施例中,所稱處理器710可以是中央處理單元(CentralProcessingUnit,CPU),該處理器還可以是其他通用處理器、數字信號處理器(DigitalSignalProcessor,DSP)、專用集成電路(ApplicationSpecificIntegratedCircuit,ASIC)、現成可編程門陣列(Field-ProgrammableGateArray,FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。輸入設備720可以包括觸控板、指紋采傳感器(用于采集用戶的指紋信息和指紋的方向信息)、麥克風等,輸出設備730可以包括顯示器(LCD等)、揚聲器等。該存儲器740可以包括只讀存儲器和隨機存取存儲器,并向處理器510提供指令和數據。存儲器740的一部分還可以包括非易失性隨機存取存儲器。例如,存儲器740還可以存儲設備類型的信息。具體實現中,本發(fā)明實施例中所描述的處理器710、輸入設備720、輸出設備730可執(zhí)行本發(fā)明實施例提供的直接數字頻率合成方法的第一實施例和第二實施例中所描述的實現方式,也可執(zhí)行本發(fā)明實施例所描述的直接數字頻率合成器的實現方式,在此不再贅述。本發(fā)明還提供一種調頻發(fā)射裝置,調頻發(fā)射裝置包括上述任一實施例所述的直接數字頻率合成器。調頻發(fā)射裝置包括但不限于用于立體聲編碼的調頻(FrequencyModulation,FM)發(fā)射裝置,立體聲編碼的導頻信號為19KHz。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。當前第1頁1 2 3 當前第1頁1 2 3