畢業(yè)論文-基于FPGA數(shù)字信號(hào)音頻處理_圖文_第1頁
畢業(yè)論文-基于FPGA數(shù)字信號(hào)音頻處理_圖文_第2頁
畢業(yè)論文-基于FPGA數(shù)字信號(hào)音頻處理_圖文_第3頁
畢業(yè)論文-基于FPGA數(shù)字信號(hào)音頻處理_圖文_第4頁
畢業(yè)論文-基于FPGA數(shù)字信號(hào)音頻處理_圖文_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于FPGA 數(shù)字信號(hào)音頻處理The Digital Signal Processing of audio based on FPGA摘 要:目前,隨著電子技術(shù)的快速發(fā)展人們對(duì)MP3多媒體播放器、DVD 音頻唱盤、Iphone 等的音質(zhì)、體積、功耗和處理速度有了更多更高要求。因此現(xiàn)在數(shù)字音頻處理技術(shù)已經(jīng)逐漸取代模擬音頻處理技術(shù),并且得到了迅速的普及應(yīng)用。音頻處理的數(shù)字化是利用數(shù)字濾波算法對(duì)采集的音頻信號(hào)進(jìn)行變換處理來實(shí)現(xiàn),對(duì)此在本文中介紹了數(shù)字濾波器的一些算法。傅里葉變換(DFT )作為其數(shù)字信號(hào)處理中的基本運(yùn)算,發(fā)揮著重要作用。特別是可快速傅里葉變換換(FFT )算法的提出,減少了當(dāng)N 很大

2、的時(shí)候DFT 的運(yùn)算量,使得數(shù)字信號(hào)處理的實(shí)現(xiàn)與應(yīng)用變得更加容易。由于快速傅里葉變換算法在實(shí)際中得到了廣泛應(yīng)用,畢業(yè)設(shè)計(jì)給出了基-2FFT 原理、討論了按時(shí)間抽取FFT 算法的特點(diǎn)。本文主要探討了基于FPGA 數(shù)字信號(hào)音頻處理的理論與實(shí)現(xiàn),涉及到了其結(jié)構(gòu)與設(shè)計(jì)流程、硬件描述語言(VHDL )、Quartus II軟件、音頻錄放、DE2開發(fā)板介紹等等。關(guān)鍵詞:音頻處理技術(shù)、 數(shù)字濾波 、算法、FPGAAbstractAt present,with the rapid development of the electronic technology,people have many higher

3、requirements such as sound quality,volume,power waste and processing speed to the MP3 multimedia,DVD audio disc,Iphone and so on.So nowadays,the analog audio processing technology is replaced gradually by the digital audio processing technology,and digital audio processing technology has a chance to

4、 become common and widely used.The audio processing digitization is using the digital filter algorithm to sample.In the part of this passage there are some introduction about the digital filter algorithm. DFT plays an important part in digital signal processing as a basic calculation.Especially,FFT

5、algorithm reduces the calculation quantity when N is a little great ,which makes it much easier for implement and application.As the fast Fourier transform algorithm in practice to a wide range of applications ,radix-2 FFT theory has been given out and the characteristic of DIT FFT are discussed in

6、the design of graduation.The passage mainly probes into the theories and realization of the digital signal processing of audio based on FPGA(Field Programmable Gate Array,including its structure and processing of design.It also contains VHDL ,Quartus II software ,audio record and broadcast,introduct

7、ion of DE2 study board and so on.Keywords:audio processing technology、digital filter、algorithm 、FPGA前言第一章 緒論1.1音頻處理技術(shù)概述在科技飛速發(fā)展的數(shù)字化時(shí)代,數(shù)字音頻技術(shù)是數(shù)字信號(hào)處理中應(yīng)用最為廣泛的數(shù)字技術(shù)之一。同時(shí)大規(guī)模集成電路VLSI (Large Scale Integrated circuites )的迅猛發(fā)展對(duì)數(shù)字音頻技術(shù)發(fā)展也起到促進(jìn)作用,芯片集成度越高,VSLI 設(shè)計(jì)技術(shù)不斷提高使得數(shù)字新品技術(shù)得到更加廣泛的作用。對(duì)音頻信號(hào)進(jìn)行數(shù)字處理的有關(guān)技術(shù),包括模數(shù)和數(shù)模的轉(zhuǎn)化、數(shù)

8、據(jù)的傳輸、記錄、存儲(chǔ)、混合及其他的處理技術(shù)等。數(shù)字音頻技術(shù)的主要有點(diǎn)事能提高音頻信號(hào)的質(zhì)量,增強(qiáng)抗干擾能力,而且數(shù)字音頻信號(hào)設(shè)備使用靈活,便于大規(guī)模生產(chǎn)。1.2 FPGA簡(jiǎn)介FPGA是英文Field Programmable Gate Array的縮寫,即現(xiàn)場(chǎng)可編程門陣列,它是在PAL 、GAL 、CPLD 等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC )領(lǐng)域中的一中半定制電路而實(shí)現(xiàn)的,它既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。它是當(dāng)今數(shù)字系統(tǒng)設(shè)計(jì)的主要硬件平臺(tái),其主要特點(diǎn)就是完全有用戶通過軟件進(jìn)行配置和編程,從而完成某種特定功能,且可以反復(fù)擦

9、寫。在修改和升級(jí)時(shí),不需額外地改變PCB 電路板,只是在計(jì)算機(jī)上修改和更新程序,使硬件設(shè)計(jì)工作成為軟件開發(fā)工作,縮短了系統(tǒng)設(shè)計(jì)的周期,提高了實(shí)現(xiàn)的靈活性并降低了成本,因此獲得了廣大硬件工程師的青睞。1.2.1 FPGA結(jié)構(gòu)FPGA 的基本結(jié)構(gòu)由以下幾部分構(gòu)成:1)可編程邏輯功能模塊CLB (Configurable Logic Block) 2)可編程輸入輸出模塊IOB(Input/Output Blocks 3) 可編程內(nèi)部互聯(lián)資源PI(Programmable Interconnection隨著工藝的進(jìn)步和應(yīng)用系統(tǒng)的需求,一般在FPGA 中還包含以下可選資源:4)存儲(chǔ)器資源(Block R

10、AM和Select RAM 5)數(shù)字時(shí)鐘管理單元(DCM分頻、倍頻、數(shù)字延遲 6)I/O多電平標(biāo)準(zhǔn)兼容(Select I/O 7)算數(shù)運(yùn)算單元(乘法器、加法器 8)特殊功能模塊(MAC 等硬件IP 核) 9) 微處理器(PPC405等應(yīng)處理器)FPGA是由存放在片內(nèi)RAM 中的程序來設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的RAM 進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。 加電時(shí),F(xiàn)PGA 芯片將EPROM 中數(shù)據(jù)讀入片內(nèi)編程RAM 中,配置完成后,F(xiàn)PGA 進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA 恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA 能夠反復(fù)使用。FPGA 的編程無需專用的

11、FPGA 編輯器,只需用通用的EPROM 、PROM 編程器即可。當(dāng)需要修改FPGA 功能時(shí),只需換一片EPROM 即可。這樣,同一片F(xiàn)PGA ,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA 使用非常靈活。與FPGA 對(duì)應(yīng)的還有DSP 處理器,DSP 處理器速度雖然很快,并對(duì)許多DSP 應(yīng)用來說很有用,但仍有一些應(yīng)用要求性能更進(jìn)一步提升,而FPGA 提供了更高的性能。FPGA 可以生成一個(gè)定制硬件設(shè)計(jì),從而控制邏輯能夠在硬件中實(shí)現(xiàn),不必再利用精確的時(shí)鐘周期來實(shí)現(xiàn)控制功能。此外,通過裁剪硬件結(jié)構(gòu),F(xiàn)PGA 可以提高額外的性能。如果最重要的設(shè)計(jì)考慮因素是速度,那么可以在FPGA 中設(shè)計(jì)完

12、全并行的算法處理方案?,F(xiàn)在,許多系統(tǒng)已經(jīng)包含了一個(gè)FPGA ,用于協(xié)議轉(zhuǎn)換、膠合邏輯或一些其它系統(tǒng)功能。如果那個(gè)FPGA 沒有被完全利用,那么把DSP 功能加入其中可以為系統(tǒng)節(jié)約成本。而且如果標(biāo)準(zhǔn)發(fā)生改變,使用FPGA 就不會(huì)有任何風(fēng)險(xiǎn)。FPGA 的配置文件能夠像軟件那樣升級(jí),盡管它們必須被存儲(chǔ)在系統(tǒng)的非易失性的存儲(chǔ)器中。1.2.2 FPGA與CPLDCPLD 是基于ROM 結(jié)構(gòu)的下電后代碼不丟失;而FPGA 是基于RAM 結(jié)構(gòu)的,下電后代碼丟失,所以FPGA 一般必須有一個(gè)配置ROM 在每次上電時(shí)加載代碼到RAMCPLD 的硬件設(shè)計(jì)比較簡(jiǎn)單,F(xiàn)PGA 的硬件設(shè)計(jì)相對(duì)復(fù)雜些。而這制造工藝上的差

13、別也導(dǎo)致了它們內(nèi)部結(jié)構(gòu)的不同,CPLD 的邏輯資源不可能做的太大,而FPGA 卻能做到數(shù)萬乃至數(shù)百萬邏輯門。CPLD 更適合于一些簡(jiǎn)單的應(yīng)用,而FPGA 可以做更多更復(fù)雜的工作。1.2.3 FPGA發(fā)展前景目前,F(xiàn)PGA 的主要發(fā)展動(dòng)向是:隨著大規(guī)?,F(xiàn)場(chǎng)可編程邏輯器件的發(fā)展,系統(tǒng)設(shè)計(jì)進(jìn)入“片上可編程系統(tǒng)”(SOPC )的新紀(jì)元芯片朝著高密度、低壓、低功耗方向挺進(jìn);芯片朝著高密度、低功耗、低壓等方向前進(jìn);國(guó)際各大公司都在積極擴(kuò)充其IP 庫,以優(yōu)化的資源更好的滿足用戶需求,擴(kuò)大市場(chǎng),特別是引人注目的FPGA 動(dòng)態(tài)可重構(gòu)技術(shù)的開拓,將推動(dòng)數(shù)字系統(tǒng)設(shè)計(jì)觀念的巨大轉(zhuǎn)變。第二章FPGA 架構(gòu)2.1 FPG

14、A設(shè)計(jì)流程2.1.1 FPGA設(shè)計(jì)流程一般來說,完整的FPGA 設(shè)計(jì)流程包括電路設(shè)計(jì)與輸入,功能仿真、綜合、綜合后仿真、實(shí)現(xiàn)、布線后仿真與驗(yàn)證、班級(jí)仿真驗(yàn)證與調(diào)試等主要步驟。如圖2-1所示: 圖2-1 FPGA的設(shè)計(jì)流程(1系統(tǒng)規(guī)范系統(tǒng)規(guī)范階段是整個(gè)項(xiàng)目最有創(chuàng)造性的階段。它描述項(xiàng)目完成的功能,確定設(shè)計(jì)的總體方案,平衡各個(gè)方面的因素,對(duì)整個(gè)項(xiàng)目有一個(gè)初步的規(guī)劃。在系統(tǒng)設(shè)計(jì)階段,根據(jù)對(duì)設(shè)計(jì)面積、功耗、I/O和IP 核使用等的估算,確定所使用的目標(biāo)芯片和設(shè)計(jì)工具。(2)模塊設(shè)計(jì)在制定完系統(tǒng)規(guī)范后,根據(jù)系統(tǒng)功能,采用自頂向下的方法,逐步細(xì)化,將系統(tǒng)劃分為可實(shí)現(xiàn)的設(shè)計(jì)模塊。這些模塊之間存在著一定的層次關(guān)

15、系,每個(gè)模塊完成相對(duì)獨(dú)立的功能。(3)設(shè)計(jì)輸入設(shè)計(jì)輸入是指將模塊設(shè)計(jì)階段定義好的模塊借助于一定的設(shè)計(jì)輸入手段轉(zhuǎn)換為EDA 工具能接受的信息格式。目前主要的而設(shè)計(jì)輸入手段有:高級(jí)硬件描述語言HDL (包括Verilog/VHDL)和原理圖。HDL 語言支持不同層次的描述,不依賴于FPGA 產(chǎn)家的工藝器件,便于修改。它可以用任意的文本編輯器作為輸入平臺(tái),在狀態(tài)機(jī)、控制邏輯、總線功能方面較強(qiáng)。原理圖輸入法具有圖形化強(qiáng)、直觀等特點(diǎn)。(4)功能仿真設(shè)計(jì)輸入后,經(jīng)HDL 編譯器檢查沒有語法錯(cuò)誤后,就可以對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證了。這里的驗(yàn)證是指通過軟件驗(yàn)證其功能是否符合有步驟1所制訂的規(guī)范,稱這一階段的驗(yàn)證為功能仿

16、真或行為仿真。目前,仿真工具比較多,其中Cadence 公司的NC-verilog ,Synopsys 公司的VCS 和Mentor 公司的Modelsim 都是業(yè)界廣泛應(yīng)用的仿真工具。(5)綜合綜合實(shí)際上是根據(jù)設(shè)計(jì)功能和實(shí)現(xiàn)該設(shè)計(jì)的約束條件(如面積、速度、功耗和成本等),將設(shè)計(jì)描述(如HDL 文件,原理圖等)變換成滿足要求的電路設(shè)計(jì)方案,該方案必須同時(shí)滿足預(yù)期的功能和約束條件。對(duì)于綜合來說,滿足要求的方案可能有多個(gè),綜合其將產(chǎn)生一個(gè)最優(yōu)的或接近最優(yōu)的結(jié)果。因此,綜合黨的過程也就是設(shè)計(jì)目標(biāo)的優(yōu)化過程,最后獲得的結(jié)構(gòu)域綜合其的性能有關(guān)。這個(gè)階段產(chǎn)生網(wǎng)表,供布局布線使用,網(wǎng)表中包含了目標(biāo)器件中的邏

17、輯元件和互連的信息。FPGA 綜合工具有Synopsys 公司的Compiler II FPGA,Synplicity公司的Synplify 等。(6)布局布線這一步驟就是要完成時(shí)限方案(網(wǎng)表)到實(shí)際目標(biāo)器件(FPGA )的變換。根據(jù)設(shè)計(jì)者指定的約束條件(如面積、延時(shí)、時(shí)鐘等)目標(biāo)器件的結(jié)構(gòu)資源和工藝特征,將電路方案中的邏輯元件分解布局,用作拜拓?fù)淦骷倪B線資源,實(shí)現(xiàn)布線連接。在布局布線過程中,時(shí)序信息形成產(chǎn)生反標(biāo)注文件,供給后續(xù)的時(shí)序仿真使用,同時(shí)還產(chǎn)生FPGA 配置時(shí)需要哦的位流文件。FPGA 設(shè)計(jì)中的布局布線工具主要有FPGA 產(chǎn)商提供,種類比較多,我們主要使用Altera 公司的Qua

18、rtus II 集成環(huán)境中自帶的布局布線工具。(7)時(shí)序驗(yàn)證在布局布線后,提取有關(guān)的器件延遲、連線延時(shí)等時(shí)序參數(shù)(這些信息在反標(biāo)注文件中),在此基礎(chǔ)上的仿真稱為后仿真,也稱時(shí)序驗(yàn)證,它是接近真實(shí)器件運(yùn)行的仿真。時(shí)序驗(yàn)證的目的是為了檢查設(shè)計(jì)中是否有時(shí)序上的違規(guī)。FPGA 中同步電路的驗(yàn)證采用靜態(tài)時(shí)序分析實(shí)現(xiàn),異步電路的驗(yàn)證則需要運(yùn)行特殊仿真激勵(lì)確認(rèn)。仿真工具可以用前仿真所用的工具,而靜態(tài)時(shí)序分析工具一般也有各個(gè)FPGA 產(chǎn)家的FPGA 集成環(huán)境自帶。(8)配置下載配置下載是在功能仿真與時(shí)序仿真正確的前提下,將布局布線后形成的位流文件通過下載工具下載到具體的額FPGA 芯片中,這個(gè)過程也叫FPPG

19、A 編程(配置)。將位流文件下載到FPGA 器件內(nèi)部后,就可以將FPGA 和其他芯片構(gòu)成的系統(tǒng)進(jìn)行物理測(cè)試,當(dāng)?shù)玫秸_的測(cè)試結(jié)果后就證明了設(shè)計(jì)的正確性。下載軟件也是由各個(gè)FPGA 產(chǎn)家提供。2.1.2 自頂向下和自底向上的設(shè)計(jì)方法學(xué)隨著微電子技術(shù)的快速發(fā)展,深亞微米的工藝可以是一個(gè)芯片集成數(shù)以千萬乃至是億只的晶體管,單片上就可以實(shí)現(xiàn)復(fù)雜系統(tǒng),即所謂的片上系統(tǒng)。在這種情況下,傳統(tǒng)的自底向上的設(shè)計(jì)方法學(xué)已經(jīng)不可能適應(yīng)現(xiàn)在的設(shè)計(jì)要求,而自頂向下的設(shè)計(jì)方法學(xué)已經(jīng)過成為設(shè)計(jì)界的主流方法學(xué)。在EDA 工具出現(xiàn)以前,人們采用自底向上的而設(shè)計(jì)方法設(shè)計(jì)集成電路。在這種設(shè)計(jì)方法學(xué)中,功能設(shè)計(jì)是自頂向下的,即提出所

20、設(shè)計(jì)電路要完成的功能,然后進(jìn)行行為級(jí)描述,RTL 級(jí)設(shè)計(jì)、邏輯設(shè)計(jì)和版圖設(shè)計(jì)。工具的實(shí)現(xiàn)過程則正好相反,從最底層的版圖開始,然后是邏輯設(shè)計(jì),直到完成所需實(shí)現(xiàn)的功能。 這種設(shè)計(jì)方法的缺點(diǎn)是:效率低,設(shè)計(jì)周期長(zhǎng),設(shè)計(jì)質(zhì)量難以保證,適用于小規(guī)模的電路設(shè)計(jì)。自頂向下的設(shè)計(jì)方法學(xué)是和EDA 工具同步發(fā)展起來的額,借用于EDA 工具可以實(shí)現(xiàn)從高層次到低層次的變換,無論是功能設(shè)計(jì)和具體實(shí)現(xiàn)都是自頂向下。FPGa 設(shè)計(jì)流程就是典型的自頂向下設(shè)計(jì)方法學(xué)的體現(xiàn)。在這個(gè)設(shè)計(jì)流程中,設(shè)計(jì)人員從制定系統(tǒng)的規(guī)范開始,依次進(jìn)行系統(tǒng)級(jí)設(shè)計(jì)和驗(yàn)證、模塊級(jí)設(shè)計(jì)和驗(yàn)證、設(shè)計(jì)綜合和驗(yàn)證、布局布線和時(shí)序驗(yàn)證,最終在載體上實(shí)現(xiàn)所設(shè)計(jì)的系

21、統(tǒng)。 自頂向下的設(shè)計(jì)方法學(xué)的優(yōu)點(diǎn)是顯而意見的,在整個(gè)設(shè)計(jì)過程中,借助于EDA 仿真工具可以及時(shí)發(fā)現(xiàn)每個(gè)設(shè)計(jì)環(huán)節(jié)的錯(cuò)誤,進(jìn)行修正,最大限度地不把錯(cuò)誤帶入到后續(xù)的設(shè)計(jì)環(huán)節(jié)中。另外,由于在自頂向下的設(shè)計(jì)方法學(xué)中用的硬件描述語言作為設(shè)計(jì)輸入,改變了傳統(tǒng)的電路設(shè)方法,是EDA 技術(shù)的而一次巨大進(jìn)步。它可以在系統(tǒng)級(jí)、行為級(jí)、寄存器傳輸級(jí)、邏輯級(jí)和開關(guān)級(jí)等五個(gè)不同的抽象層次上描述電路。由于擺脫了門級(jí)電路實(shí)現(xiàn)細(xì)節(jié)的束縛,因而設(shè)計(jì)人員可以把精力集中于系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方案上,一旦方案成熟,那么就可以以較高層次描述的形式輸入計(jì)算機(jī),由EDA 工具自動(dòng)完成整個(gè)設(shè)計(jì)。這種方法大大縮短了產(chǎn)品的研制周期,極大地提高了設(shè)計(jì)的

22、效率和產(chǎn)品的可靠性。目前的FPGA 設(shè)計(jì)一般采用Top-down (自頂向下)的設(shè)計(jì)方法。先將系統(tǒng)劃分為各個(gè)功能子模塊,在系統(tǒng)級(jí)層次上進(jìn)行行為描述,在對(duì)這些子模塊進(jìn)行進(jìn)一步的行為描述。2.1.3基于IP 核的設(shè)計(jì)由于芯片的集成度變得越來越高,因而設(shè)計(jì)的難度也變得越來越大。設(shè)計(jì)成 本事實(shí)上主導(dǎo)了芯片的價(jià)格。如何提高設(shè)計(jì)效率,最大限度縮短設(shè)計(jì)周期,使產(chǎn)品快速上市,這給設(shè)計(jì)人員提出了非常高的要求。采用他人的成功設(shè)計(jì)是解決這個(gè)問題的有效方法。所謂設(shè)計(jì)重用實(shí)際上包含兩個(gè)方面的內(nèi)容:設(shè)計(jì)資料重用和生成可被他人重用的設(shè)計(jì)資料。前者通常被稱為IP 重用,而后者則涉及到如何去生成IP 核。設(shè)計(jì)資料內(nèi)不僅僅包含一

23、些物理功能和技術(shù)特征,更重要的是包含了設(shè)計(jì)者的創(chuàng)新性思維,具有很強(qiáng)的知識(shí)內(nèi)涵。這些資料因而也被稱為具有知識(shí)產(chǎn)權(quán)的內(nèi)核(Intellectual Property Core ),簡(jiǎn)稱IP 核,它們通??梢詫?shí)現(xiàn)比較復(fù)雜的功能,且已經(jīng)經(jīng)過驗(yàn)證,可以被設(shè)計(jì)人員直接使用。一般說來,IP 核有三種表現(xiàn)形式:軟核(Soft-Core )、固核(Firm-Core )和硬核(Hard-Core )。(1)軟核:它以硬件描述語言Verilog 或VHDL 語言代碼的形式存在,軟核功能的驗(yàn)證通常是通過時(shí)序模擬。軟核不依賴于任何實(shí)現(xiàn)工藝或?qū)崿F(xiàn)技術(shù),具有很大的靈活性。設(shè)計(jì)者可以方便地將其映射到自己所使用的工藝上去,可

24、適用性很高。(2)硬核:它以集成電路版圖(Layout )的形式提交,并經(jīng)過實(shí)際工藝流片驗(yàn)證。顯然,硬核強(qiáng)烈地依賴于某一個(gè)特定的實(shí)現(xiàn)工藝,而且在具體的物理尺寸,物理形態(tài)及性能上具有不可更改性。(3)固核:處于軟核和硬核之間的固核以電路網(wǎng)表(Netlist 的形式提交,并且通常采用硬件進(jìn)行驗(yàn)證。硬件驗(yàn)證的方式有很多種,比如可以采用可編程器件(如FPGA 、CPLD )進(jìn)行驗(yàn)證,采用硬件仿真器(Hardware Eulator)進(jìn)行驗(yàn)證等。不同的FPGA 產(chǎn)商在其不同的FPGA 系統(tǒng)中都具有嵌入式的IP 核,這些核可能是硬核(如鎖相環(huán)),也可能是可配置的軟核。用戶可以根據(jù)設(shè)計(jì)的需求,直接使用這些I

25、P 核,借助一這些IP 核,用戶可以加快設(shè)計(jì)進(jìn)度,提高設(shè)計(jì)效率和設(shè)計(jì)可靠性。2.2 FPGA開發(fā)工具在FPGA 的設(shè)計(jì)中,比較流行事業(yè)以下工具:(1) 用Timing Designer畫時(shí)序圖。(2) 用Ultra Edit進(jìn)行文本編輯。(3) 用Modelsim 、Verilog-XL 等仿真器進(jìn)行功能仿真/時(shí)序仿真。(4) 用Synplify 、Synplify Pro進(jìn)行邏輯綜合,還有另外一些邏輯綜合器,如Leonardo Spectrum、FPGA Express/FPGA compiler等。(5) 用集成的FPGA 產(chǎn)生工具進(jìn)行布局布線,是旗艦而定。主要有:Altera 的Max+

26、PlusII、QuartusII 、Xilinx 的Foundation 、Alliance 、ISE 等軟件。2.2 FPGA設(shè)計(jì)原則在FPGA 設(shè)計(jì)中,有許多重要的原則和規(guī)律可循,掌握這些原則和規(guī)律,人們可以設(shè)計(jì)出許多高性能的電子系統(tǒng)。(1)硬件原則硬件原則主要針對(duì)HDL 代碼編寫而言。硬件描述語言,它通過 對(duì)硬件的抽象,最終實(shí)現(xiàn)在芯片內(nèi)部的實(shí)際電路。因此評(píng)判一段HDL 代碼的優(yōu)劣的最終標(biāo)準(zhǔn)是:其描述并實(shí)現(xiàn)的硬件電路的性能(主要是面積和速度)。評(píng)價(jià)一個(gè)涉及到代碼水平,主要從設(shè)計(jì)工程師所構(gòu)想的硬件實(shí)現(xiàn)方案的效率以及合理性來分析。(2系統(tǒng)原則一個(gè)硬件系統(tǒng),通過何種方式進(jìn)行模塊劃分與任務(wù)分配,使

27、用算法和實(shí)現(xiàn)功能,以及FPGA 的規(guī)模故事、數(shù)據(jù)接口等,具體到FPGA 的設(shè)計(jì)就要求對(duì)設(shè)計(jì)的全局有個(gè)宏觀的合理安排。一般說來實(shí)時(shí)性要求高、頻率快、功耗小的功能模塊適合使用CPLD 實(shí)現(xiàn)。而FPGA 與CPLD 相比,更適合實(shí)現(xiàn)規(guī)模較大、頻率較高、寄存器資源使用較多的設(shè)計(jì)。(3面積和速度點(diǎn)的平衡與互換原則這是在進(jìn)行FPGA 設(shè)計(jì)是的一個(gè)重要原則。這里“面積”是指一種設(shè)計(jì)所要消耗的FPGA/CPLD的邏輯資源的數(shù)量,對(duì)于FPGA 可以用所消耗的觸發(fā)器(FF )和查找表(LUT )來衡量,更一般的衡量方式可以用設(shè)計(jì)所占用的等價(jià)邏輯門數(shù)。“速度”是指設(shè)計(jì)在芯片上穩(wěn)定運(yùn)行,所能夠達(dá)到的最高頻率,這個(gè)頻率

28、由設(shè)計(jì)的時(shí)序狀況決定,和設(shè)計(jì)滿足的時(shí)鐘周期,時(shí)鐘建立時(shí)間(Clock Setup Time ), 時(shí)鐘保持時(shí)間(Clock Hold Time)等總眾多時(shí)序特征量密切相關(guān)。面積和速度是對(duì)立的矛盾體。要求一個(gè)設(shè)計(jì)同時(shí)具備運(yùn)行頻率最高而且面積最小是不現(xiàn)實(shí)的。科學(xué)的設(shè)計(jì)方法是在滿足設(shè)計(jì)時(shí)序要求的前提下,占用最小芯片面積?;蛘咴谒?guī)定的面積下,頻率更高。這兩種目標(biāo)充分體現(xiàn)了面積和速度的平衡思想。相比之下,滿足時(shí)序、工作頻率的要求更重要,當(dāng)兩者沖突時(shí),采用速度優(yōu)先的準(zhǔn)則。(4同步設(shè)計(jì)原則采用同步時(shí)序設(shè)計(jì)是FPGA 設(shè)計(jì)的一個(gè)重要原則。它可以使講臺(tái)時(shí)序分析變得簡(jiǎn)單而且可靠,能有效避免毛刺的影響,是設(shè)計(jì)更加

29、有效,還可以減小環(huán)境對(duì)芯片的影響。在遵循這一原則的時(shí)候,應(yīng)盡可能的在設(shè)計(jì)中使用統(tǒng)一時(shí)鐘,時(shí)鐘走全局網(wǎng)絡(luò),同時(shí)避免使用混合時(shí)鐘采樣數(shù)據(jù)。2.3 FPGA開發(fā)語言23.1 VHDL簡(jiǎn)介硬件描述語言VHDL(Very High Speed Integrated Cicruit Hardware Description Labguage是一種用于設(shè)計(jì)電子系統(tǒng)的計(jì)算機(jī)語言,他用軟件編程的方式來描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式。與傳統(tǒng)的門級(jí)描述方式相比,它更適合與大規(guī)模集成電路系統(tǒng)設(shè)計(jì)。VHDL 是隨著可編程邏輯器件(PLD )的發(fā)展而發(fā)展起來的一種硬件描述語言,在電子工程領(lǐng)域,已成為通用硬件描

30、述語言。VHDL 主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。處理含有許多具有硬件特征的語句外,VHDL 的語言形式和描述風(fēng)格與句法和一般的計(jì)算機(jī)高級(jí)語言十分相似。利用VHDL 語言設(shè)計(jì)數(shù)字系統(tǒng)硬件設(shè)計(jì)電路,與傳統(tǒng)的數(shù)字系統(tǒng)硬件設(shè)計(jì)方法相比,具有以下特點(diǎn):1. 電路設(shè)計(jì)合理,節(jié)約資源;2. 采用自頂而下設(shè)計(jì)方法;3. 降低了硬件電路的設(shè)計(jì)難度;4.VHDL 語言可以與工藝無關(guān)編程;5. 實(shí)現(xiàn)方便。2.3.2 AHDL簡(jiǎn)介AHDL(Altera HDL )是ALTERA 公司自主發(fā)明的HDL, 用于描述數(shù)字邏輯的硬件描述語言,類似VHDL 和 Verilog HDL ,主要與MAX+PLUSI

31、I完美結(jié)合,特點(diǎn)是非常易學(xué)易用,學(xué)過高級(jí)語言的人可以在很短的時(shí)間內(nèi)掌握它 。它的缺點(diǎn)是移植性不好,通常只用于ALTERA 自己的開發(fā)系統(tǒng)。24 FPGA開發(fā)環(huán)境24.1 Quartus IIQuartus II是Altera 公司的綜合PLD 開發(fā)軟件,支持原理圖、VHDL 、VerilogHDL 以及AHDL 等多種設(shè)計(jì)輸入形式,內(nèi)嵌自由的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD 設(shè)計(jì)流程。他可以在XP 、Linux 以及Unix 上使用,除了可以使用Tel 腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式,具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。 Quar

32、tus II支持Altera 的IP 核,包含了LMP/MegaFunction宏功能模塊,使用戶可以充分利用成熟的模塊,簡(jiǎn)化設(shè)計(jì)的復(fù)雜性,加快設(shè)計(jì)速度。對(duì)第三方EDA 工具的良好支持也是用戶可以再設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA 工具。此外,Quartus II通過DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP 應(yīng)用系統(tǒng),它支持Altera 的片上可編程(SOPC )卡挨罰,集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。MAX+PLUS II作為Altera 的上一代PLD 設(shè)計(jì)軟件,由于其出色的易用性而得到了

33、廣泛的應(yīng)用。目前Altera 已經(jīng)停止對(duì)MAX+PLUS II 的更新支持,Quartus II 與之相比不僅僅是支持齊家安型的豐富和圖形界面的改變,集成了SOPC 和HardCopy 設(shè)計(jì)流程,并且集成了MAX+PLUSII友好的圖形界面及簡(jiǎn)便的使用方法。 Quartus II作為一種可編程邏輯的設(shè)計(jì)環(huán)境,由于其強(qiáng)大的設(shè)計(jì)能力和直觀一樣的接口,越來越受到數(shù)字系統(tǒng)設(shè)計(jì)者的歡迎。圖2-3為Quartus II 設(shè)計(jì)界面。 圖2-3 Quartus II設(shè)計(jì)主界面Quartus II 具有工作群組的設(shè)計(jì)環(huán)境、EDA 整合、先進(jìn)的編譯綜合特性和突破臨界的驗(yàn)證環(huán)境,使設(shè)計(jì)能完善、有效地支持百萬邏輯門的

34、設(shè)計(jì)和驗(yàn)證。其主要特性如以下:(1)可利用原理圖、結(jié)構(gòu)圖、Verilog HDL、VHDL 和AHDL 硬件描述語言完成邏輯電路的描述和編輯,以及芯片(電路)平面布局布線編輯。(2)功能強(qiáng)大的邏輯綜合工具,并提供了RTL 查看器。(3)完備的電路功能仿真與時(shí)序邏輯仿真工具。(4)具有定時(shí)/時(shí)序分析與關(guān)鍵路徑的延時(shí)分析。(5)LogicLock 增量設(shè)計(jì)方法,在漸進(jìn)式編譯流程中,設(shè)計(jì)者可建立并優(yōu)化設(shè)計(jì)系統(tǒng),然后添加對(duì)原始系統(tǒng)性能影響較小或沒有影響的后續(xù)模塊。(6)可使用SignalTapII 邏輯分析工具進(jìn)行嵌入式的邏輯分析。(7)支持軟件源文件的添加、創(chuàng)建、將它們連接起來生成編程文件。(8)自

35、動(dòng)定位編譯錯(cuò)誤,提供高效的器件編程與驗(yàn)證工具。(9)引入了功率分析和優(yōu)化套件PowerPlay 技術(shù),可詳細(xì)估算靜態(tài)和動(dòng)態(tài)功率。(10)新的實(shí)時(shí)和時(shí)序分析功能,分析控制時(shí)鐘斜移和數(shù)據(jù)斜移。(11)SOPC Builder多時(shí)鐘域支持。(12)RTL-to-Gates 形式驗(yàn)證。Altera 的 Quartus II 課編程邏輯軟件屬于第四代PLD 開發(fā)平臺(tái)。該平臺(tái)支持一個(gè)工作換今后下的設(shè)計(jì)要求,其中包括支持基于Internet 協(xié)作設(shè)計(jì)。Quartus 平臺(tái)與Cadence 、Exemplar Logic、Mentor Graphics、Synplicity 等EDA 供應(yīng)商的開發(fā)工具箱兼容,

36、改進(jìn)了軟件的Logic Lock模塊設(shè)計(jì)功能,增添了Fast Fit變異選項(xiàng),推進(jìn)了網(wǎng)絡(luò)編輯性能,而且提升了調(diào)試能力。Quartus II 提供了完全集成且與電路結(jié)構(gòu)無關(guān)的數(shù)字邏輯設(shè)計(jì)環(huán)境,為 設(shè)計(jì)流程的每個(gè)階段提供Quartus II圖形用戶界面、EDA 工具界面以及命令界面。可以在整個(gè)流程中使用這些界面中的一個(gè),也可以在設(shè)計(jì)流程的不同階段使用不同界面。如圖2-2為Quartus II的設(shè)計(jì)流程: 圖2-1 Quartus II的設(shè)計(jì)流程2.4.2 Nios II IDE2004年6月,Altera 公司推出了Nios II 嵌入式處理器。Nios II 是基于RISC 技術(shù)的通用嵌入式處理

37、器芯片內(nèi)核,它特別為可編程邏輯進(jìn)行了優(yōu)化設(shè)計(jì),也為SOPC 設(shè)計(jì)了一套綜合解決方案。Nios II 系列能夠滿足任何32位嵌入式微處理器的需要,客戶可以將第一代 Nios 處理器設(shè)計(jì)移植到Nios II 某種處理器上,Altera 將長(zhǎng)期支持現(xiàn)有FPGA 系列上的第一代Nios 處理器。另外,Altera 提供了意見是移植選項(xiàng),可以升級(jí)至Nios II系列。Nios II處理器也能夠在HardCopy 器件中實(shí)現(xiàn),Altera 還為基于Nios II處理器的系統(tǒng)提供ASIC 的移植方式。Nios II 處理器具有完善的軟件開發(fā)套件,包括編譯器、集成開發(fā)環(huán)境(IDE )、JTAG 調(diào)試器、實(shí)時(shí)操

38、作系統(tǒng)(RTOS )和TCP/IP協(xié)議棧。設(shè)計(jì)者能夠用Altera Quartus II開發(fā)軟件中的SPOC Builder系統(tǒng)開發(fā)工具很容易地創(chuàng)建專業(yè)的處理器系統(tǒng),并能夠根據(jù)系統(tǒng)的需求添加Nios II處理器的數(shù)量。使用Nios II軟件開發(fā)工具能夠?yàn)镹ios II系統(tǒng)構(gòu)建軟件,即一鍵式自動(dòng)生成適用于系統(tǒng)硬件的專業(yè)C/C+運(yùn)行環(huán)境。Nios II 集成開發(fā)環(huán)境(IDE )提高了許多軟件模塊,簡(jiǎn)化了項(xiàng)目設(shè)置。此外,Nios II開發(fā)套件包括兩個(gè)第三實(shí)時(shí)操作系統(tǒng)(RTOS )MicroC/OS- II(Micrium,Nucleus Plus(ATI/Mentor以及供網(wǎng)絡(luò)應(yīng)用使用的TCP/IP

39、協(xié)議線。2.5小結(jié)本章介紹了FPGA 架構(gòu)的設(shè)計(jì)思想,將這些指導(dǎo)性原則應(yīng)用到實(shí)際中。此外,還介紹了FPGA 的主要編程語言VHDL 和AHDL ,以及開發(fā)環(huán)境Quartus II 和Nios II IDE。第三章 數(shù)字信號(hào)處理的理論基礎(chǔ)3.1離散傅里葉變換3.1.1 傅里葉變換的幾種形式傅里葉變換是信號(hào)分析和處理的有力工具,在以快速傅里葉算法為代表的一系列有效算法出現(xiàn)后,傅里葉變換不但在信號(hào)處理領(lǐng)域起著支柱作用,而且在其它工程領(lǐng)域也獲得了廣泛應(yīng)用。根據(jù)信號(hào)的連續(xù)性、離散性、周期性、非周期性,傅里葉變換可以分為四種不同的形式,形成四種不同的傅里葉變換對(duì),以下分別予以描述。 (1)連續(xù)時(shí)間非周期信

40、號(hào)連續(xù)時(shí)間非周期信號(hào)x(t在品與眾得到的是連續(xù)非周期的頻譜密度函X (j , 傅里葉變換對(duì)如下:dt e t x j X tj +-= ( ( (3-1 d ej X t x tj +-=(21( (3-2這種類型信號(hào)的典型信號(hào)有指數(shù)衰減信號(hào)和搞高斯信號(hào),這種信號(hào)的變換稱為傅里葉變換。 (2)連續(xù)時(shí)間周期信號(hào)連續(xù)時(shí)間周期信號(hào)x(t當(dāng)滿足狄里赫利條件時(shí)在品與眾的到的是離散非周期的傅里葉級(jí)數(shù),傅里葉級(jí)數(shù)的系數(shù)為X(jk,X(jk )為離散非周期函數(shù),x(t)和X(jk 組成的變換對(duì)如下:X(jk=- (1T T t jk dt e t x T (3-3x(t=-=k jk ejk X ( (3-4

41、這種類型信號(hào)的典型信號(hào)有正弦信號(hào)和周期方波信號(hào),這種類型信號(hào)的傅里葉變換就稱為傅里葉級(jí)數(shù)。 (3)離散時(shí)間非周期信號(hào)離散時(shí)間非周期信號(hào)想x(n也稱為序列,序列的傅里葉變換對(duì)如下所示:-=T jn tj e nT x eX ( ( (3-5=d e e X nT x T jn T j (1 ( (3-6這種信號(hào)的傅里葉變換成為離散實(shí)踐傅里葉變換(4)離散時(shí)間周期信號(hào)離散時(shí)間周期信號(hào)的傅里葉變換有時(shí)稱為傅里葉級(jí)數(shù),但最常被稱為離散傅里葉變換。3.1.2離散傅里葉變換算法上面討論的四種傅里葉變換對(duì)前三種由于至少在時(shí)域或頻域是離散的,都不適于在計(jì)算機(jī)上運(yùn)行。然而,現(xiàn)實(shí)世界中的聲音等各種信號(hào)大都為模擬信

42、號(hào),要用計(jì)算機(jī)對(duì)這些信號(hào)進(jìn)行數(shù)字信號(hào)處理,這些信號(hào)必須通過采樣量化編碼變成有限長(zhǎng)的數(shù)字信號(hào)序列。對(duì)于有限長(zhǎng)序列,可以得出另外一種傅里葉表示,稱為離散傅里葉變換(DFT )。離散傅里葉變換本身是一個(gè)序列,而不是一個(gè)連續(xù)變量的函數(shù),它相應(yīng)于對(duì)信號(hào)的傅里葉變換進(jìn)行頻率的等間隔取樣的樣本。因?yàn)榇嬖谥鳧FT 的高效算法,作為序列的傅里葉表示,DFT 除了在理論上十分重要外,在現(xiàn)實(shí)各種數(shù)字信號(hào)處理算法中還起著核心作用。離散傅里葉變換描述分析有限長(zhǎng)序列,其本質(zhì)是建立在以時(shí)間為自變量的信號(hào)與以頻率為自變量的頻譜函數(shù)之間的變換關(guān)系,換言之,離散傅里葉變換定義了時(shí)域與頻域之間大的一種變換或者說是映射。對(duì)于DFT

43、時(shí)間和頻率變量都取離散值。下面討論一下有限長(zhǎng)序列的離散傅里葉變換。對(duì)于一個(gè)長(zhǎng)度為N 的有限長(zhǎng)序列x(n,亦即只在n=0到(n-1 個(gè)點(diǎn)上為非零值,其余皆為零,我們可以把它看成周期為N 的周期序列 (n x 中的一個(gè)周期 即當(dāng)10-N n , ( (n x n x = 當(dāng)n 為其它值時(shí), x(n=0其中-=+=r rN n x n x ( ( (3-7)從而有限長(zhǎng)序列的傅里葉變換定義為正變換:-=10( (N n nkN W n x DFT k X 10-N k (3-8)反變換:-=-=1(1( (N n nk NWk X Nk X IDFT n x 10-N n (3-9其中,NjnknkN

44、 eW 2-=由此可見 ,離散傅里葉變換開辟了頻域離散化的道路,是數(shù)字信號(hào)處理也可以在頻域上采用數(shù)字運(yùn)算方法進(jìn)行,它可以作為一種數(shù)學(xué)工具來描述離散信號(hào)的時(shí)域和頻域關(guān)系,大大增加了數(shù)字信號(hào)處理的靈活性,特別是它的多種快速算法,使信號(hào)的實(shí)時(shí)處理和設(shè)備的簡(jiǎn)化得以實(shí)現(xiàn),所以離散傅里葉變換不僅在理論上有重要意義,而且在各種數(shù)字信號(hào)處理中起著核心的作用。 3.2 快速傅里葉變換對(duì)于式(3-8)DFT 的直接計(jì)算法,若x(n為復(fù)數(shù)的話,則計(jì)算DFT 每一個(gè)值就需要N 次復(fù)數(shù)乘法和(N-1 次復(fù)數(shù)加法。因此計(jì)算全部的N 個(gè)值總共需要2N 次復(fù)數(shù)乘法和N(N-1次復(fù)數(shù)加法。而每一個(gè)復(fù)數(shù)乘法器需要4次實(shí)數(shù)乘法和2

45、次實(shí)數(shù)加法。所以,對(duì)于每一個(gè)k 值,直接計(jì)算X(k就需要42N 次實(shí)數(shù)乘法和2N(N-1次實(shí)數(shù)加法。除了這些運(yùn)算量外,通用計(jì)算機(jī)或?qū)S糜布碜鯠FT 數(shù)字計(jì)算還需要存儲(chǔ)和讀取N 個(gè)復(fù)數(shù)輸入序列值想x(n以及復(fù)系數(shù)nk N W 值的設(shè)備。由于計(jì)算的總次數(shù)以及所需的時(shí)間大致上正比于2N ,顯然當(dāng)N 值很大時(shí)直接計(jì)算DFT 所需要的算術(shù)運(yùn)算的次數(shù)就非常大。可見,離散傅里葉變換算法實(shí)現(xiàn)了頻域離散化,在數(shù)字信號(hào)處理中起著極其重要的作用,它可以直接用來分析信號(hào)的頻譜、計(jì)算濾波器頻率響應(yīng)、以及實(shí)現(xiàn)信號(hào)通過線性協(xié)調(diào)的卷積運(yùn)算。但對(duì)于N 點(diǎn)DFT 運(yùn)算總共需要42N 次實(shí)數(shù)乘法和2N(N-1次實(shí)數(shù)加法,這樣龐大

46、的運(yùn)算使得DFT 的實(shí)際應(yīng)用特別是實(shí)時(shí)處理難以實(shí)現(xiàn),直到1965年庫利和圖基首次提出了計(jì)算DFT 的一種快速算法,人們開始認(rèn)識(shí)到DFT 運(yùn)算的一些內(nèi)在規(guī)律,發(fā)展和完善了一套高效的運(yùn)算方法,DFT 的運(yùn)算在實(shí)際中才得到廣泛的應(yīng)用。繼CooleyTukey 算法以后,SandTukey 等快速算法相相繼出現(xiàn),很快形成了一套高效運(yùn)算方法,這就是現(xiàn)在的通用快速傅里葉變換,簡(jiǎn)稱FFT 。這種方法使復(fù)數(shù)乘法的次數(shù)從2N 次減少到0.5N N 2log 次。如N=1024時(shí),運(yùn)算量從1048576次減少到5120次,運(yùn)算效率提高了204.8倍,為DFT 乃至數(shù)字信號(hào)處理技術(shù)的實(shí)際應(yīng)用特別是實(shí)時(shí)處理創(chuàng)造了良好

47、的條件,大大地推動(dòng)了數(shù)字信號(hào)處理技術(shù)的發(fā)展。所以實(shí)際工程中用到的都是DFT 的快速算法:快速傅里葉變換(FFT )。 3.2.1 FFT算法基本思想FFT 算法的基本思想:可以將一個(gè)長(zhǎng)度為N 的序列的離散傅里葉變換逐次分解為較短的離散傅里葉變換來計(jì)算,這些短序列的DFT 可重新組合成原序列的DFT ,而總的運(yùn)算次數(shù)卻比直接的DFT 運(yùn)算少很多,從而達(dá)到提高速度的目的??焖俑道锶~變換就是用nkN W 的特性,逐步地將N 點(diǎn)序列分解成較短的序列,計(jì)算短序列的DFT ,然后組合成原序列的DFT ,使運(yùn)算量減少。這種分解基本上可分為兩類:一類是將時(shí)間序列x(n進(jìn)行逐次分解,稱為按時(shí)間抽取算法(Deci

48、mation In Time;另一類將傅里葉變換序列X(k進(jìn)行分解,稱為按頻率抽取算法(Decimation In Frenquency。本文主要介紹按時(shí)間抽取基-2FFT 算法。3.2.2 按時(shí)間抽取基-2FFT 算法我們已經(jīng)知道FFT 算法主要是利用nkN W 的性質(zhì),通過把序列逐漸分解為短序列實(shí)現(xiàn)運(yùn)算量的減少。nk N W 的以下三種性質(zhì)在FFT 云算中得到了應(yīng)用:性質(zhì)1:nkN W 的周期性 k n N nk N W W += 性質(zhì)2:nkN W 的對(duì)稱性 nk N nk N W W -= (性質(zhì)3:nkN W 的可約性 Nnk Nmnk mNnk NW WWW=,由于目前FFT 比較

49、普遍使用的算法還是基二算法,本節(jié)將討論基二的按時(shí)間抽取算法?;惴ㄖ?,序列x(n的長(zhǎng)度N 為2的整數(shù)次冪,即M N 2=,其中M 為正整數(shù)。最初通過將X(n分解為奇數(shù)項(xiàng)序列和偶數(shù)項(xiàng)序列的形式使FFT 運(yùn)算為兩組。設(shè): 2(1r x x =12(2+=r x x 2,.1, 0Nr = (3-10設(shè) (1k X 為 (1r x 的DFT , (2k X 為 (2r x 的DFT ,利用nkN W 的性質(zhì)可得x(n的DFT 運(yùn)算為: ( (21kX W k X k X kN+= 2. 1, 0Nk = (3-11) ( ( 2(21k X W k X N k X kN -=+上面式子的運(yùn)算可用下

50、圖的蝶形信號(hào)流圖符號(hào)表示: A B W A C r N += BB W A D rN -= 圖3.1 時(shí)間抽取算法蝶形運(yùn)算圖由此可見,一個(gè)N 點(diǎn)DFT 分解為兩個(gè)N/2點(diǎn)的DFT ,從而實(shí)現(xiàn)了運(yùn)算量的減少,再經(jīng)過逐次分解最終分解為2點(diǎn)的DFT ,實(shí)現(xiàn)了FFT 運(yùn)算。FFT 運(yùn)算的核心是蝶形運(yùn)算。通過順序計(jì)算全部蝶形實(shí)現(xiàn)FFT 算法的實(shí)現(xiàn)。下面給出N=8時(shí)按時(shí)間抽取FFT 流圖。 圖3.2 N=8的時(shí)間抽取FFT 算法流圖對(duì)于序列的長(zhǎng)度M N 2=的FFT ,共有M 級(jí)蝶形,每級(jí)由N 個(gè)蝶形運(yùn)算組成,每個(gè)蝶形包括一次復(fù)乘、二次復(fù)加,則M 級(jí)運(yùn)算的運(yùn)算量為復(fù)數(shù)乘法:N NM N 2log 22=

51、復(fù)數(shù)加法:N N M N 2log =由此可見,F(xiàn)FT 算法與直接DFT 算法相比運(yùn)算量大為減少,如N=1024時(shí),DFT 所需的復(fù)數(shù)乘法運(yùn)算次數(shù)為:10485762=N 次,而FFT 所需的復(fù)數(shù)乘法運(yùn)算次數(shù)僅為5120log 22=N N 次。可見N=1024時(shí)DFT 算法的運(yùn)算量是FFT 算法的運(yùn)算量的8. 2045120/1048576log 222= N N N 倍。從而可以看出FFT 算法的優(yōu)越性,且當(dāng)點(diǎn)數(shù)N 越大越能突出FFT 算法的優(yōu)越性。3.2.3 按時(shí)間抽取FFT 算法的特點(diǎn)圖3.2所示流圖描述了計(jì)算離散傅里葉變換的一種算法。圖3.2中特別重要的是連接點(diǎn)的支路和每個(gè)之路的傳輸

52、比。只要節(jié)點(diǎn)間的連結(jié)和連接的傳輸比維持不變,則無論在流圖中的諸節(jié)點(diǎn)如何重新排列,它始終表示相同的計(jì)算。由圖3.2可以推知按時(shí)間抽取算法在運(yùn)算方式上的特點(diǎn),主要有以下兩種特點(diǎn); 同址運(yùn)算,到位序規(guī)律。以下分別介紹這兩種特點(diǎn)。特點(diǎn)1:同址運(yùn)算由圖3.2看出,對(duì)于長(zhǎng)度為N 的序列,每一級(jí)計(jì)算均需要一組N 個(gè)復(fù)數(shù),并通過圖3.1形式的基本蝶形它們變換為下一組的N 個(gè)復(fù)數(shù),這種過程重復(fù)N 2log 次,最后得到所要求的離散傅里葉變換。擋實(shí)現(xiàn)圖3.2中描述的運(yùn)算時(shí),我們可以想象使用兩列(復(fù)數(shù)的 存貯寄存器,一列存貯要計(jì)算的數(shù),另一列存貯計(jì)算中要用到的數(shù)據(jù)。例如,當(dāng)計(jì)算圖3.2中的第一列時(shí),第一組存貯寄存器

53、應(yīng)當(dāng)存放輸入數(shù)據(jù),而第二組存貯寄存器應(yīng)當(dāng)存放第一級(jí)算出的結(jié)果。把第m 級(jí)計(jì)算得出的復(fù)數(shù)序列記作n X o 。對(duì)于第m 級(jí)計(jì)算,可以認(rèn)為1n X m -是輸入列,n X m 是輸出列。這樣,對(duì)于圖3.2中所示的N=8的情況,有0(0x X o =410x X =22x X o =63x X o = (3-12)14x X o =55x X o =36x X o =77x X o =利用這種表示方法,可將圖3.1中蝶形計(jì)算的輸入和輸出標(biāo)記為圖3.3所示的那樣,并有相應(yīng)的方程11q X W p X p X m nk N m m -+= (3-13a11q X W p X q X m nk N m m

54、 -= (3-13b在式(3-11)中。P,q 和r 從一級(jí)到另一級(jí)是不同的,從圖3.2和圖3.3中可以清楚地看出,要計(jì)算第m 列的p 和q 位置上的復(fù)數(shù)節(jié)點(diǎn)值,只需要第(m-1 列在p 和q 位置上的復(fù)數(shù)節(jié)點(diǎn)值。因此,若將p X m 和q X m 分別存放在原存放1p X m -和1q X m -的同一存貯寄存器中,則實(shí)現(xiàn)全部計(jì)算實(shí)際上只需要一列存貯N 個(gè)復(fù)數(shù)寄存器。這種計(jì)算通常稱為同址計(jì)算。由此可見,采用同址運(yùn)算只需N 個(gè)存儲(chǔ)單元,大大節(jié)省了存儲(chǔ)單元,從而降低了設(shè)計(jì)成本。特點(diǎn)2:倒位序規(guī)律為了實(shí)現(xiàn)同址計(jì)算,輸入序列不能按照原來的先后順序存貯(或至少不能這樣讀?。?,而應(yīng)如圖3-2的流圖那樣,

55、實(shí)際上,這種輸入數(shù)據(jù)存貯和讀取的順序稱為倒位序。我們注意到,對(duì)于已經(jīng)討論過的8點(diǎn)流圖,只需要三位二進(jìn)制碼來標(biāo)注整個(gè)數(shù)據(jù)。如果用二進(jìn)制形式寫出式(3-10)中的標(biāo)號(hào),就得到如下一組式子:100000x X o =100001x X o =010010x X o =011011x X o =001100x X o = (3-14101101x X o =011110o o X X =111111x X o若 , , (012n n n 為序列xn中標(biāo)號(hào)的二進(jìn)制表示,則序列值, , 012n n n x 存放在數(shù)列, , 210n n n X o 的位置上。也就是說,要確定, , 012n n n

56、x 在輸入序列中的位置,我們必須將標(biāo)號(hào)n 的位置顛倒。表3.1給出了N=8時(shí)的自然順序二進(jìn)制數(shù)以及相應(yīng)的倒位序二進(jìn)制數(shù)。表 3.1 碼位的倒位序(N=8 實(shí)際運(yùn)算中,總是先按自然順序?qū)⑤斎胄蛄写嫒氪鎯?chǔ)單元,要實(shí)現(xiàn)FFT 算法,首先將按自然順序存放的序列經(jīng)變址運(yùn)算變換得到倒位序的排列。第四章 數(shù)字濾波器的理論基礎(chǔ)4.1數(shù)字濾波器介紹濾波器是指用來對(duì)輸入信號(hào)進(jìn)行濾波的硬件和軟件。模擬濾波器一般利用RLC 元器件和運(yùn)算放大器實(shí)現(xiàn),而數(shù)字濾波器,是指輸入、輸出均為數(shù)字信號(hào),通過一定運(yùn)算關(guān)系改變輸入信號(hào)所含頻率成分的相對(duì)比率或者濾除某些頻率成分的器件。數(shù)字濾波器一般可用兩種方法實(shí)現(xiàn):一種是根據(jù)描述的數(shù)字

57、濾波器的數(shù)學(xué)模型或信號(hào)流通,用數(shù)字硬件裝配成一臺(tái)專門的設(shè)備,構(gòu)成專用的信號(hào)處理機(jī),這就是硬件實(shí)現(xiàn)方式。在硬件實(shí)現(xiàn)方式中,是以數(shù)字組件如延器、加法器、和乘法器作為基本部件構(gòu)成專用的數(shù)字信號(hào)處理系統(tǒng)。在軟件實(shí)現(xiàn)方式中,它是借助于通用計(jì)算機(jī)機(jī)器語言、匯編語言或高級(jí)語言程序來做數(shù)字濾波器的運(yùn)算過程。數(shù)字濾波器具有比模擬濾波器精度高、穩(wěn)定、體積小、重量輕、靈活、不要求阻抗匹配以及實(shí)現(xiàn)模擬濾波器無法實(shí)現(xiàn)的特殊功能等。數(shù)字濾波器可以滿足濾波器對(duì)幅度和相位特性的嚴(yán)格要求,避免模擬濾波器無法克服的電壓漂移、溫度漂移和噪聲等問題。數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn),通常按下述步驟進(jìn)行:首先,根據(jù)不同用途提出數(shù)字濾波器的技術(shù)指標(biāo);然后,設(shè)計(jì)一個(gè)穩(wěn)定的、因果的數(shù)學(xué)模型H (z 來逼近所要求的技術(shù)指標(biāo);最后,設(shè)計(jì)專用的數(shù)字硬件來實(shí)現(xiàn)這個(gè)數(shù)學(xué)模型,或者用通用的電子計(jì)算機(jī)運(yùn)行軟件予以實(shí)現(xiàn)。4.2 數(shù)字濾波器的分類

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論