《FPGA數(shù)字信號處理設計流程》課件第6章_第1頁
《FPGA數(shù)字信號處理設計流程》課件第6章_第2頁
《FPGA數(shù)字信號處理設計流程》課件第6章_第3頁
《FPGA數(shù)字信號處理設計流程》課件第6章_第4頁
《FPGA數(shù)字信號處理設計流程》課件第6章_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第6章應用實例6.1數(shù)字振蕩器6.2有限脈沖響應(FIR)濾波器6.3CORDIC算法的原理與運用6.4時延數(shù)字正切鎖相環(huán)6.5本章小結

6.1數(shù)?字?振?蕩?器

6.1.1用IIR濾波器實現(xiàn)振蕩器

我們可以使用IIR濾波器生成正弦波,例如如圖6.1.1所示二階IIR濾波器。圖6.1.1用IIR濾波器實現(xiàn)振蕩器結構圖濾波器的輸出為:(6.1.1)分別對等式兩邊進行Z變換,可以寫成:(6.1.2)傳遞函數(shù)可以寫成:(6.1.3)(6.1.4)給定b是一個實數(shù),于是p1和p2和可以寫成下列極數(shù)形式:(6.1.5)考慮到公式(6.1.3)的分子為1,分母為二階多項式,且最終要輸出正弦波,因此要求兩個極點位于S坐標的單位圓上,同時用頻率來表示極點數(shù)值可得如下等式:(6.1.6)(6.1.7)

1.用8位的IIR濾波器實現(xiàn)正弦振蕩器

打開實例“sine_wave_iir_8bit.mdl”,位于“C:\SG\example\Oscillators\”路徑下,在本實例中,實現(xiàn)一個IIR濾波器,工作在采樣頻率fs?=?100MHz上,并假定圖6.1.1中的b=1.75,其數(shù)據(jù)位寬為8位,如圖6.1.2所示。圖6.1.2用8位的IIR濾波器實現(xiàn)正弦振蕩器結構圖于是系統(tǒng)的傳遞函數(shù)為:圖6.1.3Z域分析圖假定模型sine_wave_iir_8bit.mdl中的所有模塊和仿真結果都是理想的,那么輸出的應是8.04MHz的正弦波,對模型sine_wave_iir_8bit.mdl進行仿真后可以得到如圖6.1.4所示的仿真結果。圖6.1.48位的IIR濾波器實現(xiàn)正弦振蕩器的仿真結果在使用FPGA進行設計開發(fā)時除了考慮設計的性能,還需要考慮硬件資源的使用情況。好的設計能使用極少的資源獲得很高的性能,但當模塊功能比較復雜時,性能和資源是難以兼顧的,通常在滿足設計要求的基礎上要求盡量減少硬件資源的使用。同樣的模塊設計要求,使用不同的硬件資源就有不同的實現(xiàn)方式、不同的性能和不同的資源使用量,遇到這類情況就需要根據(jù)整個系統(tǒng)的情況,決定使用何種實現(xiàn)方式。以此IIR濾波器為例,其中包含有兩個乘法單元,可以使用FPGA上的嵌入式硬件乘法器實現(xiàn)或用片上的基本邏輯單元來構成。需要注意的是,在本書使用的Spartan-3EFPGA上一共只有20個18×18位的嵌入式硬件乘法器,是相對比較稀缺的資源,本例中僅用到8位位寬,又沒有充分發(fā)揮嵌入式硬件乘法器的全部性能,如果使用片上的邏輯單元來實現(xiàn)乘法器又需要使用較多的資源,且性能沒有使用嵌入式硬件乘法器好,此時就需要從系統(tǒng)設計的角度考慮選擇哪種實現(xiàn)方式。表6.1.1和表6.1.2為實現(xiàn)IIR濾波器時使用嵌入式硬件乘法器和不使用嵌入式硬件乘法器兩種情況下的硬件資源使用量。表中沒有給出CLB的使用量,CLB相對而言還是比較大的邏輯單元,并不能很好地反映資源的使用情況。對比表6.1.1和表6.1.2中的數(shù)據(jù)不難發(fā)現(xiàn):

使用片上Slices等邏輯單元實現(xiàn)乘法器需要占用較多的資源。

模塊的邏輯功能主要由LUTs來實現(xiàn)。

乘法計算比加法計算要復雜很多,因而實現(xiàn)乘法器需要使用更多的資源。

時延環(huán)節(jié)由觸發(fā)器來實現(xiàn)。

使用片上嵌入式硬件乘法器實現(xiàn)乘法器能獲得較高的處理速度。

2.用12位的IIR濾波器實現(xiàn)正弦振蕩器

打開實例“sine_wave_iir_12bit.mdl”(位于“C:\SG\example\Oscillators\”路徑下),在本實例中,實現(xiàn)一個采樣頻率fs?=?100MHz的IIR濾波器,并假定圖6.1.1中的b=1.75,其數(shù)據(jù)位寬為12位,如圖6.1.5所示。圖6.1.512位的IIR濾波器實現(xiàn)正弦振蕩器結構圖對此模型可以采用前面對8位的IIR濾波器類似的分析方式,并進行仿真,得到如圖6.1.6所示的Simulink中的仿真結果。圖6.1.612位的IIR濾波器實現(xiàn)正弦振蕩器的仿真結果圖6.1.6為生成正弦波經快速傅立葉變換后得到的信號頻譜圖。本模型是一個12位的IIR濾波器,相對于前面8位的IIR濾波器,其在數(shù)值的量化過程中的誤差要小,因而在仿真結果中可以很明顯地看到信號純度更高,諧波較少,具有更高的性能。

同樣將SystemGenerator導出的工程文件在ISE中完成布局布線后得到如表6.1.3和表6.1.4所示的結果。

對比表6.1.3和表6.1.4中的數(shù)據(jù)不難發(fā)現(xiàn):

加法器所需資源關于數(shù)據(jù)位呈寬線性增長,漲幅較小。

如果不使用硬件乘法器,乘法器所需資源關于數(shù)據(jù)位寬呈指數(shù)級增長,漲幅較大。

數(shù)據(jù)吞吐量影響處理速度,且需要更多的硬件資源。6.1.2用查表法實現(xiàn)數(shù)控振蕩器

數(shù)控振蕩器通常用查找表來實現(xiàn),定步長的不斷讀取正弦查找表中的數(shù)值來生成正弦波,當讀到表單末尾時再從頭開始,從而產生一個周期信號,如圖6.1.7所示。圖6.1.7用查表法實現(xiàn)數(shù)控振蕩器結構圖圖中輸入的頻率控制信號為一常值,則輸出的正弦波頻率不變,當頻率控制信號變化時輸出的正弦波的頻率也隨之改變。給到正弦查找表的地址為三角波信號,由一個累加器生成,累加器包括一個寄存器和一個加法器,并將計算結果的小數(shù)部分丟棄,保留整數(shù)部分作為地址。累加器的輸入即為頻率控制信號,此頻率控制信號又可理解為單步步長或相位移。假定作為地址的整數(shù)部分有n位,正弦查找表的深度為N,要求2n=N,即當輸入的頻率控制量為1時將正弦查找表中的所有數(shù)據(jù)逐個全部輸出。并假定此振蕩器工作在頻率為fclk的時鐘上,輸入頻率控制量為δ,則其輸出正弦波的頻率為:

1.用查找表實現(xiàn)數(shù)控振蕩器

打開實例“nco.mdl”(位于“C:\SG\example\Oscillators\”路徑下),在本實例中,用查找表實現(xiàn)數(shù)控振蕩器,系統(tǒng)的時鐘頻率為50MHz,地址位寬為6,輸入頻率控制量為1.28,于是其輸出頻率為:Hz=1MHz圖6.1.8設定Convert模塊參數(shù)用ROM模塊作為正弦查找表,其深度(Depth)要與地址位寬一致,如圖6.1.9所示。圖6.1.9設定ROM模塊參數(shù)Basic欄參數(shù)由圖可知,正弦的幅值為0.5,于是定義正弦查找表的輸出為帶6位小數(shù)位且位寬為6的帶符號數(shù),如圖6.1.10所示。圖6.1.10設定Rom模塊OutputType欄參數(shù)圖6.1.11用查找表實現(xiàn)數(shù)控振蕩器Simulink仿真結構圖圖6.1.12用查找表實現(xiàn)數(shù)控振蕩器的仿真結果圖6.1.13用查找表實現(xiàn)數(shù)控振蕩器的頻譜圖

2.直接數(shù)字綜合器

在SystemGenerator的XILINXBlockset庫中的DSP子庫中提供有直接數(shù)字綜合器(DirectDigitalSynthesizer,DDS)模塊,也可用來生成正弦波,其原理與6.2.1節(jié)中用查找表實現(xiàn)數(shù)控振蕩器的原理相同,但在資源使用量和性能方面進行了優(yōu)化,結構圖如圖6.1.14所示。圖6.1.14直接數(shù)字綜合器Simulink仿真結構圖圖6.1.15直接數(shù)字綜合器仿真結果表6.1.7和表6.1.8為正弦查找表在FPGA硬件實現(xiàn)時分別使用BlockRAM及Distributedmemory時的硬件資源使用情況。

圖6.1.13與圖6.1.15所示的仿真結果幾乎是完全一致的,亦即兩者生成的正弦波幾乎完全一致。對比表6.1.5~6.1.8四個表中的數(shù)據(jù)不難發(fā)現(xiàn),無論是由BlockRAM還是由Distributedmemory實現(xiàn)的,DDS模塊的使用使得設計性能有了極大提高,并減少了硬件邏輯資源的使用量。使用DDS模塊本質上是調用了可配置的DDSIP核,正如第5章中闡述的,調用相關功能的IP核可快速獲得現(xiàn)有IP核的功能,對具有一定規(guī)格的類似功能模塊不需要重復開發(fā),IP核已針對特定結構進行了優(yōu)化;但IP核并不是總能滿足設計要求,需要熟悉IP核的參數(shù)和信號,以達到設計要求。 6.2有限脈沖響應(FIR)濾波器

在介紹這一部分實驗之前,首先要引入圖論的一些相關知識,這是分析這部分實驗的基礎,有助于理解時延分析。對于一個FPGA設計而言,其運行速度是由整個設計中的最大邏輯延時決定的,假如將設計分割為兩個模塊,如圖6.2.1所示。圖6.2.1設計模塊分割圖6.2.1中,虛線所示即為通過兩個模塊的最長路徑,它決定了整個設計的運行速度。為了保持系統(tǒng)的平衡,在流入割集的分支上加一個延時單元,流出割集的分支上加一個超前單元,如圖6.2.2所示。圖6.2.2設計割集于是得到如圖6.2.3所示結果。

從圖6.2.3可以看出,系統(tǒng)的處理速度已經不再是由通過兩個模塊的最長路徑決定的,而是由兩個模塊分別的最長路徑中的最大值來決定的,換句話說,可以將兩個模塊看成是兩個相對獨立的系統(tǒng),這兩個系統(tǒng)都有各自的最大邏輯延時,其中的較大者決定當前系統(tǒng)的最大運行速度。圖6.2.3中虛線所示分別為兩個模塊的最長路徑,模塊二的最長路徑即為整個設計的最大邏輯延時,比原有系統(tǒng)小很多。由此可以看出,通過這種方法可以將設計的運行速度提高。

本節(jié)將主要介紹關于FIR濾波器的多種不同實施方案,為了能夠清楚地說明這些,我們僅僅以簡單的4抽頭(4tap)的FIR濾波器為例進行實驗,如圖6.2.4所示。圖6.2.3割集后的等價設計圖6.2.4標準FIR濾波器結構圖6.2.1標準FIR濾波器

打開C:\SG\example\FIR\FIR1\fir1.mdl。

這是一個標準的4抽頭的FIR濾波器,其結構可以用圖6.2.4表示。

在此結構中,我們使用了三個時延模塊,四個乘法器和三個加法器。對此FIR濾波器進行MATLAB仿真,并在ISE中綜合,其資源使用情況及運行速度如表6.2.1所示。6.2.2標準FIR濾波器的改進結構

打開C:\SG\example\FIR\FIR2\fir2.mdl。

這是一個根據(jù)原有標準FIR濾波器改進后的結構,它是利用圖論的相關知識,將標準4抽頭的FIR進行如下切割,在每個切割點處,增加一個延時,可得到如圖6.2.5所示結構。圖6.2.5改進的標準FIR濾波器結構圖

對比上面的FIR標準結構,改進結構在切割點處共增加了6個延時,在設計中,延時是通過觸發(fā)器來實現(xiàn)的。在MATLAB中仿真,指定乘法器為8比特的乘法器,因此通過三個乘法器的數(shù)據(jù)位寬均為8。兩個位寬為8的二進制數(shù)據(jù)相加后,需要至少9比特的延時模塊,同理,兩個9比特二進制數(shù)據(jù)相加,需要至少10比特的延時模塊。因此設計中較標準FIR模型增加了33個觸發(fā)器。由于SystemGenerator在設計過程中的優(yōu)化作用,F(xiàn)IR的改進形式共需要30個觸發(fā)器。在處理速度上,改進的FIR濾波器比標準形式提高了很多,由原來的最小周期12.950ns降低到了7.609ns。這是由于,標準4抽頭的FIR濾波器結構中的最長路徑為一個乘法器和三個加法器,如圖6.2.4中虛線所示。但是在切割后的結構中,我們發(fā)現(xiàn),最長路徑降到了一個乘法器和一個加法器,如圖6.2.5中虛線所示,比原有標準FIR的最長路徑短很多,這使得處理速度有了很大的提高。6.2.3轉置4抽頭FIR濾波器

打開C:\SG\example\FIR\fir_transpose\fir_transpose.mdl。

這是一個轉置的4抽頭FIR濾波器,其結構如圖6.2.6所示。圖6.2.6轉置FIR濾波器結構圖線性信號流圖理論中有許多預算處理方法,可在保持輸入和輸出之間的傳輸關系不變的情況下,將信號流圖變換成不同的形式。轉置FIR就是利用流圖轉置的方法導出的一種轉置濾波器的結構,如圖6.2.6所示,對此結構的FIR濾波器進行MATLAB仿真,并在ISE中綜合,其資源使用情況及運行速度如表6.2.3所示。

對比標準型FIR,轉置FIR濾波器雖然在延時單元的使用數(shù)量上沒有變,仍然是3個,但是觸發(fā)器的使用數(shù)目卻由原來的6個增加為24個。這是因為在轉置FIR濾波器中,由于在經過延時模塊之前,先通過了乘法器,在Simulink中仿真,指定乘法器為8比特的乘法器,因此通過三個乘法器的數(shù)據(jù)位寬均為8比特,所需三個延時模塊的最大位寬分別為8、9、10,經過SystemGenerator優(yōu)化后的觸發(fā)器總個數(shù)為24個。

在處理速度上面,兩種FIR濾波器雖然只是結構上面有所不同,但運行速度卻相差很多。分析標準FIR的結構,從x(k)到y(tǒng)(k)的最遠路徑是一個乘法器和三個加法器,而在轉置FIR中,從x(k)到y(tǒng)(k)的最遠路徑只需經過一個乘法器和一個加法器,如圖6.2.6中虛線所示,運行速度得到了大大提高。6.2.4轉置4抽頭的FIR濾波器的變換結構

打開C:\SG\example\FIR\fir_transpose2\fir_transpose2.mdl。

這是一個改進的轉置FIR濾波器,其結構如圖6.2.7所示。

此結構為4抽頭的轉置FIR濾波器的改進結構,即按照圖6.2.7所示將其切割,并在每一支路加上一個延時,這樣,此結構比4抽頭的轉置FIR濾波器多4個時延單元,對此結構進行Simulink仿真,并用ISE綜合,得到如表6.2.4所示結果。圖6.2.7改進的轉置FIR濾波器結構圖

對比轉置4抽頭的FIR濾波器,轉置4抽頭的FIR濾波器的變換結構在其基礎上增加了四個延時單元。采用同樣的方法進行分析,通過乘法器的數(shù)據(jù)位寬為8比特,則由乘法器直接進入的四個延時單元的觸發(fā)器的個數(shù)均為8個,另外三個延時單元的觸發(fā)器個數(shù)分別為觸發(fā)器的個數(shù),即分別為8、9、10,因此總個數(shù)從原有的24個增加到52個。

在處理速度上面,轉置4抽頭的FIR濾波器的變換結構比轉置4抽頭的FIR濾波器有了很大的提高。分析兩種結構的最長路徑即可發(fā)現(xiàn),在轉置FIR中,最長路徑是一個乘法器和一個加法器,但是轉置FIR的變換結構中,最長路徑僅為一個乘法器,如圖6.2.7所示,在處理速度上有了很大的提高。6.2.5使用SystemGenerator現(xiàn)有乘加FIR模塊

打開C:\SG\example\FIR\fir_MAC\fir_mac.mdl。

此設計為利用SystemGenerator中現(xiàn)有的乘加FIR模塊(n-tapMACFIRfilter模塊)搭建而成。其結構如圖6.2.8所示。圖6.2.8n-tapMACFIRfilter模塊仿真結構圖圖6.2.9n-tapMACFIRfilter模塊內部結構圖在n-tapMACFIRfilter模塊的結構中,CoefficientROM模塊定義了4抽頭的抽頭系數(shù)。此結構不同于上述幾種結構之處在于,其通過Counter模塊的計數(shù)控制來實現(xiàn)串行處理,由于該結構為4抽頭的濾波器,完成一次濾波運算需要4個時鐘周期,因此在輸出端口前使用了一個4拍的下采樣模塊,保證輸出為有效數(shù)據(jù)。結構中的MACEngine為n-tapMACFIRfilter模塊的乘加環(huán)節(jié),其內部結構如圖6.2.10所示。圖6.2.10MACEngine模塊內部結構圖由圖6.2.10可以看出,n-tapMACFIRfilter模塊采用的是串行處理方式,僅用一個嵌入式乘法器即實現(xiàn)了4抽頭的FIR濾波器,節(jié)省了大量資源。

由于該設計中所使用的n-tapMACFIRfilter模塊是經過優(yōu)化且具有一定通用性的模塊,通過表6.2.5可以發(fā)現(xiàn),該設計的觸發(fā)器使用量為65,多用于構成流水線結構,其運行速度得到了極大的提高,最大頻率提高到了206.441MHz。 6.3CORDIC算法的原理與運用

6.3.1CORDIC算法介紹

CORDIC算法是一種計算旋轉坐標的方法。如圖6.3.1所示,設起點坐標為(,),終點坐標為(,)。

由三角函數(shù)知識,得到旋轉后的新坐標(見圖6.3.2)為:(6.3.1)圖6.3.1CORDIC旋轉坐標示意圖圖6.3.2旋轉坐標中后模的變化示意圖將cosθ去掉后相當于把旋轉后矢量的模減小了,為了保證最終結果的正確,一般在結果后面將乘上一個系數(shù)K。如果把θ約束成tanθ?=2-i(i=0,1,2,L),則正切項的乘法就演變成簡單的二進制的移位運算,每旋轉一次,i加1,由于在-π/2~π/2內,無論θ正負,cosθ始終是正值,因而可以將公式(6.3.1)改寫為下式:(6.3.2)所以>

事實上也就是說,假設我們從X軸開始旋轉,通過一系列逐次減小的角度旋轉后,只要迭代的次數(shù)足夠多,就可以實現(xiàn)-π/2~π/2內任意角度的旋轉,并且通過加法和移位運算得到目標的橫坐標和縱坐標。每次旋轉后得到的實際矢量和目標矢量之間的誤差角度(目標角度減去實際角度)如下式:(6.3.3)其中,Z0為目標矢量角度,若Zi>0,則=+1;若<0,則=?-1。實際迭代后累計角度為:(6.3.4)其中,a0=0。例如,要實現(xiàn)68°的矢量旋轉,我們可以列出第i次迭代對應的旋轉角度、旋轉方向、迭代后的實際角度和誤差角度如表6.3.1所示。

一旦Zi

(°)迭代的次數(shù)確定了,Ki也就確定了,Ki的乘積可以在實現(xiàn)時不做處理,而是被當作整個系統(tǒng)處理增益的一部分,實際的增益值取決于迭代次數(shù)n。當n趨于無窮大時,的極限值約為1.647。在實現(xiàn)CORDIC算法時,由于當作系統(tǒng)的處理增益不做處理,因此只需要移位、相加運算就可完成矢量旋轉,很適合在FPGA中實現(xiàn)。(6.3.5)

1.搭建CORDIC模塊的系統(tǒng)

搭建CORDIC模塊時,請參看上節(jié)中的CORDIC算法介紹。迭代次數(shù)越多計算越精確,但同時消耗資源會增加而且系統(tǒng)速度也會受到影響。所以需要根據(jù)具體設計的要求來選擇迭代的次數(shù),一般來說,迭代次數(shù)不高于數(shù)據(jù)的位寬。打開C:\SG\exercise\CORDIC\CORDIC_deff_6.mdl,如圖6.3.3所示。圖6.3.3CORDIC參考系統(tǒng)從圖6.3.3可以看到,該系統(tǒng)主要分四個大的模塊:數(shù)據(jù)輸入模塊、參考設計模塊、CORDIC設計模塊和比較模塊。其中輸入數(shù)據(jù)是兩個隨機數(shù),經過Gatewayin模塊后進入參數(shù)設計模塊和CORDIC設計模塊這兩個模塊計算出來的數(shù)據(jù)進入比較模塊,比較后的誤差值作為輸出顯示。ReferenceDesign模塊內部結構圖如圖6.3.4所示。圖6.3.4浮點數(shù)計算參考模塊從圖6.3.4看出,參數(shù)設計模塊實際是一個浮點數(shù)模塊,直接計算出的值作為輸出。該模塊可以脫離SysetemGenerator在Simulink中獨立運行,仿真時作為參考模塊可以很方便地檢驗CORDIC模塊設計的精度。CORDIC內部結構圖如圖6.3.5所示。

從圖6.3.5看出,CORDIC設計模塊主要由6個迭代模塊組成,每個迭代模塊只是參數(shù)設置不一樣而已。其中,常數(shù)0.72998046875是對坐標旋轉后模變化的補償。圖6.3.5CORDIC算法設計模塊圖6.3.6CORDIC模塊與參考模塊的比較結果雙擊SystemGenerator圖標,得到SystemGenerator設置如圖6.3.7所示。

單擊Generate生成工程文件,然后在ISE8.2中對生成的工程文件進行綜合,從綜合報告中得到預計的消耗資源情況,為了比較方便,具體消耗資源情況將在下一小節(jié)中與使用SystemGenerator自帶參考CORDIC模塊的系統(tǒng)消耗FPGA資源以表的形式給出。圖6.3.7SystemGenerator設置對話框

2.使用SystemGenerator自帶的參考CORDIC模塊的系統(tǒng)

為了方便設計者使用SystemGenerator進行數(shù)字系統(tǒng)設計,SystemGenerator系統(tǒng)在XILINXReferenceBlockset目錄下提供了一些常用的數(shù)字處理模塊,只需要簡單的參數(shù)設置就可直接調用。本實驗中就是調用其中的CORDIC計算模塊替代上節(jié)中搭建的CORDIC計算模塊,從試驗中大家可以加深對系統(tǒng)自帶數(shù)字處理模塊的理解。

打開C:\SG\exercise\CORDIC\CORDIC_model_deff_6.mdl。

該系統(tǒng)與上面實驗不同的地方在于用SystemGenerator中XILINXReferenceBlockset\圖6.3.8用SystemGenerator系統(tǒng)自帶CORDIC模塊算法實現(xiàn)圖圖6.3.9自帶CORDIC模塊與參考模塊的比較結果生成工程文件綜合后,從綜合報告中得到耗費資源的情況,與搭建CORDIC計算模塊的系統(tǒng)所耗費的資源進行比較,如表6.3.2所示。 6.4時延數(shù)字正切鎖相環(huán)

如圖6.4.1所示為傳統(tǒng)的數(shù)字正切鎖相環(huán)(DigitalTanlockLoop,DTL)的結構圖,由一個Hilbert轉換器即90°的相位變換器、兩個采樣器、一個鑒相器、一個數(shù)字環(huán)路濾波器和一個數(shù)控振蕩器構成。兩個采樣器受控于數(shù)字振蕩器,同時對輸入信號進行采樣,采樣器的輸出信號具有90°的相位差。鑒相器的鑒相功能由函數(shù)實現(xiàn),相位差經由數(shù)字濾波器濾波后作為數(shù)字振蕩器的控制信號決定輸出正弦波的周期。不難發(fā)現(xiàn),當輸入信號發(fā)生頻率或相位有跳變時鑒相器輸出的相位差信號也會變化,數(shù)字濾波器的輸出控制信號以及數(shù)字振蕩器的輸出信號周期也會隨之改變,因此兩個采樣器的采樣率是隨輸入信號而改變的,最終達到與輸入信號同頻率即信號頻率鎖定。圖6.4.1時延數(shù)字正切鎖相環(huán)結構圖在FPGA實現(xiàn)數(shù)字正切鎖相環(huán)時,首先需要將模擬模塊Hilbert轉換器用一個時延環(huán)節(jié)替換,其余部分保持不變,因此稱此鎖相環(huán)為時延數(shù)字正切鎖相環(huán)(Time-delayDigitalTanlockLoop,TDTL),得到如圖6.4.2所示結構圖。圖6.4.2時延數(shù)字正切鎖相環(huán)結構圖6.4.1零階時延數(shù)字正切鎖相環(huán)

打開實例“TDTL_zero_order.mdl”,位于“C:\SG\example\TDTL\”路徑下。本例實現(xiàn)一個零階時延數(shù)字正切鎖相環(huán),如圖6.4.3所示。圖6.4.3零階時延數(shù)字正切鎖相環(huán)Simulink仿真結果圖由圖6.4.3可見,用CORDICATAN模塊計算arctan[x(k)/y(k)],以實現(xiàn)鑒相器;以兩個帶使能端的寄存器實現(xiàn)采樣器;用一個時延環(huán)節(jié)實現(xiàn)90°相位的延遲。系統(tǒng)時鐘為50MHz,要求鎖定的輸入信號為以200kHz正弦信號,并在0.0002秒時跳變到220kHz的正弦信號。因此選擇延遲量為62(≈50MHz/200kHz×4)個時鐘周期。濾波器的結構如圖6.4.4所示。圖6.4.4零階濾波器結構圖此實例實現(xiàn)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論