鎖相環(huán)的一些概念
1、捕獲、鎖定與跟蹤的概念
捕獲,是指從輸入信號(hào)加到鎖相環(huán)輸入端開始開始,一直到環(huán)路達(dá)到鎖定的全過程。
鎖相環(huán)的鎖定是指鎖相環(huán)的輸出頻率等于輸入頻率,而輸出信號(hào)的相位跟隨輸入信號(hào)的變化而變化。
跟蹤是指鎖相環(huán)鎖定后的狀態(tài),一旦鎖相環(huán)進(jìn)入鎖定狀態(tài),若輸入信號(hào)產(chǎn)生了相位的變化,環(huán)路就調(diào)整壓控振蕩器的控制電壓使得其輸出信號(hào)的相位跟隨輸入信號(hào)的相位變化,即保持恒定的穩(wěn)態(tài)相位差。這種狀態(tài)稱為跟蹤或同步狀態(tài)。
2、捕獲時(shí)間和穩(wěn)態(tài)相差
捕獲時(shí)間是指捕獲過程所需的時(shí)間。捕獲時(shí)間的大小不僅與環(huán)路參數(shù)有關(guān),而且與起始狀態(tài)有關(guān)。
當(dāng)環(huán)路進(jìn)入同步狀態(tài)之后,環(huán)內(nèi)被控振蕩器的振蕩器頻率已經(jīng)等于輸入信號(hào)的頻率,兩者之間只差一個(gè)固定的相位。這個(gè)相位差稱為穩(wěn)態(tài)相差。反過來說,若穩(wěn)態(tài)相差為一個(gè)常數(shù)或等于0,則說明環(huán)路處于鎖定狀態(tài)。
3、相位捕獲和頻率捕獲
“相位捕獲”指在捕獲過程中,相位沒有經(jīng)過2π的周期跳躍就能進(jìn)入的鎖定狀態(tài),即捕獲過程小于一個(gè)2π周期的捕獲過程稱為相位捕獲,又稱快捕獲。“頻率捕獲”指捕獲經(jīng)歷一個(gè)以上的頻率周期的捕獲過程。即意味著環(huán)路的輸入信號(hào)頻率與輸出信號(hào)頻率在開始捕獲前相差至少一個(gè)周期。一般來說,一個(gè)鎖相環(huán)從捕獲到鎖定都要經(jīng)歷從頻率捕獲到相位捕獲兩個(gè)過程。
如下圖的快捕范圍就是快捕帶,只有相位捕獲,因此收斂較快,而除快捕范圍的捕獲帶則首先要進(jìn)行頻率捕獲,然后才是相位捕獲。頻率捕獲相對(duì)來說是一個(gè)慢的過程,因此收斂較慢。
4、捕獲帶和同步帶
捕獲帶是指保證環(huán)路必然進(jìn)入鎖定的最大固有頻差值。換句話說,就是在保證環(huán)路不出現(xiàn)穩(wěn)定的差拍狀態(tài)所允許的最大固有頻差值。
一旦環(huán)路進(jìn)入鎖定狀態(tài),系統(tǒng)就處于跟蹤狀態(tài)。隨著輸入信號(hào)的頻率和相位的變化,環(huán)路應(yīng)該始終能跟蹤其變化,但一旦輸入信號(hào)的頻率與被控壓控振蕩器的自由振蕩器頻率相差太多,環(huán)路就會(huì)失去跟蹤能力,這種狀態(tài)稱為“失鎖”。
同步帶是指系統(tǒng)保持同步的最大固有頻差值
5、最大頻率階躍范圍
描述PLL對(duì)于穩(wěn)定工作狀態(tài)的動(dòng)態(tài)限制。環(huán)路初始處于鎖定狀態(tài),當(dāng)輸入信號(hào)的頻率發(fā)生階躍變化的幅度在失鎖帶的范圍之內(nèi),環(huán)路能夠保持鎖定。然而,當(dāng)輸入信號(hào)的頻率發(fā)生階躍變化的幅度超出失鎖帶的范圍,環(huán)路不能保持鎖定,輸出信號(hào)無法跟蹤輸入?yún)⒖夹盘?hào)。當(dāng)然,通過緩慢的捕獲過程,環(huán)路可再次入鎖。
鑒相器
關(guān)于鑒頻器介紹一下2種鑒頻器:
鑒頻器1,二象限反正切函數(shù),
優(yōu)點(diǎn):最準(zhǔn)確的鑒相方法,實(shí)際相位差異位于-90°至+90°的范圍之內(nèi)時(shí),該鑒相器的工作保持線性,并且其輸出的鑒相結(jié)果與信號(hào)幅值無關(guān)。
缺點(diǎn):需要進(jìn)行反正切求值,因而它也是計(jì)算量最大的一種。
鑒頻器2
優(yōu)點(diǎn):計(jì)算量小, 適合純邏輯實(shí)現(xiàn)
缺點(diǎn):鑒頻近似準(zhǔn)確,鑒相結(jié)果與
成正比,并且與信號(hào)幅值有關(guān)
環(huán)路濾波器 和 頻率可變振蕩器 與鎖頻環(huán)一樣,不在重復(fù)敘述
Matlab 程序
在鎖頻環(huán)的程序基礎(chǔ)上添加鎖相環(huán),設(shè)定前面500ms是鎖頻環(huán)工作,將頻率快速的拉到接近的范圍,然后切換到鎖相環(huán),期間在1s的時(shí)候頻率突變10Hz,在2s的時(shí)候突變30Hz,在3s的時(shí)候突變100Hz,來理解快捕范圍,頻率階躍、捕獲帶等這些概念。為了顯示更加清楚,這里就不加碼元信息了
format long g;
clc;clear all;close all
SampleClk = 4.1e6;
PointNum = SampleClk*5;
IF = 1e6- 240 ;
Carr_cos(1:SampleClk) = cos(2*pi*(IF/SampleClk).*[1:SampleClk] + 0);
Carr_sin(1:SampleClk) = sin(2*pi*(IF/SampleClk).*[1:SampleClk] + 0);
IF = IF + 10;
Carr_cos(1+SampleClk:PointNum) = cos(2*pi*(IF/SampleClk).*[SampleClk+1:PointNum] + 0);
Carr_sin(1+SampleClk:PointNum) = sin(2*pi*(IF/SampleClk).*[SampleClk+1:PointNum] + 0);
IF = IF + 30;
Carr_cos(1+2*SampleClk:PointNum) = cos(2*pi*(IF/SampleClk).*[2*SampleClk+1:PointNum] + 0);
Carr_sin(1+2*SampleClk:PointNum) = sin(2*pi*(IF/SampleClk).*[2*SampleClk+1:PointNum] + 0);
IF = IF + 100;
Carr_cos(1+3*SampleClk:PointNum) = cos(2*pi*(IF/SampleClk).*[3*SampleClk+1:PointNum] + 0);
Carr_sin(1+3*SampleClk:PointNum) = sin(2*pi*(IF/SampleClk).*[3*SampleClk+1:PointNum] + 0);
signal0 = Carr_cos +j*Carr_sin;
data = awgn(signal0,-5,'measured');
n = SampleClk/1000;
num=1000;
a=rand(1,num);
a(a>0.5)=1;
a(a<=0.5)=-1;
% for m = 1 1000
% data(m*n+1:(m + 1)*n) = a(m)*data(m*n+1:(m + 1)*n);
% end
fc = 1e6;
n = SampleClk/1000;
nf = floor(length(data)/n);
FAccCarReg0 = 0;
PAccCarReg0 = 0;
frame = 0;
FLL_BL = 100;
PLL_BL = 20;
tc1 = 1/1000;
k1 = 1;
[d0,d1] = Fil2ndPara(k1,FLL_BL,tc1);
[c0,c1] = Fil2ndPara(k1,PLL_BL,tc1);
df(1:nf) = 0;
df1(1:nf) = 0;
PQaccu = 0;
PIaccu = 0;
fll = 0;
pll = 0;
carr_accu = 0;
counter = 1;
init_carr_freq = fc;
for frame = 1 : nf
% frame
carr_freq = init_carr_freq + fll + pll;
for clk = 0 : n-1
%clk
carr_accu = rem(carr_accu,1);
cosine = cos(2*pi*(carr_accu));
sine = sin(2*pi*(carr_accu));
baseband = (data(((frame-1)*n+clk+1))).*(cosine -j*sine);
PI_clk = real(baseband);
PQ_clk = imag(baseband);
PQaccu = PQaccu + PQ_clk;
PIaccu = PIaccu + PI_clk;
carr_accu = carr_accu + carr_freq/SampleClk;
end
PQ(frame) = PQaccu;
PI(frame) = PIaccu;
if PI(frame) == 0
PI(frame) = 0.0000001;
end
PQaccu = 0;
PIaccu = 0;
if frame <5?
fll = 0;
pll = 0;
elseif(frame <500 )
df(frame) = FrqErr(PI,PQ,frame);
[fll,FAccCarReg0] = Fil2nd(d0,d1,FAccCarReg0,df(frame));
else
df1(frame) = PhaErr(PI,PQ,frame);
[pll,PAccCarReg0] = Fil2nd(c0,c1,PAccCarReg0,df1(frame));
end
fll_frame(frame) = fll + pll;
end
figure(1)
plot(fll_frame);
figure(4)
plot(PI);
hold on
plot(PQ);
hold on
figure(5)
plot(atan(PQ./PI))
從頻率跟蹤圖可以明顯的看出
在500ms鎖頻環(huán)轉(zhuǎn)鎖相環(huán)的時(shí)候,誤差頻率很小,因此處于快捕帶,只需要對(duì)相位進(jìn)行捕獲,收斂很快。在1s的時(shí)候,頻率突變10Hz,環(huán)路仍然保持鎖定,很快便調(diào)整到了正確的頻率,因此10Hz屬于最大階躍范圍內(nèi),2s的時(shí)候,頻率突變30Hz,很明顯的頻率出現(xiàn)了震蕩,這就是失鎖了,但仍處于捕獲帶內(nèi),因此花了一點(diǎn)時(shí)間又重新鎖定到正確的頻率上,最后,頻率突變100Hz,則直接跳出了捕獲帶之外,無法重新鎖定了。
從I/Q幅度圖以及鑒相值可以看出
在500ms和1s的時(shí)候,相位沒有出現(xiàn)2*pi的翻轉(zhuǎn),而在2s的時(shí)候出現(xiàn)了多次的2pi的翻轉(zhuǎn),這也印證了最開始介紹鎖相環(huán)的概念中的 頻率捕獲和相位捕獲的內(nèi)容。
IQ幅度圖:
鑒相值圖:
原文標(biāo)題:FPGA學(xué)習(xí)-數(shù)字鎖相環(huán)
文章出處:【微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
鎖相環(huán)
+關(guān)注
關(guān)注
35文章
583瀏覽量
87699 -
振蕩器
+關(guān)注
關(guān)注
28文章
3814瀏覽量
138912 -
頻率
+關(guān)注
關(guān)注
4文章
1459瀏覽量
59163
原文標(biāo)題:FPGA學(xué)習(xí)-數(shù)字鎖相環(huán)
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論