基于VHDL的低通FIR數(shù)字濾波器設(shè)計 周鵬_第1頁
基于VHDL的低通FIR數(shù)字濾波器設(shè)計 周鵬_第2頁
基于VHDL的低通FIR數(shù)字濾波器設(shè)計 周鵬_第3頁
基于VHDL的低通FIR數(shù)字濾波器設(shè)計 周鵬_第4頁
基于VHDL的低通FIR數(shù)字濾波器設(shè)計 周鵬_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

EDA技術(shù)與應(yīng)用課程設(shè)計報告作者周鵬學(xué)號:112111232學(xué)院(系)理學(xué)院專業(yè)光學(xué)工程題目基于VHDL的低通FIR數(shù)字濾波器設(shè)計指導(dǎo)者:蔣立平教授2013年4月摘要數(shù)字濾波器由數(shù)字乘法器、加法器和延時單元組成的一種算法或裝置。主要用于對輸入離散信號的數(shù)字代碼進行運算處理,以達到改變信號頻譜的目的。本文論述的數(shù)字濾波器是運用VHDL語言制作的,主要工作在于乘法器的設(shè)計,運用CSD編碼方法改進乘法器系數(shù)。所完成的低通濾波器對由DDS產(chǎn)生的信號進行采樣、濾波,經(jīng)實驗可以發(fā)現(xiàn)所制作的低通FIR數(shù)字濾波器能夠很好地對輸入信號進行濾波。關(guān)鍵字:FIR濾波器,VHDL,DDS,CSD編碼目錄引言 1數(shù)字濾波器 1數(shù)字濾波器原理 1數(shù)字濾波器分類 2FIR濾波器的設(shè)計 3FIR參數(shù)設(shè)置、獲取沖擊響應(yīng)系數(shù) 4CSD編碼優(yōu)化系數(shù) 6乘法器的具體實現(xiàn) 8FIR數(shù)字濾波器的整體實現(xiàn) 9DDS設(shè)計 11DDS簡介 11DDS的制作 11實驗結(jié)果 13實驗改進分析 15總結(jié)與收獲 16引言 數(shù)字濾波器是對數(shù)字信號進行濾波處理以得到期望的響應(yīng)特性的離散時間系統(tǒng)。數(shù)字濾波器一詞出現(xiàn)頻率變高是在上世紀60年代,當(dāng)時隨著電子計算機技術(shù)和大規(guī)模集成電路的發(fā)展,數(shù)字濾波器已可用計算機軟件實現(xiàn),也可用大規(guī)模集成數(shù)字硬件實時實現(xiàn)。數(shù)字濾波器具有高精度、高可靠性、可程控改變特性或復(fù)用、便于集成等優(yōu)點。數(shù)字濾波器在語言信號處理、圖像信號處理、醫(yī)學(xué)生物信號處理以及其他應(yīng)用領(lǐng)域都得到了廣泛應(yīng)用。數(shù)字濾波器 數(shù)字濾波器是一種電子濾波器,它與完全工作在模擬信號域的模擬濾波器不同。數(shù)字濾波器工作在數(shù)字信號域,它處理的對象是經(jīng)由采樣器件將模擬信號轉(zhuǎn)換而得到的數(shù)字信號。數(shù)字濾波器的工作方式與模擬濾波器也完全不同:后者完全依靠電阻器、電容器、晶體管等電子元件組成的物理網(wǎng)絡(luò)實現(xiàn)濾波功能;而前者是通過數(shù)字運算器件對輸入的數(shù)字信號進行運算和處理,從而實現(xiàn)設(shè)計要求的特性。數(shù)字濾波器有著模擬濾波器所無法比擬的優(yōu)越性,數(shù)字濾波器具有比模擬濾波器更高的精度,甚至能夠?qū)崿F(xiàn)后者在理論上也無法達到的性能。比如數(shù)字濾波器甚至可以使通帶內(nèi)極接近截止頻率處還能保持原信號幅度,而信號一過截止頻率到達阻帶就能發(fā)現(xiàn)信號有著明顯的衰減。數(shù)字濾波器相較于模擬濾波器還具有更高的信噪比和無可比擬的可靠性。數(shù)字濾波器原理處處理后的處理后的數(shù)字信號數(shù)模轉(zhuǎn)換器待處理的數(shù)字信號數(shù)字信號處理器待處理的模擬信號模數(shù)轉(zhuǎn)換器模擬信號圖1-1數(shù)字濾波器原理圖數(shù)字濾波器是按照程序計算信號,到達濾波的目的。通過對數(shù)字濾波器的存儲器編寫程序,到達濾波的目的。通過對數(shù)字濾波器的存儲編寫程序,就可以實現(xiàn)各種濾波功能。數(shù)字濾波器的原理圖如下1-1所示,其核心就是數(shù)字信號處理器。 應(yīng)用數(shù)字濾波器處理模擬信號(對應(yīng)模擬頻率)時,首先須對輸入模擬信號進行限帶、抽樣和模數(shù)轉(zhuǎn)換。數(shù)字濾波器輸入信號的數(shù)字頻率,按照奈奎斯特抽樣定理,要使抽樣信號的頻譜不產(chǎn)生重疊,應(yīng)小于折疊頻率,其頻率響應(yīng)具有以2π為間隔的周期重復(fù)特性,且以折疊頻率即ω=π點對稱。為得到模擬信號,數(shù)字濾波器處理的輸出數(shù)字信號須經(jīng)數(shù)模轉(zhuǎn)換、平滑。數(shù)字濾波器分類 數(shù)字濾波器有低通、高通、帶通、帶阻和全通等類型。它可以是時不變的或時變的、因果的或非因果的、線性的或非線性的。一般來說,數(shù)字濾波器主要分為兩種,即IIR(InfiniteImpulseResponse,無限脈沖響應(yīng))和FIR(FiniteImpulseResponse,有限脈沖響應(yīng))。IIR數(shù)字濾波器采用遞歸型結(jié)構(gòu),即結(jié)構(gòu)上帶有反饋環(huán)路。IIR濾波器運算結(jié)構(gòu)通常由延時、乘以系數(shù)和相加等基本運算組成,可以組合成直接型、正準型、級聯(lián)型、并聯(lián)型四種結(jié)構(gòu)形式,都具有反饋回路。由于運算中的舍入處理,使誤差不斷累積,有時會產(chǎn)生微弱的寄生振蕩。而且IIR數(shù)字濾波器的相位特性不好控制,對相位要求較高時,需加相位校準網(wǎng)絡(luò)。IIR的設(shè)計相對來說,較為復(fù)雜,不利于計算機編程,用于計算的時延也相對較大,這幾點不利于信號的實時處理。FIR數(shù)字濾波器的結(jié)構(gòu)上沒有反饋回路,所以FIR數(shù)字濾波器的實現(xiàn)上相對于IIR數(shù)字濾波器要簡單得多。雖然FIR濾波器的幅頻特性精度較之于IIR低,其性能也不如同樣階數(shù)的IIR,但是FIR濾波器具有線性相位,即不同頻率分量的信號經(jīng)過FIR濾波器后它們的時間差不變,這在信號處理中非常重要。FIR濾波器最重要的優(yōu)點就是它不存在系統(tǒng)極點,所以FIR濾波器是絕對穩(wěn)定的系統(tǒng)。而且由于數(shù)字計算硬件的飛速發(fā)展,F(xiàn)IR濾波器性能上的相對不足已經(jīng)不成為問題。再加上引入計算機輔助設(shè)計,F(xiàn)IR濾波器的設(shè)計也得到極大的簡化?,F(xiàn)在應(yīng)用最廣的是線性、時不變數(shù)字濾波器,以及FIR濾波器。FIR濾波器的設(shè)計本次課題設(shè)計就是基于VHDL語言設(shè)計一個高效的FIR數(shù)字濾波器。FIR濾波器的單位脈沖響應(yīng)長度是有限的,它的差分方程或輸出方程如下式(1-1)所示:y(n)=m=0N-1hm FIR的系統(tǒng)函數(shù)為:Hz從FIR的系統(tǒng)函數(shù)可以看出其有n-1個零點,極點都在原點上,其系統(tǒng)函數(shù)的分母為1,不存在反饋回路。FIR濾波器具有h(0),h(1)……h(huán)(n-1)共n個沖擊響應(yīng)序列,即有n個系數(shù),通常被稱為n階FIR濾波器。實現(xiàn)輸出公式(1-1)的直接結(jié)構(gòu)形式如下圖(1-2)所示。圖1-2n階FIR濾波器的直接結(jié)構(gòu)形式圖1-2n階FIR濾波器的直接結(jié)構(gòu)形式 從該圖可以看出,要實現(xiàn)n階FIR濾波器至少需要n個乘法器,n-1個加法器。在電路實現(xiàn)中,乘法器占用的邏輯單元數(shù)較多。乘法器的增加,意味著電路成本增加,另外對電路的工作速度也有影響。所以FIR濾波器設(shè)計的主要任務(wù)就是乘法器的設(shè)計。FIR濾波器的參數(shù)決定其沖擊響應(yīng)h(i),一旦FIR濾波器的參數(shù)確定后,其沖擊響應(yīng)也就隨之確定,即h(i)為一個常數(shù)。信號與一個常數(shù)進行相乘,可以針對特定系數(shù)設(shè)計特定的乘法器,可以用移位器,加法器和減法器來實現(xiàn)。一般情況下,移位器不消耗芯片資源,而減法器由加法器來實現(xiàn)。如此就可以將復(fù)雜的乘法器簡化為簡單的加法器,不僅節(jié)省芯片資源,也不會對電路的工作速度有所影響。那么具體需要多少加法器,必須先知道數(shù)字濾波器的沖擊響應(yīng)系數(shù),接下來就進行獲取系數(shù)的相關(guān)工作。FIR參數(shù)設(shè)置、獲取沖擊響應(yīng)系數(shù) 數(shù)字濾波器能比模擬濾波器做得更好,相應(yīng)地,對數(shù)字濾波器的技術(shù)指標(biāo)也比較高。模擬濾波器常用的技術(shù)指標(biāo)是半功率點截止頻率Ωc,半功率點是指角頻率Ω= 本次課題設(shè)計所制作的是低通濾波器,下面就以低通濾波器為例,介紹上述四個指標(biāo)。下圖1-3所示為低通濾波器的頻率響應(yīng)圖。其中,ωp為通帶截止頻率,δp是通帶允許的偏差,簡稱通帶波動,ω=0~ωp是通帶的范圍;ωs是阻帶截止頻率,δs是阻帶允許的波動,簡稱阻帶波動,圖1-3低通濾波器的頻率響應(yīng)圖1-3低通濾波器的頻率響應(yīng) 本次課程設(shè)計通過使用Matlab中的FDATool(FilterDesign&AnalysisTool)工具來設(shè)計獲取所設(shè)計的低通濾波器的沖擊響應(yīng)參數(shù)。本次課程設(shè)計的低通濾波器的相關(guān)系數(shù)設(shè)定如下:類型:FIR低通濾波器(16階);采樣頻率:Fs=96kHz,截止頻率:Fc=5kHz;輸入序列位寬為10位(最高位為符號位)。Matlab中的FDATool的界面如圖1-4所示,選擇低通(Lowpass),Kaiser窗口法(Beta設(shè)定為0.5)來進行設(shè)計,設(shè)定階數(shù)為15,采樣頻率96000Hz,截止頻率5000Hz。經(jīng)過Matlab的計算后可以對所設(shè)計的低通FIR濾波器進行分析??梢圆榭礊V波器的幅頻響應(yīng),相頻響應(yīng),群延時,沖擊響應(yīng),階躍響應(yīng),零極點圖等。圖1-5和圖1-6分別顯示了本次設(shè)計的幅頻和相頻響應(yīng),階躍響應(yīng)。從圖1-5中可以看出所設(shè)計的FIR濾波器在通帶范圍內(nèi)有很好的線性相位特性;從圖1-6圖1-4FDATool設(shè)計界面中可以看出沖擊響應(yīng)在低頻到高頻呈現(xiàn)對稱結(jié)構(gòu)。圖1-4FDATool設(shè)計界面圖1-5幅頻和相頻響應(yīng)圖1-5幅頻和相頻響應(yīng)圖1-6沖擊響應(yīng)圖1-6沖擊響應(yīng) 經(jīng)過Matlab量化后得到的系數(shù)為:467299125148167181188188181167148125997246從生成的系數(shù)中可以發(fā)現(xiàn)系數(shù)對稱分布,所以在設(shè)計FIR數(shù)字濾波器中的乘法器時就可以只用設(shè)計一半的乘法器即可。獲取沖擊響應(yīng)系數(shù)后,就可以開始設(shè)計FIR數(shù)字濾波器中的重要元件乘法器。由上述討論可知乘法器的設(shè)計可以由移位器,加減法器來實現(xiàn)。而加法器的個數(shù)則主要決定了乘法器所需資源和對電路速度的影響。當(dāng)輸入信號與固定系數(shù)相乘時,即一個二進制數(shù)與一常數(shù)(也用二級制表示)相乘時,常數(shù)表示成二進制數(shù)中的1的個數(shù)就決定了所需加法器個數(shù)。獲得系數(shù)后所需要做的就是對系數(shù)的二進制碼進行優(yōu)化改進,以減少加法器的個數(shù)。CSD編碼優(yōu)化系數(shù) 本次課程設(shè)計過程中,選擇通過CSD編碼方法來對系數(shù)進行優(yōu)化改進。常規(guī)情況下,乘法器的系數(shù)如果是常數(shù),會進行二進制編碼,從而決定所需加法器個數(shù)。CSD編碼方式就是對普通二進制碼進行重新編碼從而減少非零個數(shù),即減少加法器個數(shù),也就減少了芯片資源的占用,而且還會提高芯片運行的速度和效率。++++++++202223242526125SSignal:S圖1-7常規(guī)二進制法乘法器構(gòu)圖 以上述所得系數(shù)的125為例。FIR數(shù)字濾波器采樣得到一個信號后,對信號模數(shù)轉(zhuǎn)換后,得到一個二進制數(shù),將該二進制數(shù)與125相乘就是乘法器的主要工作。125用二進制表示為:125=1111101=26+25+24+23+22+20,其電路結(jié)構(gòu)如下圖1-7所示。從中可以看出該結(jié)構(gòu)需要使用6個加法器。 從上述乘法器系數(shù)為125的例子可以看出,很顯然這樣的方法會隨著系數(shù)的增大而使加法器顯著增多,這對芯片的使用會占用較多資源,不利于芯片高質(zhì)量、高效率地完成任務(wù)。目前較為流行的方法就是對二進碼進行改進,已達到減少非零數(shù)的個數(shù),從而降低結(jié)構(gòu)的復(fù)雜度。一種有效的方法是用有符號數(shù)字量(SignedDigitNumbers,SD)來表示二進制數(shù)。有符號數(shù)字量表示法與傳統(tǒng)二進制有所不同,它具有三重值(也就是說數(shù)字的值域是{0,1,-1},其中-1經(jīng)常寫成)。 SD表示法應(yīng)用在超前進位加法器或乘法器中已經(jīng)被證明能夠降低復(fù)雜性,這是因為:通常可以通過非零元素的數(shù)量來估計乘法的效率,而應(yīng)用SD表示法可以降低非零元素的數(shù)量。統(tǒng)計表明,數(shù)字的二進制補碼編碼中有一半數(shù)位是零。對于SD編碼而言,零元素的密度增加到三分之二,從而簡化了乘法器的結(jié)構(gòu)。 例如上述的125系數(shù)用SD編碼方式可以表示為: 125=1000001SD=27-22+20;125=111111SD=1111101SD=1011101SD 從例子中可以發(fā)現(xiàn),125的SD編碼有多種方式,并不唯一,而且有些方式并沒有能夠減少非零個數(shù)。因此便需要用CSD(CanonicSignedDigit)編碼方法來對SD編碼進一步優(yōu)化。CSD也就是指具有最少非零個數(shù)的SD編碼。針對于上例,125的CSD編碼就是1000001。其結(jié)構(gòu)圖如圖1-8所示。明顯地可以看到加法器的個數(shù)減少了,只有之前的一半,很顯然可以有效地降低乘法器的復(fù)雜度。--++202227125SSignal:S圖1-8CSD編碼乘法器構(gòu)圖 一個常數(shù)進行二進制編碼后,運用以下方法即可得到CSD編碼。 (1)從最低有效位開始,用10…0取代所有大于2的1序列。此外還需要用110取代1011。(2)從最高有效位開始,用011取代10本次FIR低通濾波器的乘法器的系數(shù)經(jīng)CSD編碼后為:46=11000;72=1001000;99=1100011;125=1000001148=10010100;167=1010100;181=110001;188=1100000;乘法器的具體實現(xiàn) 本次課程設(shè)計的FIR數(shù)字濾波器核心部分就是乘法器的設(shè)計。通過上述分析,已經(jīng)得到乘法器的系數(shù)并對其進行了優(yōu)化,接下來就是對乘法器的具體實現(xiàn)。此次FIR數(shù)字濾波器的設(shè)計使用VHDL語言來實現(xiàn)。 VHDL(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)誕生于1982年。1987年底,VHDL被IEEE和美國國防部確認為標(biāo)準硬件描述語言。自IEEE-1076(簡稱87版)之后,各EDA公司相繼推出自己的VHDL設(shè)計環(huán)境,或宣布自己的設(shè)計工具可以和VHDL接口。1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準的1076-1993版本,簡稱93版。VHDL和Verilog作為IEEE的工業(yè)標(biāo)準硬件描述語言,得到眾多EDA公司支持,在電子工程領(lǐng)域,已成為事實上的通用硬件描述語言。本課程設(shè)計使用Altera公司的QuartusII作為VHDL語言的開發(fā)環(huán)境。 上述分析中可知,F(xiàn)IR數(shù)字濾波器的乘法器是由移位器和加減法器組成的。乘法器的系數(shù)經(jīng)過CSD編碼后可以使得加法器個數(shù)最優(yōu)化。下面以本次設(shè)計的乘法器中系數(shù)為125的乘法器為例來介紹乘法器的具體設(shè)計。 系數(shù)125的乘法器經(jīng)過CSD編碼后,可以使用兩個加法器和一個減法器來實現(xiàn)。信號進入乘法器后,分別乘上27、22、20,也就是相應(yīng)地右移7位,2位和保持原值。接著再對移位后得到的值進行加減運算。主要過程代碼如下圖1-9所示。整個代碼在順序語句Process中完成,中間設(shè)置的變量使用相等位數(shù)為的是使各值位寬相等。在變量前拼接輸入信號最高位,是為了保持值的正負性。設(shè)計乘法器時應(yīng)注意包集的使用,由于是有符號數(shù)之間的算術(shù)運算,所以應(yīng)加入std_logic_arith.all和std_logic_signed.all這兩個包集。乘法器設(shè)計完成后運用圖1-9乘法器主要實現(xiàn)代碼ModelSim進行了功能仿真,從圖1-10可以看出乘法器的設(shè)計符合要求。圖1-9乘法器主要實現(xiàn)代碼圖1-10乘法器功能仿真圖1-10乘法器功能仿真FIR數(shù)字濾波器的整體實現(xiàn) 乘法器的設(shè)計完成也就表明可以開始完整地設(shè)計FIR數(shù)字濾波器。由公式(1-1)可知,F(xiàn)IR數(shù)字濾波器的輸出就是輸入信號與單位沖擊響應(yīng)的卷積,所以需要設(shè)計寄存器對輸入信號進行延時傳輸。上述討論中發(fā)現(xiàn)FIR數(shù)字濾波器的乘法器系數(shù)是對稱分布的,所以可以在將信號乘以沖擊響應(yīng)前,將需要乘以同一系數(shù)的兩信號進行相加,再經(jīng)過乘法器。由公式可知乘法器輸出的值還需進行相加,可針對性的分別設(shè)計加法器。本次課題設(shè)計中,我將所需要到的加法器和乘法器都設(shè)計成元件,并封裝在自制包中。主程序設(shè)計時對自制包中的元件進行調(diào)用,這樣做的好處在于主程序可以使人容易理解。設(shè)計過程中應(yīng)當(dāng)注意中間過程量的位寬設(shè)置應(yīng)做到匹配。還有一點就是FIR數(shù)字濾波器在完成對信號的卷積運算后,其輸出的位寬會超過10位,即無法使用規(guī)定位數(shù)來進行輸出。解決的方法就是對最終輸出信號進行截尾,保留高十位。這樣一來只會使信號的輸出幅度有所衰減,并不會對濾波的功能產(chǎn)生影響。圖1-11RTLViewer 圖1-11RTLViewer設(shè)計過程中可以通過Quartus中的RTLViewer工具對設(shè)計進行分析。從中可以看出VHDL寫出的程序與最初的設(shè)計是否相一致。圖1-11就是本次設(shè)計的RTLViewer。從中可以看到16階的FIR數(shù)字濾波器使用了15個寄存器和8個乘法器,信號進入乘法器之前會進行相加。即輸入序列中沖擊響應(yīng)值相同的會在進入乘法器之前進行相加,以減少乘法器的個數(shù)。之所以只需要15個寄存器,是由于設(shè)計的16階的FIR數(shù)字濾波器的常數(shù)系數(shù)項h(0)=0。分析RTLViewer可以看出FIR數(shù)字濾波器的設(shè)計符合原理,與最初的設(shè)計相符。圖1-12FIR數(shù)字濾波器功能仿真圖1-12FIR數(shù)字濾波器功能仿真FIR數(shù)字濾波器設(shè)計完成后,通過編譯,對比RTLViewer也符合設(shè)計,那么就需要對其進行仿真,以觀察此次設(shè)計是否符合要求。圖1-12即為FIR數(shù)字濾波器的功能仿真圖,主要是來驗證設(shè)計過程中是否有哪些元件是錯誤的,所以可以用一個常數(shù)作為輸入來進行驗證,即相當(dāng)于輸入序列為一矩形序列。由于輸出是經(jīng)過截尾處理的,所以輸出值不能與計算出來的值進行直接比較,可以通過觀察中間值或者對輸出不進行截尾來仿真,都可以驗證設(shè)計的正確與否。驗證仿真結(jié)果的結(jié)論是設(shè)計的FIR數(shù)字濾波器是符合要求的。DDS設(shè)計 FIR數(shù)字濾波器的設(shè)計完成后,需要進行實驗驗證。那么就需要一個信號源來進入數(shù)字濾波器進行驗證。使用模擬信號源不宜控制頻率,難以穩(wěn)定地輸出足夠?qū)挼念l率來對所設(shè)計的FIR數(shù)字濾波器進行驗證。所以本次設(shè)計中選擇使用的是數(shù)字信號源,也就是DDS(DirectDigitalSynthesizer,直接式數(shù)字頻率合成器)。DDS簡介 DDS同DSP(數(shù)字信號處理)一樣,是一項關(guān)鍵的數(shù)字化技術(shù)。與傳統(tǒng)的頻率合成器相比,DDS具有低成本、低功耗、高分辨率和快速轉(zhuǎn)換時間等優(yōu)點,廣泛使用在電信與電子儀器領(lǐng)域,是實現(xiàn)設(shè)備全數(shù)字化的一個關(guān)鍵技術(shù)。DDS中主要包括頻率控制寄存器、高速相位累加器和正弦計算器三個部分。頻率控制寄存器可以串行或并行的方式裝載并寄存用戶輸入的頻率控制碼;而相位累加器根據(jù)DDS頻率控制碼在每個時鐘周期內(nèi)進行相位累加,得到一個相位值;正弦計算器則對該相位值計算數(shù)字化正弦波幅度。DDS輸出的一般是數(shù)字化的正弦波,因此還需經(jīng)過高速D/A轉(zhuǎn)換器和低通濾波器才能得到一個可用的模擬頻率信號。 市面上有專門的DDS芯片,也可以通過FPGA技術(shù)來制作DDS。DDS具有非常優(yōu)越的性能,有著眾多優(yōu)點。DDS頻率分辨率高,輸出頻點多,可達2的N次方個頻點(N為相位累加器位數(shù));頻率切換速度快,可達us量級;頻率切換時相位連續(xù);可以輸出寬帶正交信號;輸出相位噪聲低,對參考頻率源的相位噪聲有改善作用;可以產(chǎn)生任意波形。DDS的制作 本次課程設(shè)計通過VHDL語言和FPGA技術(shù),自行制作DDS來作為信號源,而非選擇現(xiàn)有芯片。DDS的制作包括了相位累加器和存儲正弦波幅度的Rom(只讀存儲器),并沒有設(shè)計頻率控制寄存器,而是設(shè)計了一個步長控制端,通過外部的按鍵獲取讀取Rom的步長值,從而達到改變輸出波形的頻率。 累加器的功能主要是實現(xiàn)對步長的累加從而獲取Rom的地址,從Rom中讀取正弦波幅度值。DDS的輸入端為時鐘端和步長控制端,輸出端為Rom的地址。DDS的輸出頻率由時鐘頻率、步長以及Rom的存儲空間共同決定。具體公式如下式1-3所示。fo 其中,fo為輸出頻率,fc為時鐘頻率,S為步長,R為Rom Rom的制作可以通過多種方法來生成,最重要的步驟就是正弦波形幅度值得獲取。由于QuartusII中自帶Rom,所以設(shè)計中就直接使用軟件中自帶Rom。Rom的初始化的過程中,需要進行mif文件的加載。mif文件中保存的就是正弦波幅度值??梢赃\用C、Matlab等軟件制作mif文件,文件中輸入固定格式后,就將計算的值與地址對應(yīng)放入其中。計算過程主要是將0~2π的正弦波進行一定量等分處理,獲取每一點的幅度值,再進行量化處理,就可以得到所需正弦波幅度值。mif文件制作中需要注意的是地址應(yīng)當(dāng)設(shè)置為無符號數(shù),而計算所得幅度值應(yīng)具有符號,DDS輸出數(shù)據(jù)位寬最好與FIR數(shù)字濾波器的輸入信號位寬相同。本次設(shè)計使用的Rom由matlab生成,地址范圍0~4095(即4k),數(shù)據(jù)位寬為10位有符號數(shù)。DDS的時鐘頻率與FIR數(shù)字濾波器的采樣頻率(96kHz)相同,DDS要達到FIR數(shù)字濾波器的5kHz截止頻率,要在Rom中獲取19.2個點,步長理論值為213.33。所以步長控制端應(yīng)設(shè)置為8位,這樣可使DDS的頻率在24Hz~5.97kHz間變化。用以觀察FIR數(shù)字濾波器是足夠的,當(dāng)然也可以提高步長位數(shù)從而使DDS具有更寬的頻帶。本次設(shè)計就使步長控制端為8位,與開發(fā)板上的8個開關(guān)相連,方便外部操作來改變DDS的輸出頻率。圖1-13DDS波形仿真圖1-13DDS波形仿真 DDS設(shè)計完成后,需要對其進行仿真以驗證DDS能否輸出正弦波。圖1-13為ModelSim的DDS仿真波形。從圖中可以看出當(dāng)相位累加器的步長設(shè)置為1時,DDS能從Rom中讀出所有的存儲值,所形成的波形是較為平滑的正弦波形。改變相位累加器的步長值就可以獲取不同頻率的正弦波。實驗結(jié)果 本次課程設(shè)計主要設(shè)計了FIR數(shù)字濾波器的制作,為了檢測所制作的FIR數(shù)字濾波器的功效,又設(shè)計了DDS來作為信號源產(chǎn)生不同頻率的正弦波,來檢驗低通FIR數(shù)字濾波器的設(shè)計是否成功。圖1-14課程設(shè)計最終原理圖 本次課程設(shè)計所用FPGA芯片為Altera公司的Cyclone系列的EP1C12Q240C8,所用開發(fā)板上具有兩片DA芯片,最終設(shè)計通過這兩片DA芯片輸出模擬波形來對比FIR數(shù)字濾波器濾波前后的波形,便于觀察FIR數(shù)字濾波器的效果。開發(fā)板上的時鐘頻率為48MHz,而設(shè)計的FIR數(shù)字濾波器的采樣頻率為96kHz,所以需要再設(shè)計一個分頻器來獲取所需采樣頻率。分頻器的設(shè)計思想就是設(shè)置一個變量,用來記錄輸入時鐘的脈沖數(shù),當(dāng)達到一定量時,對輸出信號進行翻轉(zhuǎn),從而改變時鐘頻率的效果。本次課程設(shè)計的最終原理圖如圖1-14所示。引腳分配上,輸入引腳有時鐘輸入和步長控制端(8位,與開發(fā)板上開關(guān)相連),輸出引腳有兩路DA模式段,DA時鐘端,還有兩路信號輸出端,分別是輸出DDS的波形,和FIR濾波器后的波形。各模塊的時鐘都采用分頻器輸出的采樣時鐘。圖1-14課程設(shè)計最終原理圖圖1-15通帶內(nèi)濾波前后波形對比 圖1-15通帶內(nèi)濾波前后波形對比圖1-16阻帶內(nèi)濾波前后波形對比圖1-16阻帶內(nèi)濾波前后波形對比設(shè)計完成后,將程序編譯,燒寫至開發(fā)板中,經(jīng)示波器觀察可以看到FIR數(shù)字濾波器濾波前后的波形對比,圖1-15和圖1-16分別是信號頻率在設(shè)計的低通FIR數(shù)字濾波器通帶內(nèi)和阻帶內(nèi)的波形情況。從圖中和實驗時的示波器中可以觀察到,信號頻率在通帶內(nèi)時,輸出波形一直維持相同幅度,信號頻率在阻帶內(nèi)時,輸出波形有明顯衰減。濾波器輸出波形的幅度值遠低于DA參考電壓是由于濾波器輸出的數(shù)據(jù)經(jīng)過截尾操作。實驗改進分析本次課程設(shè)計的實驗結(jié)果基本上到達了最初的設(shè)計要求,當(dāng)然從實驗現(xiàn)象上也可以發(fā)現(xiàn)還是有很多的不足之處,比如DDS生成的波形不夠平滑,還有就是最初設(shè)計低通濾波器的參數(shù)時,沒有進行嚴謹?shù)挠嬎?,?dǎo)致后面實驗觀察波形時,無法通過按鍵調(diào)整步長使其恰好達到截止頻率。還有一點就是通過示波器輸出的DDS波形來看,其幅度值竟然比濾波后的波形幅值還小,這是很不合理的。 針對上述實驗中出現(xiàn)的問題,可以運用一些方案來進行改進。針對DDS輸出的波形不夠平滑,可以通過提高采樣頻率和擴充Rom的量化位數(shù)來進行改進,當(dāng)然如果是針對截止頻率處的波形不平滑,則主要是通過提高采樣頻率,使其可以在截止頻率處從Rom中讀取盡可能多的點(最少20個點)來保持正弦波的大致波形。提高Rom的量化位數(shù)也可以使波形更為光滑,但是由于最終是通過DA來觀察波形,所以光提高Rom的量化位數(shù)是不起作用的,除非更換更高位數(shù)的DA芯

溫馨提示

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

最新文檔

評論

0/150

提交評論