一種全數字鎖相環及其鎖相方法與流程
2023-08-12 14:25:16 1

本發明屬於電子技術領域,尤其涉及一種全數字鎖相環及其鎖相方法。
背景技術:
鎖相環是一種能使輸出信號在頻率和相位上與輸入信號同步的電路,即系統進入鎖定狀態後,輸出信號與輸入信號之間相差為零,或者保持為常數。
全數字鎖相環ADPLL(All Digital Phase-Locked Loop),就是環路部件全部數位化,採用數字鑑相器、數字環路濾波器、數控振蕩器構成鎖相環路,並且系統中的信號全是數位訊號。由於某些應用要求全數字鎖相環有一個非常短的鎖定時間,因此需要有效加速全數字鎖相環的鎖定速度。
現有技術中,一種加速全數字鎖相環的鎖定速度的方法是使用大的環路帶寬來加速鎖定,但是這種方法減少的鎖定時間有限;另一種加速全數字鎖相環的鎖定速度的方法是通過公式擬合的方法來直接計算目標頻率所需要的數控振蕩器的控制字,但是計算方法複雜,不合適用在成本和功耗敏感的領域。
綜上所述,現有技術中的加速全數字鎖相環的鎖定速度的方法存在以下缺點:能夠減少的鎖定時間有限,無法適用於對鎖相時間的要求高的場景;目標頻率所需要的數控振蕩器的控制字的計算太複雜。
技術實現要素:
本發明提供一種全數字鎖相環及其鎖相方法,能夠有效加快鎖相速度以及簡化鎖相計算過程。
為解決上述問題,本發明第一方面提供一種全數字鎖相環,所述全數字鎖相環包括:
依次串聯的鑑頻器、數字濾波器、比例積分器、加法器和數控振蕩器,以及分別與所述鑑頻器、所述數字濾波器、所述比例積分器、所述加法器連接的快速鎖定電路,所述數控振蕩器的輸出端還反饋連接所述鑑頻器;
所述鑑頻器用於根據輸入的頻率控制字以及參考時鐘計算第一頻率差,並將所述第一頻率差輸出至所述數字濾波器以及所述快速鎖定電路;
所述數字濾波器用於當接收到所述第一頻率差以及所述快速鎖定電路輸入的濾波係數時,根據所述濾波係數對所述第一頻率差進行濾波,並將濾波後的第二頻率差輸出至所述比例積分器以及所述快速鎖定電路;
所述快速鎖定電路用於當接收到所述第一頻率差以及所述第二頻率差時,根據所述第一頻率差、所述第二頻率差計算頻率基準值,並將所述頻率基準值輸出至所述加法器;以及用於確定所述比例積分器的使能控制信號,將所述使能控制信號輸出至所述比例積分器;其中,當計算得到所述頻率基準值時,所述使能信號標識使能狀態;
所述比例積分器用於當接收到所述使能控制信號時,對所述第二頻率差進行比例積分運算,並將運算結果輸出至所述加法器;
所述加法器用於當接收到所述運算結果以及所述頻率基準值時,根據所述運算結果以及所述頻率基準值進行加法運算得到數控振蕩器控制字,並將所述數控振蕩器控制字輸出至所述數控振蕩器;
所述數控振蕩器用於當接收到所述數控振蕩器控制字時,將所述數控振蕩器控制字對應的第一時鐘反饋輸出至所述鑑頻器;
其中,所述第一時鐘用於所述鑑頻器根據所述第一時鐘以及所述頻率控制字重新計算所述第一頻率差;當重新計算的所述第一頻率差小於或等於預設閾值時,所述全數字鎖相環完成鎖定。
為解決上述問題,本發明第二方面提供一種全數字鎖相環的鎖相方法,所述全數字鎖相環的鎖相方法包括:
根據輸入的頻率控制字以及參考時鐘計算第一頻率差;
根據濾波係數對所述第一頻率差進行濾波得到第二頻率差;
根據所述第一頻率差、所述第二頻率差計算頻率基準值;以及確定比例積分器的使能控制信號;其中,當計算得到所述頻率基準值時,所述使能信號標識使能狀態;
根據所述使能控制信號對所述第二頻率差進行比例積分運算,並根據運算結果以及所述頻率基準值進行加法運算得到數控振蕩器控制字;
根據所述數控振蕩器控制字輸出所述數控振蕩器控制字對應的第一時鐘;
其中,所述第一時鐘用於所述全數字鎖相環根據所述第一時鐘以及所述頻率控制字重新計算所述第一頻率差;當重新計算的所述第一頻率差小於或等於預設閾值時,所述全數字鎖相環完成鎖定。
為解決上述問題,本發明第三方面提供一種調頻接收裝置,所述一種調頻接收裝置包括上述全數字鎖相環。
相對於現有技術,本實施例中的全數字鎖相環通過增加加法器、快速鎖定電路,通過快速鎖定電路快速計算誤差較小的頻率基準值,加法器在對該頻率基準值進行微調後將其輸出至數控振蕩器,使得數控振蕩器能夠根據該誤差較小的頻率基準值得到的第一時鐘與輸入鑑頻器的頻率控制字之差小於或等於預設閾值,該預設閾值能夠使得第一時鐘與輸入鑑頻器的頻率控制字之差等於零或無限趨近零,能夠有效加快鎖相速度以及簡化鎖相計算過程。
附圖說明
圖1是本發明全數字鎖相環一實施例的結構示意圖;
圖2是圖1中快速鎖定電路一實施的結構示意圖;
圖3是本發明全數字鎖相環的鎖相方法一實施例的流程圖;
圖4是本發明全數字鎖相環的鎖相方法另一實施例的流程圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
請參閱圖1,圖1是本發明全數字鎖相環一實施例的結構示意圖。如圖1所示的全數字鎖相環100包括依次串聯的鑑頻器110、數字濾波器120、比例積分器130、加法器140和數控振蕩器150,以及分別與鑑頻器110、數字濾波器120、比例積分器130、加法器140連接的快速鎖定電路160,數控振蕩器150的輸出端還反饋連接鑑頻器110。
鑑頻器110用於根據輸入的頻率控制字FCW以及參考時鐘Clock計算第一頻率差FDOUT,並將第一頻率差FDOUT輸出至數字濾波器120以及快速鎖定電路160;
數字濾波器120用於當接收到鑑頻器110輸入的第一頻率差FDOUT以及快速鎖定電路160輸入的濾波係數COEF時,根據濾波係數COEF對第一頻率差FDOUT進行濾波,並將濾波後的第二頻率差LPFOUT輸出至比例積分器130以及快速鎖定電路160;
快速鎖定電路160用於當接收到鑑頻器110輸入的第一頻率差FDOUT以及數字濾波器120輸入的第二頻率差LPFOUT時,根據第一頻率差FDOUT、第二頻率差LPFOUT計算頻率基準值XQ,並將頻率基準值XQ輸出至加法器140;以及用於確定比例積分器130的使能控制信號ENABLE,將使能控制信號ENABLE輸出至比例積分器130;其中,快速鎖定電路160當計算得到頻率基準值XQ時,使能信號ENABLE標識使能狀態;
比例積分器130用於當接收到快速鎖定電路160輸入的使能控制信號ENABLE時,對數字濾波器120輸入的第二頻率差LPFOUT進行比例積分運算,並將運算結果PIOUT輸出至加法器140;
加法器140用於當接收到比例積分器130輸入的運算結果PIOUT以及快速鎖定電路160輸入的頻率基準值XQ時,根據運算結果PIOUT以及頻率基準值XQ進行加法運算得到數控振蕩器控制字DCW,並將數控振蕩器控制字DCW輸出至數控振蕩器150;
數控振蕩器150用於當接收到加法器140輸入的數控振蕩器控制字DCW時,將數控振蕩器控制字DCW對應的第一時鐘Fdco_out反饋至鑑頻器110。
其中,第一時鐘Fdco_out用於鑑頻器110根據第一時鐘Fdco_out以及頻率控制字FCW重新計算第一頻率差FDOUT;當重新計算的第一頻率差FDOUT小於或等於預設閾值時,第一時鐘Fdco_out對應的數控振蕩器控制字為目標數控振蕩器控制字,快速鎖定電路160鎖定目標數控振蕩器控制字對應的目標頻率基準值,全數字鎖相環100進入鎖定狀態,持續輸出第一時鐘。
具體工作原理如下:
當其他電路向鎖相環電路輸入頻率控制字FCW以及參考時鐘Clock時,鎖相環電路中的鑑頻器110根據輸入的頻率控制字FCW以及參考時鐘Clock計算第一頻率差FDOUT,其中,FDOUT=X–FCW,X是指第一時鐘Fdco_out與參考時鐘clock的頻率比,即第一時鐘Fdco_out的頻率除以參考時鐘clock的頻率得到的商。
鑑頻器110在計算得到第一頻率差FDOUT時,將第一頻率差FDOUT輸出至數字濾波器120以及快速鎖定電路160。
快速鎖定電路160根據工作狀態確定濾波係數COEF,並將確定的濾波係數COEF輸出至數字濾波器120。
數字濾波器120當接收到鑑頻器110輸入的第一頻率差FDOUT以及快速鎖定電路160輸入的濾波係數COEF時,根據濾波係數COEF對第一頻率差FDOUT進行濾波,在濾除第一頻率差FDOUT中的高頻信號之後得到第二頻率差LPFOUT,並將濾波後的第二頻率差LPFOUT輸出至比例積分器130以及快速鎖定電路160。
其中,數字濾波器120可以是N個級聯的係數可變的低通濾波器,例如,遞歸濾波器IIR。
快速鎖定電路160當接收到鑑頻器110輸入的第一頻率差FDOUT以及數字濾波器120輸入的第二頻率差LPFOUT時,根據第一頻率差FDOUT、第二頻率差LPFOUT採用弦割法計算頻率基準值XQ,並將頻率基準值XQ輸出至加法器140。
快速鎖定電路160的工作原理和實現方法如下:
由於全數字鎖相環的最終目的是使數控震蕩器150的輸出的第一時鐘Fdco_out與參考時鐘clock的頻率比,和頻率控制字FCW一致,即:
0=X–FCW (1)
其中,X是指第一時鐘Fdco_out與參考時鐘clock的頻率比,即第一時鐘Fdco_out的頻率除以參考時鐘clock的頻率得到的商。
由於參考時鐘Clock的頻率恆定,因此,X只是與DCW的輸出頻率線性相關,假設:X=freq_fdco_out×a+b (2)
其中,a和b是常數。
由上文可以知道,由於工藝、溫度、電壓、匹配度等等的影響,導致數控震蕩器150的輸出頻率與DCW的關係是非線性的,因此有
Freq_Fdco_out=F(DCW,P,V,T…)
其中F(DCW,P,V,T…)是指以DCW,工藝參數P,電壓參數V,溫度參數T等等為自變量的非線性方程。而在快速鎖定過程中,由於時間非常短,我們可以假定P,V,T等自變量是恆定不變的常數,因此上述公式可以簡化為:
Freq_Fdco_out=f(DCW) (3)
聯立(1)~(3)式,可以得到0=f(DCW)×a+b–FCW (4)
令g(DCW)=f(DCW)×a+b,代入式(4),有0=g(DCW)-FCW (5)
公式(5)是一個非線性方程,通過求解這個非線性方程,即可以得到一個DCW,使得該非線性方程的輸出為0。
最後將求解得到的DCW輸入數控振蕩器150,即可以完成全數字鎖相環的鎖定。
快速鎖定電路160確定比例積分器130的使能控制信號ENABLE,將使能控制信號ENABLE輸出至比例積分器130。其中,快速鎖定電路160當計算得到頻率基準值XQ之後,輸出的使能信號ENABLE標識使能狀態;否則,輸出的使能信號ENABLE標識非使能狀態。
比例積分器130當接收到快速鎖定電路160輸入的使能控制信號ENABLE時,對數字濾波器120輸入的第二頻率差LPFOUT進行比例積分運算,並將運算結果PIOUT輸出至加法器140。
其中,比例積分器130的比例積分運算計算公式如下:
(ENABLE==1,標識使能狀態)
PIOUT=0 (ENABLE==0,標識非使能狀態)
其中,input是從數字濾波器120輸入的第二頻率差LPFOUT;PIOUT為運算結果;a和p是係數,由系統的帶寬需求確定。
加法器140當接收到比例積分器130輸入的運算結果PIOUT以及快速鎖定電路160輸入的頻率基準值XQ時,根據運算結果PIOUT以及頻率基準值XQ進行加法運算得到數控振蕩器控制字DCW,並將數控振蕩器控制字DCW輸出至數控振蕩器150。
數控振蕩器150當接收到加法器140輸入的數控振蕩器控制字DCW時,將數控振蕩器控制字DCW對應的第一時鐘Fdco_out反饋輸出至鑑頻器110。
其中,數控振蕩器150能夠根據數控振蕩器控制字DCW輸出一個與其對應的第一時鐘Fdco_out,DCW越大時,輸出的第一時鐘對應的頻率越快。
在不考慮其他非線性因素的理想情況時,數控振蕩器150的輸出頻率符合以下公式:freq_Fdco_out=DCW×K+C,C為一個固定的頻率,K為頻率增益。
但是由於工藝、溫度、電壓、匹配度等等的影響,實際數控震蕩器150的輸出和理想值有一定的偏差。數控振蕩器控制字DCW和freq_Fdco_out之間是非線性的對應關係。
其中,第一時鐘Fdco_out用於鑑頻器110根據第一時鐘Fdco_out以及頻率控制字FCW重新計算第一頻率差FDOUT;當重新計算的第一頻率差FDOUT小於或等於預設閾值時,第一時鐘Fdco_out對應的數控振蕩器控制字為目標數控振蕩器控制字,快速鎖定電路160鎖定目標數控振蕩器控制字對應的目標頻率基準值,全數字鎖相環100進入鎖定狀態,持續輸出第一時鐘;當重新計算的第一頻率差FDOUT大於預設閾值時,快速鎖定電路160當接收到鑑頻器110輸入的第一頻率差FDOUT以及數字濾波器120輸入的第二頻率差LPFOUT時,根據第一頻率差FDOUT、第二頻率差LPFOUT採用弦割法計算頻率基準值XQ,直到能夠使得數字振蕩器150由頻率基準值XQ與比例積分運算結果PIOUT進行加法運算後得到的數控振蕩器控制字DCW,輸出的第一時鐘Fdco_out與輸入鑑頻器110的頻率控制字FCW直接的頻率差小於或等於預設閾值為止,以使得全數字鎖相環最終鎖定的第一時鐘Fdco_out等於頻率控制字FCW之差為零或無線趨近於零。
進一步地,在另一種實施例中,快速鎖定電路160還可以包括初始化模塊161、迭代計算模塊162、誤差校正模塊163以及控制模塊164;迭代計算模塊162連接初始化模塊161以及誤差校正模塊163,控制模塊164分別連接初始化模塊161、迭代計算模塊162以及誤差校正模塊163;初始化模塊161還連接鑑頻器110,以接收鑑頻器110輸入的第一頻率差FDOUT;迭代計算模塊162以及誤差校正模塊163還連接數字濾波器120,以接收數字濾波器120輸入的第二頻率差LPFOUT,控制模塊164還連接數字濾波器120、比例積分器130以及加法器140;以向數字濾波器120輸出確定的濾波係數COEF,向比例積分器130輸出使能控制信號ENABLE,向加法器140輸出頻率基準值XQ。
初始化模塊161用於當接收到鑑頻器110輸入的第一頻率差時,根據第一頻率差計算迭代初始值,並將迭代初始值輸出至迭代計算模塊162以及控制模塊164。
迭代計算模塊162用於當接收到初始化模塊161輸入的迭代初始值,數字濾波器120輸入的第二頻率差LPFOUT時,根據迭代初始值、第二頻率差LPFOUT進行迭代運算計算初始頻率基準值,並將初始頻率基準值輸出至誤差校正模塊163。
誤差校正模塊163用於當接收到迭代計算模塊162輸入的初始頻率基準值,以及數字濾波器120輸入的第二頻率差LPFOUT時,根據第二頻率差LPFOUT對初始頻率基準值進行校正得到頻率基準值XQ。
控制模塊164用於當接收到迭代計算模塊162輸入的迭代初始值或迭代計算模塊162輸入的初始頻率基準值時,向數字濾波120器輸出確定的濾波係數;以及用於向比例積分器130輸出使能控制信號ENABLE以及向加法器140輸出頻率基準值XQ,其中,控制模塊164當接收到誤差校正模塊163輸入的頻率基準值時,輸出的使能信號標識使能狀態,否則,輸出的使能信號標識非使能狀態。
進一步地,控制模塊164用於當初始化模塊161輸入迭代初始值時,將濾波係數COEF設置為第一濾波係數;當迭代計算模塊162輸入初始頻率基準值時,將濾波係數COEF設置為第二濾波係數;其中,第一濾波係數大於第二濾波係數。
進一步地,數字濾波器120具體用於根據控制模塊164輸入的第一濾波係數或第二濾波係數對第一頻率差進行濾波得到第二頻率差。
具體工作原理如下:
初始化模塊161當接收到鑑頻器110輸入的第一頻率差時,根據第一頻率差計算迭代初始值,並將迭代初始值輸出至迭代計算模塊162和控制模塊164。
例如,初始化模塊161根據公式max(DCW)表示數控振蕩器控制字DCW能達到的最大值,並將X0識別為第一初始頻率基準值XQ1,將XQ1與PIOUT相加後得到DCW1並輸出到數控振蕩器150,此時PIOUT為0(當快速鎖定電路160的誤差校正模塊164完成計算之前,PIOUT均為0),數控震蕩器150根據DCW1輸出一個時鐘fdco_out1到鑑頻器110,鑑頻器110根據fdco_out1的頻率、參考時鐘clock的頻率以及頻率控制字FCW計算頻率差,得到第一初始頻率差,並將其記為Y0。
初始化模塊161判斷Y0是否大於零,並根據判斷結果確定X1(第二初始頻率基準值XQ2),並將XQ2與PIOUT相加後得到DCW2並輸出到數控振蕩器150,此時PIOUT為0,數控震蕩器150根據DCW2輸出一個時鐘fdco_out2到鑑頻器110,鑑頻器110根據fdco_out2的頻率、參考時鐘clock的頻率以及頻率控制字FCW計算頻率差,得到第二初始頻率差,並將其記為Y1。其中,當Y0大於零時,當Y0小於或等於零時,
X0的取值和X1的取值為實驗得到的最優值,也可以取其他任意值,例如0到max(DCW)之間的任意兩個不同的值。
具體地,由於沒辦法對數控振蕩器150進行準確的建模,下面只是以一個非線性方程來舉個例子:
假設FCW=448,
公式(5)0=g(DCW)-FCW可以寫成:
求解上述非線性方程(6)即可以得出一個DCW,使得結果為0。
假設DCW的取值範圍是1~1024的所有整數,計算過程如下:
假設,鑑相器的輸出
X0=max(DCW)/2=1024/2=512;將X0代入公式(7)進行計算,來模仿鑑頻器的計算結果,得到以下的值:Y0=65.152。由於Y0>0,所以有=512-128=384。
將X1代入公式(7)進行計算,來模仿鑑頻器的計算結果,得到以下的值:Y1=-93.4252。
初始化模塊161將第一初始迭代值(X0,Y0)、第二初始迭代值(X1,Y1)輸入迭代計算模塊162以及控制模塊164。
控制模塊164接收到初始化模塊161輸入的第一初始迭代值(X0,Y0)、第二初始迭代值(X1,Y1)時,識別為迭代計算模塊162即將開始進行迭代運算,由於此時迭代計算模塊162的迭代計算過程對噪聲不是特別敏感,所以可以選擇使數字濾波器120帶寬較大的第一濾波係數COEF1,加速迭代計算的過程。控制模塊164還向比例積分器130輸出使能控制信號ENABLE,此時,使能控制信號ENABLE標識非使能狀態。
迭代計算模塊162當接收到初始化模塊161輸入的第一初始迭代值(X0,Y0)、第二初始迭代值(X1,Y1)、數字濾波器120根據控制模塊164輸入的第一濾波係數COEF1對數字濾波器120輸入的第一頻率差FDOUT進行濾波得到的第二頻率差LPFOUT時,根據第一初始迭代值(X0,Y0)、第二初始迭代值(X1,Y1)、第二頻率差LPFOUT迭代運算計算初始頻率基準值。其中,迭代計算模塊162可以採用弦割法進行迭代運算。
例如,迭代計算模塊162初始化i=2,讀入初始化計算模塊161輸入的(X0,Y0)、(X1,Y1),計算DeltaX=nearest(Y(i-1)*(X(i-1)-X(i-2))/(Y(i-1)-Y(i-2)))。其中,nearest(x)表示對x四捨五入取整,例如nearest(1.4)=1;nearest(-1.6)=-2。
取整的步驟不是必須的,如果數控振蕩器控制字DCW支持小數輸入,則不必取整。
迭代計算模塊162確定DeltaX的絕對值|DealtaX|,並判斷|DealtaX|是否小於N或判斷i是否大於i_max。其中|DealtaX|表示對DeataX取絕對值,比如|-1|=1;|2|=2。N以及i_max為預設的數值,N為最小步進,通過實驗決定,例如可以將N設為3;i_max指迭代的最大次數,通過實驗決定,例如20。
當|DealtaX|小於N或i大於i_max時,完成迭代運算,將上一次的計算結果X(i-1),Y(i-1)輸出至誤差計算模塊163。
當|DealtaX|大於或等於N,或者i小於或等於i_max時,根據公式Xi=X(i-1)-DeltaX,計算Xi第i初始頻率基準值XQi),將XQi與PIOUT相加後得到DCWi並輸出到數控振蕩器150,此時PIOUT為0,數控震蕩器150根據DCWi輸出一個時鐘fdco_outi到鑑頻器110,鑑頻器110根據fdco_outi的頻率、參考時鐘clock的頻率以及頻率控制字FCW計算頻率差,得到第二初始頻率差,並經過數字濾波器120對其濾波得到Yi,在i的基礎上遞增1(i=i+1)後,重新計算DeltaX=nearest(Y(i-1)*(X(i-1)-X(i-2))/(Y(i-1)-Y(i-2))),重新確定DeltaX的絕對值|DealtaX|,並判斷|DealtaX|是否小於N或判斷i是否大於i_max。
當|DealtaX|小於N或i大於i_max時,完成迭代運算,將上一次的計算結果X(i-1),Y(i-1)輸出至誤差計算模塊163,此時i=i+1。
當|DealtaX|大於或等於N,或者i小於或等於i_max時,根據公式Xi=X(i-1)-DeltaX,計算Xi並通過Xi、頻率控制字FCW模擬鑑頻器110計算頻率差,並經過數字濾波器120對其濾波得到Yi,在i=i+1的基礎上遞增1(i=(i+1)+1),如此循環,直到當|DealtaX|小於N或i大於i_max時,完成迭代運算,將上一次的計算結果X(i-1),Y(i-1)輸出至誤差計算模塊163。
具體地,迭代計算模塊162初始化i=2,讀入初始化模塊161計算得到的第一初始迭代值(X0,Y0)=(512,65.152)、第二初始迭代值(X1,Y1)=(384,-93.4252);計算DeltaX=nearest(Y(i-1)*(X(i-1)-X(i-2))/(Y(i-1)-Y(i-2)))=nearest(Y1*(X1-X0)/(Y1-Y0))=-76。
由於|DealtaX|不小於3,計算X2,X2=X1–(-76)=384+76=460。
將X2代入上述公式(7)進行計算,來模仿數字濾波器120的計算結果,得到以下的值:Y2=-1.0545。
計算i=i+1=2+1=3;
計算DealtaX;DeltaX=nearest(Y(i-1)*(X(i-1)-X(i-2))/(Y(i-1)-Y(i-2)))
=nearest(Y2*(X2-X1)/(Y2-Y1))=-1。
由於|DealtaX|小於3,完成迭代計算,將上一次的結果X2,Y2識別為初始頻率基準值,將X2,Y2輸出至誤差計算模塊163以及控制模塊164。
迭代計算模塊162將迭代運算結果X(i-1),Y(i-1)輸出至誤差計算模塊163以及控制模塊164。
控制模塊164接收到迭代計算模塊162輸入的迭代運算結果X(i-1),Y(i-1)時,識別為誤差校正模塊163即將開始進行誤差校正,由於此時誤差校正模塊163的誤差校正過程對噪聲比較敏感,所以可以選擇使數字濾波器120帶寬較小的第二濾波係數COEF2,減少噪聲對誤差校正的影響。其中,第一濾波係數COEF1對應的濾波器帶寬大於第二濾波係數COEF2對應的濾波器帶寬。
控制模塊164還向比例積分器130輸出使能控制信號ENABLE,此時,使能控制信號ENABLE標識非使能狀態。
誤差校正模塊163當接收到迭代計算模塊162輸入的迭代運算結果X(i-1),Y(i-1),以及數字濾波器120根據控制模塊164輸入的第二濾波係數COEF2對數字濾波器120輸入的第一頻率差FDOUT進行濾波得到的第二頻率差LPFOUT時,根據第二頻率差LPFOUT對X(i-1),Y(i-1)進行校正得到頻率基準值XQ。
例如,誤差校正模塊163初始化k=1,讀入迭代計算模塊162的輸出結果X(i-1)、Y(i-1),初始化Z(0)=X(i-1),初始化Q(0)=Y(i-1)。
誤差校正模塊163計算Z(k)=Z(k-1)–1×sign(Q(k-1)),並通過Z(k)、頻率控制字FCW模擬鑑頻器110計算頻率差,並經過數字濾波器120對其濾波得到Q(k)。其中,sign(x)表示求x的符號,例如sign(-2)=-1;sign(4)=1。
誤差校正模塊163在計算得到Q(k)後,判斷Sign(Q(k-1))是否約等於Sign(Q(k)),當Sign(Q(k-1))~=Sign(Q(k))時,判斷|Q(k)|是否大於|Q(k-1)|,當|Q(k)|大於|Q(k-1)|時,完成誤差校正,Z(k-1)為終解;當|Q(k)|小於或等於|Q(k-1)|時,完成誤差計算,Z(k)為終解。其中,|Q(k)|是指對Q(k)取絕對值。
當Sign(Q(k-1))~≠Sign(Q(k))時,在k的基礎上遞增1,即k=k+1。
當k=k+1時,重新計算Z(k)=Z(k-1)–1×sign(Q(k-1)),並通過Z(k)、頻率控制字FCW模擬鑑頻器110計算頻率差,並經過數字濾波器120對其濾波得到Q(k)。其中,sign(x)表示求x的符號,例如sign(-2)=-1;sign(4)=1。
誤差校正模塊163在計算得到Q(k)後,判斷Sign(Q(k-1))是否約等於Sign(Q(k)),當Sign(Q(k-1))~=Sign(Q(k))時,判斷|Q(k)|是否大於|Q(k-1)|,當|Q(k)|大於|Q(k-1)|時,完成誤差校正,Z(k-1)為終解;當|Q(k)|小於或等於|Q(k-1)|時,完成誤差計算,Z(k)為終解。其中,|Q(k)|是指對Q(k)取絕對值。
當Sign(Q(k-1))~≠Sign(Q(k))時,在k=k+1的基礎上遞增1,即k=(k+1)+1,並重新計算Z(k)=Z(k-1)–1×sign(Q(k-1)),並通過Z(k)、頻率控制字FCW模擬鑑頻器110計算頻率差,並經過數字濾波器120對其濾波得到Q(k),判斷Sign(Q(k-1))是否約等於Sign(Q(k)),如此循環,直到當Sign(Q(k-1))~=Sign(Q(k))時,完成誤差計算,確定Z(k)或Z(k-1)為終解。
具體地,誤差校正模塊163初始化k=1,獲取迭代計算模塊162計算得到的迭代運算結果X2=460、Y2=-1.0545,初始化Z(0)=X(3-1)=460,初始化Q(0)=Y(3-1)=-1.0545,並計算Z(k)。
其中,Z(k)=Z1=Z(k-1)–1*sign(Q(k-1))=Z0–1*sign(Q0)=460–1*(-1)=461。將Z1代入式(7)進行計算,來模仿數字濾波器的計算結果,得到Q1=0.2052。
誤差校正模塊163判斷Sign(Q(k-1))是否不等於Sign(Q(k)),
由於Sign(Q(0))~=Sign(Q(1)),判斷|Q(k)|是否大於|Q(k-1)|,即比較Q0和Q1的絕對值。由於Q(0)=-1.0545,Q1=0.2052,因此,|Q1|0,所以有=512-128=384。
將X1代入公式(7)進行計算,來模仿鑑頻器的計算結果,得到以下的值:Y1=-93.4252。
進一步地,全數字鎖相環的鎖相方法還包括:當計算得到所述迭代初始值時,將所述濾波係數設置為第一濾波係數。
全數字鎖相環在計算得到第一初始迭代值(X0,Y0)、第二初始迭代值(X1,Y1)時,識別為即將開始進行迭代運算,由於迭代計算過程對噪聲不是特別敏感,所以可以選擇使數字濾波器帶寬較大的第一濾波係數COEF1,加速迭代計算的過程。
S2032:根據所述迭代初始值、所述第二頻率差進行迭代運算計算所述初始頻率基準值。
進一步地,當確定第一初始迭代值以及第二初始迭代值時,S2032具體包括:根據所述第一初始迭代值、所述第二初始迭代值以及所述第二頻率差進行迭代運算計算所述初始頻率基準值。
全數字鎖相環在確定第一初始迭代值(X0,Y0)、第二初始迭代值(X1,Y1),根據第一濾波係數COEF1對第一頻率差FDOUT進行濾波得到的第二頻率差LPFOUT時,根據第一初始迭代值(X0,Y0)、第二初始迭代值(X1,Y1)、第二頻率差LPFOUT迭代運算計算初始頻率基準值。其中,全數字鎖相環可以採用弦割法進行迭代運算。
例如,全數字鎖相環初始化i=2,讀入第一初始迭代值(X0,Y0)、第二初始迭代值(X1,Y1),計算DeltaX=nearest(Y(i-1)*(X(i-1)-X(i-2))/(Y(i-1)-Y(i-2)))。
其中,nearest(x)表示對x四捨五入取整,例如nearest(1.4)=1;nearest(-1.6)=-2。
取整的步驟不是必須的,如果數控振蕩器控制字DCW支持小數輸入,則不必取整。
全數字鎖相環確定DeltaX的絕對值|DealtaX|,並判斷|DealtaX|是否小於N或判斷i是否大於i_max。其中|DealtaX|表示對DeataX取絕對值,比如|-1|=1;|2|=2。N以及i_max為預設的數值,N為最小步進,通過實驗決定,例如可以將N設為3;i_max指迭代的最大次數,通過實驗決定,例如20。
當|DealtaX|小於N或i大於i_max時,完成迭代運算,將上一次的計算結果X(i-1),Y(i-1)識別為初始頻率基準值。
當|DealtaX|大於或等於N,或者i小於或等於i_max時,根據公式Xi=X(i-1)-DeltaX,計算Xi並通過Xi、頻率控制字FCW模擬鑑頻器110計算頻率差,並經過數字濾波器120對其濾波得到Yi,在i的基礎上遞增1(i=i+1)後,重新計算DeltaX=nearest(Y(i-1)*(X(i-1)-X(i-2))/(Y(i-1)-Y(i-2))),重新確定DeltaX的絕對值|DealtaX|,並判斷|DealtaX|是否小於N或判斷i是否大於i_max。
當|DealtaX|小於N或i大於i_max時,完成迭代運算,將上一次的計算結果X(i-1),Y(i-1)輸出至誤差計算模塊163,此時i=i+1。
當|DealtaX|大於或等於N,或者i小於或等於i_max時,根據公式Xi=X(i-1)-DeltaX,計算Xi並通過Xi、頻率控制字FCW模擬鑑頻器110計算頻率差,並經過數字濾波器120對其濾波得到Yi,在i=i+1的基礎上遞增1(i=(i+1)+1),如此循環,直到當|DealtaX|小於N或i大於i_max時,完成迭代運算,將上一次的計算結果X(i-1),Y(i-1)識別為初始頻率基準值。
具體地,全數字鎖相環初始化i=2,讀入步驟S2031中計算得到的第一初始迭代值(X0,Y0)=(512,65.152)、第二初始迭代值(X1,Y1)=(384,-93.4252);計算DeltaX=nearest(Y(i-1)*(X(i-1)-X(i-2))/(Y(i-1)-Y(i-2)))=nearest(Y1*(X1-X0)/(Y1-Y0))=-76。
由於|DealtaX|不小於3,計算X2,X2=X1–(-76)=384+76=460。
將X2代入步驟S2031中的公式(7)進行計算,來模仿數字濾波器的計算結果,得到以下的值:Y2=-1.0545。
計算i=i+1=2+1=3;
計算DealtaX;DeltaX=nearest(Y(i-1)*(X(i-1)-X(i-2))/(Y(i-1)-Y(i-2)))
=nearest(Y2*(X2-X1)/(Y2-Y1))=-1。
由於|DealtaX|小於3,完成迭代計算,將上一次的結果X2,Y2識別為初始頻率基準值。
進一步地,全數字鎖相環的鎖相方法還包括:當計算得到所述初始頻率基準值時,將所述濾波係數設置為第二濾波係數;其中,所述第一濾波係數大於所述第二濾波係數。
例如,全數字鎖相環在得到迭代運算結果X(i-1),Y(i-1)時,識別為即將開始進行誤差校正,由於誤差校正過程對噪聲比較敏感,所以可以選擇使數字濾波器帶寬較小的第二濾波係數COEF2,減少噪聲對誤差校正的影響。第一濾波係數COEF1對應的濾波器帶寬大於第二濾波係數COEF2對應的濾波器帶寬。
可以理解的是,全數字鎖相環還獲取比例積分器的使能控制信號ENABLE,此時,獲取到的比例積分器的使能控制信號ENABLE標識非使能狀態。
S2033:根據所述第二頻率差對所述初始頻率基準值進行校正得到所述頻率基準值。
全數字鎖相環當計算得到迭代運算結果X(i-1),Y(i-1),以及根據第二濾波係數COEF2對第一頻率差FDOUT進行濾波得到的第二頻率差LPFOUT時,根據第二頻率差LPFOUT對X(i-1),Y(i-1)進行校正得到頻率基準值XQ。
其中,全數字鎖相環初始化k=1,獲取迭代運算結果X(i-1)、Y(i-1),初始化Z(0)=X(i-1),初始化Q(0)=Y(i-1)。
全數字鎖相環計算Z(k)=Z(k-1)–1×sign(Q(k-1)),並通過Z(k)、頻率控制字FCW模擬鑑頻器計算頻率差,並經過數字濾波器對其濾波得到Q(k)。其中,sign(x)表示求x的符號,例如sign(-2)=-1;sign(4)=1。
全數字鎖相環在計算得到Q(k)後,判斷Sign(Q(k-1))是否約等於Sign(Q(k)),當Sign(Q(k-1))~=Sign(Q(k))時,判斷|Q(k)|是否大於|Q(k-1)|,當|Q(k)|大於|Q(k-1)|時,完成誤差校正,Z(k-1)為終解;當|Q(k)|小於或等於|Q(k-1)|時,完成誤差計算,Z(k)為終解。其中,|Q(k)|是指對Q(k)取絕對值。
當Sign(Q(k-1))~≠Sign(Q(k))時,在k的基礎上遞增1,即k=k+1。
當k=k+1時,重新計算Z(k)=Z(k-1)–1×sign(Q(k-1)),並通過Z(k)、頻率控制字FCW模擬鑑頻器計算頻率差,並經過數字濾波器對其濾波得到Q(k)。其中,sign(x)表示求x的符號,例如sign(-2)=-1;sign(4)=1。
全數字鎖相環在計算得到Q(k)後,判斷Sign(Q(k-1))是否約等於Sign(Q(k)),當Sign(Q(k-1))~=Sign(Q(k))時,判斷|Q(k)|是否大於|Q(k-1)|,當|Q(k)|大於|Q(k-1)|時,完成誤差校正,Z(k-1)為終解;當|Q(k)|小於或等於|Q(k-1)|時,完成誤差計算,Z(k)為終解。其中,|Q(k)|是指對Q(k)取絕對值。
當Sign(Q(k-1))~≠Sign(Q(k))時,在k=k+1的基礎上遞增1,即k=(k+1)+1,並重新計算Z(k)=Z(k-1)–1×sign(Q(k-1)),並通過Z(k)、頻率控制字FCW模擬鑑頻器110計算頻率差,並經過數字濾波器對其濾波得到Q(k),判斷Sign(Q(k-1))是否約等於Sign(Q(k)),如此循環,直到當Sign(Q(k-1))~=Sign(Q(k))時,完成誤差計算,確定Z(k)或Z(k-1)為終解。
全數字鎖相環將Z(k)或Z(k-1)識別為校正得到頻率基準值XQ。
可以理解的是,全數字鎖相環在校正得到頻率基準值XQ時,獲取的比例積分器的使能控制信號ENABLE標識使能狀態。
例如,全數字鎖相環初始化k=1,獲取步驟S2032計算得到的迭代運算結果X2=460、Y2=-1.0545,初始化Z(0)=X(3-1)=460,初始化Q(0)=Y(3-1)=-1.0545,並計算Z(k)。
其中,Z(k)=Z1=Z(k-1)–1*sign(Q(k-1))=Z0–1*sign(Q0)=460–1*(-1)=461。將Z1代入式(7)進行計算,來模仿數字濾波器的計算結果,得到Q1=0.2052。
全數字鎖相環判斷Sign(Q(k-1))是否不等於Sign(Q(k))。
由於Sign(Q(0))~=Sign(Q(1)),判斷|Q(k)|是否大於|Q(k-1)|,即比較Q0和Q1的絕對值。由於Q(0)=-1.0545,Q1=0.2052,因此,|Q1|<|Q0|,所以Z(1)=461即為最終的解。
S204:根據所述使能控制信號對所述第二頻率差進行比例積分運算,並根據運算結果以及所述頻率基準值進行加法運算得到數控振蕩器控制字。
全數字鎖相環根據比例積分器的使能控制信號ENABLE對第二頻率差LPFOUT進行比例積分運算,得到運算結果PIOUT,並根據運算結果PIOUT以及計算得到的頻率基準值XQ進行加法運算得到數控振蕩器控制字DCW。
其中,全數字鎖相環根據比例積分器的使能控制信號ENABLE對第二頻率差LPFOUT進行比例積分運算的計算公式如下:
(ENABLE==1,標識使能狀態)
PIOUT=0 (ENABLE==0,標識非使能狀態)
其中,input是第二頻率差LPFOUT;PIOUT為運算結果;a和p是係數,由系統的帶寬需求確定。
S205:根據所述數控振蕩器控制字輸出所述數控振蕩器控制字對應的第一時鐘。
全數字鎖相環數控振蕩器控制字輸出數控振蕩器控制字對應的第一時鐘Fdco_out,並將該第一時鐘Fdco_out識別下一輪循環的參考時鐘,返回步驟S101,進入下一循環。
其中,第一時鐘用於全數字鎖相環返回步驟S101根據第一時鐘Fdco_out以及頻率控制字FCW重新計算第一頻率差FDOUT。當重新計算的第一頻率差FDOUT小於或等於預設閾值時,第一時鐘Fdco_out對應的數控振蕩器控制字為目標數控振蕩器控制字,全數字鎖相環完成鎖定;當重新計算的第一頻率差大於所述預設閾值時,執行;執行步驟S102~S105進入下一循環。
上述方案,全數字鎖相環採用迭代運算計算頻率基準值,使得根據頻率基準值得到的第一時鐘與輸入鑑頻器的頻率控制字之差小於或等於預設閾值,該預設閾值能夠使得第一時鐘與輸入鑑頻器的頻率控制字之差等於零或無限趨近零,因此,能夠有效加快鎖相速度以及簡化鎖相計算過程。
通過調整濾波係數,能夠減少噪聲對誤差校正計算結果的影響,提高頻率基準值的準確度。
本發明還提供一種調頻接收裝置,調頻接收裝置包括上述任一實施例所述的直接數字頻率合成器。調頻接收裝置包括但不限於用於立體聲編碼的調頻(Frequency Modulation,FM)發射裝置。
以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。