版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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)行變換處理來(lái)實(shí)現(xiàn),對(duì)此在本文中介紹了數(shù)字濾波器的一些算法。傅里葉變換(DFT)作為其數(shù)字信號(hào)處理中的基本運(yùn)算,發(fā)揮著重要作用。特別是可快速傅里葉變換換(FFT)算法的提出,減少了當(dāng)N很大的時(shí)候D
2、FT的運(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ì)流程、硬件描述語(yǔ)言(VHDL)、Quartus II軟件、音頻錄放、DE2開(kāi)發(fā)板介紹等等。 關(guān)鍵詞:音頻處理技術(shù)、 數(shù)字濾波 、算法、FPGAAbstract At present,with the rapid development of the electronic technology,people have many higher require
3、ments 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 become
4、 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 algori
5、thm 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 the des
6、ign 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,introduction of
7、 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ù)據(jù)的傳輸、記錄、
8、存儲(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)就是完全有用戶通過(guò)軟件進(jìn)行配置和編程,從而完成某種特定功能,且可以反復(fù)擦寫。在修改和升級(jí)時(shí),不
9、需額外地改變PCB電路板,只是在計(jì)算機(jī)上修改和更新程序,使硬件設(shè)計(jì)工作成為軟件開(kāi)發(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 RAM和Select RA
10、M)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中的程序來(lái)設(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的編程無(wú)需專用的FPGA編輯器,只需用通用的EPROM
11、、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)用來(lái)說(shuō)很有用,但仍有一些應(yīng)用要求性能更進(jìn)一步提升,而FPGA提供了更高的性能。FPGA可以生成一個(gè)定制硬件設(shè)計(jì),從而控制邏輯能夠在硬件中實(shí)現(xiàn),不必再利用精確的時(shí)鐘周期來(lái)實(shí)現(xiàn)控制功能。此外,通過(guò)裁剪硬件結(jié)構(gòu),F(xiàn)PGA可以提高額外的性能。如果最重要的設(shè)計(jì)考慮因素是速度,那么可以在FPGA中設(shè)計(jì)完全并行的算法處理方案?,F(xiàn)在,許多系統(tǒng)已經(jīng)包含了一個(gè)FPGA,用于協(xié)議
12、轉(zhuǎn)換、膠合邏輯或一些其它系統(tǒng)功能。如果那個(gè)FPGA沒(méi)有被完全利用,那么把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與CPLD CPLD是基于ROM結(jié)構(gòu)的下電后代碼不丟失;而FPGA是基于RAM結(jié)構(gòu)的,下電后代碼丟失,所以FPGA一般必須有一個(gè)配置ROM在每次上電時(shí)加載代碼到RAM CPLD的硬件設(shè)計(jì)比較簡(jiǎn)單,F(xiàn)PGA 的硬件設(shè)計(jì)相對(duì)復(fù)雜些。 而這制造工藝上的差別也導(dǎo)致了它們內(nèi)部結(jié)構(gòu)的不同,CPLD的邏輯資源不可能做的太大,而FPGA卻能做到數(shù)萬(wàn)
13、乃至數(shù)百萬(wàn)邏輯門。 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庫(kù),以優(yōu)化的資源更好的滿足用戶需求,擴(kuò)大市場(chǎng),特別是引人注目的FPGA動(dòng)態(tài)可重構(gòu)技術(shù)的開(kāi)拓,將推動(dòng)數(shù)字系統(tǒng)設(shè)計(jì)觀念的巨大轉(zhuǎn)變。第二章FPGA架構(gòu) 2.1 FPGA設(shè)計(jì)流程 2.1.1 FPGA設(shè)計(jì)流程 一般來(lái)說(shuō),完整的FPGA設(shè)計(jì)流程包括電路設(shè)計(jì)與輸入,功能
14、仿真、綜合、綜合后仿真、實(shí)現(xiàn)、布線后仿真與驗(yàn)證、班級(jí)仿真驗(yàn)證與調(diào)試等主要步驟。如圖2-1所示:系統(tǒng)規(guī)范 系統(tǒng)設(shè)計(jì)規(guī)范模塊設(shè)計(jì) HDL語(yǔ)言描述,IP核設(shè)計(jì)輸入設(shè)計(jì)輸入文件( .v ,.vhd )功能仿真時(shí)序/面積/功耗約束,工藝庫(kù)綜合I/O指派,布局布線約束布局布線反標(biāo)注文件(.sdf)時(shí)序驗(yàn)證下載位流文件配置下載 圖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) 模塊
15、設(shè)計(jì) 在制定完系統(tǒng)規(guī)范后,根據(jù)系統(tǒng)功能,采用自頂向下的方法,逐步細(xì)化,將系統(tǒng)劃分為可實(shí)現(xiàn)的設(shè)計(jì)模塊。這些模塊之間存在著一定的層次關(guān)系,每個(gè)模塊完成相對(duì)獨(dú)立的功能。(3) 設(shè)計(jì)輸入 設(shè)計(jì)輸入是指將模塊設(shè)計(jì)階段定義好的模塊借助于一定的設(shè)計(jì)輸入手段轉(zhuǎn)換為EDA工具能接受的信息格式。目前主要的而設(shè)計(jì)輸入手段有:高級(jí)硬件描述語(yǔ)言HDL(包括Verilog/VHDL)和原理圖。HDL語(yǔ)言支持不同層次的描述,不依賴于FPGA產(chǎn)家的工藝器件,便于修改。它可以用任意的文本編輯器作為輸入平臺(tái),在狀態(tài)機(jī)、控制邏輯、總線功能方面較強(qiáng)。原理圖輸入法具有圖形化強(qiáng)、直觀等特點(diǎn)。(4)功能仿真 設(shè)計(jì)輸入后,經(jīng)HDL編譯器檢查
16、沒(méi)有語(yǔ)法錯(cuò)誤后,就可以對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證了。這里的驗(yàn)證是指通過(guò)軟件驗(yàn)證其功能是否符合有步驟1所制訂的規(guī)范,稱這一階段的驗(yàn)證為功能仿真或行為仿真。目前,仿真工具比較多,其中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ì)于綜合來(lái)說(shuō),滿足要求的方案可能有多個(gè),綜合其將產(chǎn)生一個(gè)最優(yōu)的或接近最優(yōu)的結(jié)果。因此,綜合黨的過(guò)程也就是設(shè)
17、計(jì)目標(biāo)的優(yōu)化過(guò)程,最后獲得的結(jié)構(gòu)域綜合其的性能有關(guān)。這個(gè)階段產(chǎn)生網(wǎng)表,供布局布線使用,網(wǎng)表中包含了目標(biāo)器件中的邏輯元件和互連的信息。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)布線連接。在布局布線過(guò)程中,時(shí)序信息形成產(chǎn)生反標(biāo)注文件,供給后續(xù)的時(shí)序仿真使用,同時(shí)還產(chǎn)生FPGA配置時(shí)需要哦的位流文件。F
18、PGA設(shè)計(jì)中的布局布線工具主要有FPGA產(chǎn)商提供,種類比較多,我們主要使用Altera公司的Quartus 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í)序仿真正確的前
19、提下,將布局布線后形成的位流文件通過(guò)下載工具下載到具體的額FPGA芯片中,這個(gè)過(guò)程也叫FPPGA編程(配置)。將位流文件下載到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ù)以千萬(wàn)乃至是億只的晶體管,單片上就可以實(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)過(guò)成為設(shè)計(jì)界的主流方法學(xué)。在EDA工具出現(xiàn)以前,人們采
20、用自底向上的而設(shè)計(jì)方法設(shè)計(jì)集成電路。在這種設(shè)計(jì)方法學(xué)中,功能設(shè)計(jì)是自頂向下的,即提出所設(shè)計(jì)電路要完成的功能,然后進(jìn)行行為級(jí)描述,RTL級(jí)設(shè)計(jì)、邏輯設(shè)計(jì)和版圖設(shè)計(jì)。工具的實(shí)現(xiàn)過(guò)程則正好相反,從最底層的版圖開(kāi)始,然后是邏輯設(shè)計(jì),直到完成所需實(shí)現(xiàn)的功能。 這種設(shè)計(jì)方法的缺點(diǎn)是:效率低,設(shè)計(jì)周期長(zhǎng),設(shè)計(jì)質(zhì)量難以保證,適用于小規(guī)模的電路設(shè)計(jì)。 自頂向下的設(shè)計(jì)方法學(xué)是和EDA工具同步發(fā)展起來(lái)的額,借用于EDA工具可以實(shí)現(xiàn)從高層次到低層次的變換,無(wú)論是功能設(shè)計(jì)和具體實(shí)現(xiàn)都是自頂向下。FPGa設(shè)計(jì)流程就是典型的自頂向下設(shè)計(jì)方法學(xué)的體現(xiàn)。在這個(gè)設(shè)計(jì)流程中,設(shè)計(jì)人員從制定系統(tǒng)的規(guī)范開(kāi)始,依次進(jìn)行系統(tǒng)級(jí)設(shè)計(jì)和驗(yàn)證、
21、模塊級(jí)設(shè)計(jì)和驗(yàn)證、設(shè)計(jì)綜合和驗(yàn)證、布局布線和時(shí)序驗(yàn)證,最終在載體上實(shí)現(xiàn)所設(shè)計(jì)的系統(tǒng)。 自頂向下的設(shè)計(jì)方法學(xué)的優(yōu)點(diǎn)是顯而意見(jiàn)的,在整個(gè)設(shè)計(jì)過(guò)程中,借助于EDA仿真工具可以及時(shí)發(fā)現(xiàn)每個(gè)設(shè)計(jì)環(huán)節(jié)的錯(cuò)誤,進(jìn)行修正,最大限度地不把錯(cuò)誤帶入到后續(xù)的設(shè)計(jì)環(huán)節(jié)中。另外,由于在自頂向下的設(shè)計(jì)方法學(xué)中用的硬件描述語(yǔ)言作為設(shè)計(jì)輸入,改變了傳統(tǒng)的電路設(shè)方法,是EDA技術(shù)的而一次巨大進(jìn)步。它可以在系統(tǒng)級(jí)、行為級(jí)、寄存器傳輸級(jí)、邏輯級(jí)和開(kāi)關(guān)級(jí)等五個(gè)不同的抽象層次上描述電路。由于擺脫了門級(jí)電路實(shí)現(xiàn)細(xì)節(jié)的束縛,因而設(shè)計(jì)人員可以把精力集中于系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方案上,一旦方案成熟,那么就可以以較高層次描述的形式輸入計(jì)算機(jī),由EDA
22、工具自動(dòng)完成整個(gè)設(shè)計(jì)。這種方法大大縮短了產(chǎn)品的研制周期,極大地提高了設(shè)計(jì)的效率和產(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ì) 由于芯片的集成度變得越來(lái)越高,因而設(shè)計(jì)的難度也變得越來(lái)越大。設(shè)計(jì)成本事實(shí)上主導(dǎo)了芯片的價(jià)格。如何提高設(shè)計(jì)效率,最大限度縮短設(shè)計(jì)周期,使產(chǎn)品快速上市,這給設(shè)計(jì)人員提出了非常高的要求。采用他人的成功設(shè)計(jì)是解決這個(gè)問(wèn)題的有效方法。 所謂設(shè)計(jì)重用實(shí)際上包含兩個(gè)方面的內(nèi)容:設(shè)計(jì)資料重用和生成可被他人重用的設(shè)計(jì)資料。前者通常被
23、稱為IP重用,而后者則涉及到如何去生成IP核。設(shè)計(jì)資料內(nèi)不僅僅包含一些物理功能和技術(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)過(guò)驗(yàn)證,可以被設(shè)計(jì)人員直接使用。一般說(shuō)來(lái),IP核有三種表現(xiàn)形式:軟核(Soft-Core)、固核(Firm-Core)和硬核(Hard-Core)。 (1)軟核:它以硬件描述語(yǔ)言Verilog或VHDL語(yǔ)言代碼的形式存在,軟核功能的驗(yàn)證通常是通過(guò)時(shí)序模擬。軟核不依賴于任何實(shí)現(xiàn)工藝或?qū)崿F(xiàn)技術(shù),具有很大的靈活
24、性。設(shè)計(jì)者可以方便地將其映射到自己所使用的工藝上去,可適用性很高。 (2)硬核:它以集成電路版圖(Layout)的形式提交,并經(jīng)過(guò)實(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)),也可能是可配置
25、的軟核。用戶可以根據(jù)設(shè)計(jì)的需求,直接使用這些IP核,借助一這些IP核,用戶可以加快設(shè)計(jì)進(jìn)度,提高設(shè)計(jì)效率和設(shè)計(jì)可靠性。2.2 FPGA開(kāi)發(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)行布局布線,是旗艦而定
26、。主要有:Altera的Max+PlusII、QuartusII、Xilinx的Foundation、Alliance、ISE等軟件。2.2 FPGA設(shè)計(jì)原則 在FPGA設(shè)計(jì)中,有許多重要的原則和規(guī)律可循,掌握這些原則和規(guī)律,人們可以設(shè)計(jì)出許多高性能的電子系統(tǒng)。(1)硬件原則 硬件原則主要針對(duì)HDL代碼編寫而言。硬件描述語(yǔ)言,它通過(guò) 對(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)方案的效率以及合理性來(lái)分析。(2)系統(tǒng)原則 一個(gè)硬件系統(tǒng),通過(guò)何種方式進(jìn)
27、行模塊劃分與任務(wù)分配,使用算法和實(shí)現(xiàn)功能,以及FPGA的規(guī)模故事、數(shù)據(jù)接口等,具體到FPGA的設(shè)計(jì)就要求對(duì)設(shè)計(jì)的全局有個(gè)宏觀的合理安排。一般說(shuō)來(lái)實(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)來(lái)衡量,更一般的衡量方式可以用設(shè)計(jì)所占用的等價(jià)邏輯門數(shù)?!八俣取笔侵冈O(shè)計(jì)在芯片上穩(wěn)定運(yùn)行,所能夠達(dá)到的最高頻
28、率,這個(gè)頻率由設(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)單而且可靠,能有效避免毛刺的影響
29、,是設(shè)計(jì)更加有效,還可以減小環(huán)境對(duì)芯片的影響。在遵循這一原則的時(shí)候,應(yīng)盡可能的在設(shè)計(jì)中使用統(tǒng)一時(shí)鐘,時(shí)鐘走全局網(wǎng)絡(luò),同時(shí)避免使用混合時(shí)鐘采樣數(shù)據(jù)。2.3 FPGA開(kāi)發(fā)語(yǔ)言23.1 VHDL簡(jiǎn)介硬件描述語(yǔ)言VHDL(Very High Speed Integrated Cicruit Hardware Description Labguage)是一種用于設(shè)計(jì)電子系統(tǒng)的計(jì)算機(jī)語(yǔ)言,他用軟件編程的方式來(lái)描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式。與傳統(tǒng)的門級(jí)描述方式相比,它更適合與大規(guī)模集成電路系統(tǒng)設(shè)計(jì)。VHDL是隨著可編程邏輯器件(PLD)的發(fā)展而發(fā)展起來(lái)的一種硬件描述語(yǔ)言,在電子工程領(lǐng)域,已成為
30、通用硬件描述語(yǔ)言。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。處理含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法和一般的計(jì)算機(jī)高級(jí)語(yǔ)言十分相似。利用VHDL語(yǔ)言設(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語(yǔ)言可以與工藝無(wú)關(guān)編程;5.實(shí)現(xiàn)方便。2.3.2 AHDL簡(jiǎn)介 AHDL(Altera HDL)是ALTERA 公司自主發(fā)明的HDL,用于描述數(shù)字邏輯的硬件描述語(yǔ)言,類似VHDL和 Verilog HDL ,主要與MAX+PLUSII完美結(jié)合
31、,特點(diǎn)是非常易學(xué)易用,學(xué)過(guò)高級(jí)語(yǔ)言的人可以在很短的時(shí)間內(nèi)掌握它 。它的缺點(diǎn)是移植性不好,通常只用于ALTERA自己的開(kāi)發(fā)系統(tǒng)。24 FPGA開(kāi)發(fā)環(huán)境 24.1 Quartus II Quartus II是Altera公司的綜合PLD開(kāi)發(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)。 Quartus II支持Altera
32、的IP核,包含了LMP/MegaFunction宏功能模塊,使用戶可以充分利用成熟的模塊,簡(jiǎn)化設(shè)計(jì)的復(fù)雜性,加快設(shè)計(jì)速度。對(duì)第三方EDA工具的良好支持也是用戶可以再設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA工具。此外,Quartus II通過(guò)DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng),它支持Altera的片上可編程(SOPC)卡挨罰,集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開(kāi)發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開(kāi)發(fā)平臺(tái)。 MAX+PLUS II作為Altera的上一代PLD設(shè)計(jì)軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止對(duì)MAX
33、+PLUS II的更新支持,Quartus II與之相比不僅僅是支持齊家安型的豐富和圖形界面的改變,集成了SOPC和HardCopy設(shè)計(jì)流程,并且集成了MAX+PLUSII友好的圖形界面及簡(jiǎn)便的使用方法。Quartus II作為一種可編程邏輯的設(shè)計(jì)環(huán)境,由于其強(qiáng)大的設(shè)計(jì)能力和直觀一樣的接口,越來(lái)越受到數(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ì)能完善、有效地支持百萬(wàn)邏輯門的設(shè)計(jì)和驗(yàn)證。其主要特性如以下:(1) 可利用原理圖、結(jié)構(gòu)圖、Ve
34、rilog HDL、VHDL和AHDL硬件描述語(yǔ)言完成邏輯電路的描述和編輯,以及芯片(電路)平面布局布線編輯。(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)性能影響較小或沒(méi)有影響的后續(xù)模塊。(6) 可使用SignalTapII邏輯分析工具進(jìn)行嵌入式的邏輯分析。(7) 支持軟件源文件的添加、創(chuàng)建、將它們連接起來(lái)生成編程文件。(8) 自動(dòng)定位編譯錯(cuò)誤,提供高效的器件編程與驗(yàn)證工具。(9) 引入
35、了功率分析和優(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開(kāi)發(fā)平臺(tái)。該平臺(tái)支持一個(gè)工作換今后下的設(shè)計(jì)要求,其中包括支持基于Internet協(xié)作設(shè)計(jì)。Quartus平臺(tái)與Cadence、Exemplar Logic、Mentor Graphics、Synplicity等EDA 供應(yīng)商的開(kāi)發(fā)工具箱兼容,改進(jìn)了軟件的Logic Lock模塊設(shè)計(jì)功能,增添了Fast Fit
36、變異選項(xiàng),推進(jìn)了網(wǎng)絡(luò)編輯性能,而且提升了調(diào)試能力。Quartus II提供了完全集成且與電路結(jié)構(gòu)無(wú)關(guān)的數(shù)字邏輯設(shè)計(jì)環(huán)境,為 設(shè)計(jì)流程的每個(gè)階段提供Quartus II圖形用戶界面、EDA工具界面以及命令界面??梢栽谡麄€(gè)流程中使用這些界面中的一個(gè),也可以在設(shè)計(jì)流程的不同階段使用不同界面。如圖2-2為Quartus II的設(shè)計(jì)流程: 設(shè)計(jì)輸入(Design Enity) 功耗分析(Power Analysis) 綜合( Synthesis) 調(diào)試 (Debugging) 布局布線(Place & Route) 工程更改管理(Engineering Change Management) 時(shí)序
37、分析(Timing Analysis) 仿真 (Simulation) 時(shí)序逼近(Timing Closure) 編程和配置(Programming & Configuration) 圖2-1 Quartus II的設(shè)計(jì)流程2.4.2 Nios II IDE 2004年6月,Altera公司推出了Nios II嵌入式處理器。Nios II是基于RISC技術(shù)的通用嵌入式處理器芯片內(nèi)核,它特別為可編程邏輯進(jìn)行了優(yōu)化設(shè)計(jì),也為SOPC設(shè)計(jì)了一套綜合解決方案。 Nios II系列能夠滿足任何32位嵌入式微處理器的需要,客戶可以將第一代Nios處理器設(shè)計(jì)移植到Nios II某種處理器上,Alte
38、ra將長(zhǎng)期支持現(xiàn)有FPGA系列上的第一代Nios處理器。另外,Altera提供了意見(jiàn)是移植選項(xiàng),可以升級(jí)至Nios II系列。Nios II處理器也能夠在HardCopy器件中實(shí)現(xiàn),Altera還為基于Nios II處理器的系統(tǒng)提供ASIC的移植方式。 Nios II處理器具有完善的軟件開(kāi)發(fā)套件,包括編譯器、集成開(kāi)發(fā)環(huán)境(IDE)、JTAG調(diào)試器、實(shí)時(shí)操作系統(tǒng)(RTOS)和TCP/IP協(xié)議棧。設(shè)計(jì)者能夠用Altera Quartus II開(kāi)發(fā)軟件中的SPOC Builder系統(tǒng)開(kāi)發(fā)工具很容易地創(chuàng)建專業(yè)的處理器系統(tǒng),并能夠根據(jù)系統(tǒng)的需求添加Nios II處理器的數(shù)量。使用Nios II軟件開(kāi)發(fā)工
39、具能夠?yàn)镹ios II系統(tǒng)構(gòu)建軟件,即一鍵式自動(dòng)生成適用于系統(tǒng)硬件的專業(yè)C/C+運(yùn)行環(huán)境。Nios II集成開(kāi)發(fā)環(huán)境(IDE)提高了許多軟件模塊,簡(jiǎn)化了項(xiàng)目設(shè)置。此外,Nios II開(kāi)發(fā)套件包括兩個(gè)第三實(shí)時(shí)操作系統(tǒng)(RTOS)MicroC/OS- II(Micrium),Nucleus Plus(ATI/Mentor)以及供網(wǎng)絡(luò)應(yīng)用使用的TCP/IP協(xié)議線。2.5小結(jié)本章介紹了FPGA架構(gòu)的設(shè)計(jì)思想,將這些指導(dǎo)性原則應(yīng)用到實(shí)際中。此外,還介紹了FPGA的主要編程語(yǔ)言VHDL和AHDL,以及開(kāi)發(fā)環(huán)境Quartus II和Nios II IDE。第3章 數(shù)字信號(hào)處理的理論基礎(chǔ)3.1離散傅里葉變換3
40、.1.1 傅里葉變換的幾種形式 傅里葉變換是信號(hào)分析和處理的有力工具,在以快速傅里葉算法為代表的一系列有效算法出現(xiàn)后,傅里葉變換不但在信號(hào)處理領(lǐng)域起著支柱作用,而且在其它工程領(lǐng)域也獲得了廣泛應(yīng)用。根據(jù)信號(hào)的連續(xù)性、離散性、周期性、非周期性,傅里葉變換可以分為四種不同的形式,形成四種不同的傅里葉變換對(duì),以下分別予以描述。(1)連續(xù)時(shí)間非周期信號(hào) 連續(xù)時(shí)間非周期信號(hào)x(t)在品與眾得到的是連續(xù)非周期的頻譜密度函X(j),傅里葉變換對(duì)如下: (3-1) (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)滿足狄里
41、赫利條件時(shí)在品與眾的到的是離散非周期的傅里葉級(jí)數(shù),傅里葉級(jí)數(shù)的系數(shù)為X(jk),X(jk)為離散非周期函數(shù),x(t)和X(jk)組成的變換對(duì)如下:X(jk)= (3-3) x(t)= (3-4)這種類型信號(hào)的典型信號(hào)有正弦信號(hào)和周期方波信號(hào),這種類型信號(hào)的傅里葉變換就稱為傅里葉級(jí)數(shù)。(3)離散時(shí)間非周期信號(hào) 離散時(shí)間非周期信號(hào)想x(n)也稱為序列,序列的傅里葉變換對(duì)如下所示: (3-5) (3-6)這種信號(hào)的傅里葉變換成為離散實(shí)踐傅里葉變換(4)離散時(shí)間周期信號(hào)離散時(shí)間周期信號(hào)的傅里葉變換有時(shí)稱為傅里葉級(jí)數(shù),但最常被稱為離散傅里葉變換。3.1.2離散傅里葉變換算法上面討論的四種傅里葉變換對(duì)前三
42、種由于至少在時(shí)域或頻域是離散的,都不適于在計(jì)算機(jī)上運(yùn)行。然而,現(xiàn)實(shí)世界中的聲音等各種信號(hào)大都為模擬信號(hào),要用計(jì)算機(jī)對(duì)這些信號(hào)進(jìn)行數(shù)字信號(hào)處理,這些信號(hào)必須通過(guò)采樣量化編碼變成有限長(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ù)之
43、間的變換關(guān)系,換言之,離散傅里葉變換定義了時(shí)域與頻域之間大的一種變換或者說(shuō)是映射。對(duì)于DFT時(shí)間和頻率變量都取離散值。下面討論一下有限長(zhǎng)序列的離散傅里葉變換。對(duì)于一個(gè)長(zhǎng)度為N的有限長(zhǎng)序列x(n),亦即只在n=0到(n-1)個(gè)點(diǎn)上為非零值,其余皆為零,我們可以把它看成周期為N的周期序列中的一個(gè)周期即當(dāng) ,當(dāng)n為其它值時(shí), x(n)=0其中 (3-7)從而有限長(zhǎng)序列的傅里葉變換定義為正變換: (3-8)反變換: (3-9) 其中,由此可見(jiàn) ,離散傅里葉變換開(kāi)辟了頻域離散化的道路,是數(shù)字信號(hào)處理也可以在頻域上采用數(shù)字運(yùn)算方法進(jìn)行,它可以作為一種數(shù)學(xué)工具來(lái)描述離散信號(hào)的時(shí)域和頻域關(guān)系,大大增加了數(shù)字信
44、號(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è)值總共需要次復(fù)數(shù)乘法和N(N-1次復(fù)數(shù)加法。而每一個(gè)復(fù)數(shù)乘法器需要4次實(shí)數(shù)乘法和2次實(shí)數(shù)加法。所以,對(duì)于每一個(gè)k值,直接計(jì)算X(k)就需要4次實(shí)數(shù)乘法和2N(N-1)次實(shí)數(shù)加法。除了這些運(yùn)算量外,通用計(jì)算機(jī)或?qū)S糜布?lái)做DFT數(shù)字計(jì)算還需要存儲(chǔ)和讀取N個(gè)復(fù)數(shù)輸入序列值想x(n)以
45、及復(fù)系數(shù)值的設(shè)備。由于計(jì)算的總次數(shù)以及所需的時(shí)間大致上正比于,顯然當(dāng)N值很大時(shí)直接計(jì)算DFT所需要的算術(shù)運(yùn)算的次數(shù)就非常大??梢?jiàn),離散傅里葉變換算法實(shí)現(xiàn)了頻域離散化,在數(shù)字信號(hào)處理中起著極其重要的作用,它可以直接用來(lái)分析信號(hào)的頻譜、計(jì)算濾波器頻率響應(yīng)、以及實(shí)現(xiàn)信號(hào)通過(guò)線性協(xié)調(diào)的卷積運(yùn)算。但對(duì)于N點(diǎn)DFT運(yùn)算總共需要4次實(shí)數(shù)乘法和2N(N-1)次實(shí)數(shù)加法,這樣龐大的運(yùn)算使得DFT的實(shí)際應(yīng)用特別是實(shí)時(shí)處理難以實(shí)現(xiàn),直到1965年庫(kù)利和圖基首次提出了計(jì)算DFT的一種快速算法,人們開(kāi)始認(rèn)識(shí)到DFT運(yùn)算的一些內(nèi)在規(guī)律,發(fā)展和完善了一套高效的運(yùn)算方法,DFT的運(yùn)算在實(shí)際中才得到廣泛的應(yīng)用。繼CooleyT
46、ukey算法以后,SandTukey等快速算法相相繼出現(xiàn),很快形成了一套高效運(yùn)算方法,這就是現(xiàn)在的通用快速傅里葉變換,簡(jiǎn)稱FFT。這種方法使復(fù)數(shù)乘法的次數(shù)從次減少到0.5次。如N=1024時(shí),運(yùn)算量從1048576次減少到5120次,運(yùn)算效率提高了204.8倍,為DFT乃至數(shù)字信號(hào)處理技術(shù)的實(shí)際應(yīng)用特別是實(shí)時(shí)處理創(chuàng)造了良好的條件,大大地推動(dòng)了數(shù)字信號(hào)處理技術(shù)的發(fā)展。所以實(shí)際工程中用到的都是DFT的快速算法:快速傅里葉變換(FFT)。3.2.1 FFT算法基本思想FFT算法的基本思想:可以將一個(gè)長(zhǎng)度為N的序列的離散傅里葉變換逐次分解為較短的離散傅里葉變換來(lái)計(jì)算,這些短序列的DFT可重新組合成原序
47、列的DFT,而總的運(yùn)算次數(shù)卻比直接的DFT運(yùn)算少很多,從而達(dá)到提高速度的目的。快速傅里葉變換就是用的特性,逐步地將N點(diǎn)序列分解成較短的序列,計(jì)算短序列的DFT,然后組合成原序列的DFT,使運(yùn)算量減少。這種分解基本上可分為兩類:一類是將時(shí)間序列x(n)進(jìn)行逐次分解,稱為按時(shí)間抽取算法(Decimation In Time);另一類將傅里葉變換序列X(k)進(jìn)行分解,稱為按頻率抽取算法(Decimation In Frenquency)。本文主要介紹按時(shí)間抽取基-2FFT算法。3.2.2 按時(shí)間抽取基-2FFT算法 我們已經(jīng)知道FFT算法主要是利用的性質(zhì),通過(guò)把序列逐漸分解為短序列實(shí)現(xiàn)運(yùn)算量的減少。
48、的以下三種性質(zhì)在FFT云算中得到了應(yīng)用:性質(zhì)1:的周期性 性質(zhì)2:的對(duì)稱性 性質(zhì)3:的可約性 由于目前FFT比較普遍使用的算法還是基二算法,本節(jié)將討論基二的按時(shí)間抽取算法?;惴ㄖ?,序列x(n)的長(zhǎng)度N為2的整數(shù)次冪,即,其中M為正整數(shù)。最初通過(guò)將X(n)分解為奇數(shù)項(xiàng)序列和偶數(shù)項(xiàng)序列的形式使FFT運(yùn)算為兩組。設(shè): (3-10)設(shè)為的DFT,為的DFT,利用的性質(zhì)可得x(n)的DFT運(yùn)算為: (3-11) 上面式子的運(yùn)算可用下圖的蝶形信號(hào)流圖符號(hào)表示: A B圖3.1 時(shí)間抽取算法蝶形運(yùn)算圖由此可見(jiàn),一個(gè)N點(diǎn)DFT分解為兩個(gè)N/2點(diǎn)的DFT,從而實(shí)現(xiàn)了運(yùn)算量的減少,再經(jīng)過(guò)逐次分解最終分解為2點(diǎn)
49、的DFT,實(shí)現(xiàn)了FFT運(yùn)算。FFT運(yùn)算的核心是蝶形運(yùn)算。通過(guò)順序計(jì)算全部蝶形實(shí)現(xiàn)FFT算法的實(shí)現(xiàn)。下面給出N=8時(shí)按時(shí)間抽取FFT流圖。圖3.2 N=8的時(shí)間抽取FFT算法流圖對(duì)于序列的長(zhǎng)度的FFT,共有M級(jí)蝶形,每級(jí)由個(gè)蝶形運(yùn)算組成,每個(gè)蝶形包括一次復(fù)乘、二次復(fù)加,則M級(jí)運(yùn)算的運(yùn)算量為復(fù)數(shù)乘法:復(fù)數(shù)加法:由此可見(jiàn),F(xiàn)FT算法與直接DFT算法相比運(yùn)算量大為減少,如N=1024時(shí),DFT所需的復(fù)數(shù)乘法運(yùn)算次數(shù)為:次,而FFT所需的復(fù)數(shù)乘法運(yùn)算次數(shù)僅為次??梢?jiàn)N=1024時(shí)DFT算法的運(yùn)算量是FFT算法的運(yùn)算量的倍。從而可以看出FFT算法的優(yōu)越性,且當(dāng)點(diǎn)數(shù)N越大越能突出FFT算法的優(yōu)越性。3.2.
50、3 按時(shí)間抽取FFT算法的特點(diǎn) 圖3.2所示流圖描述了計(jì)算離散傅里葉變換的一種算法。圖3.2中特別重要的是連接點(diǎn)的支路和每個(gè)之路的傳輸比。只要節(jié)點(diǎn)間的連結(jié)和連接的傳輸比維持不變,則無(wú)論在流圖中的諸節(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ù),并通過(guò)圖3.1形式的基本蝶形它們變換為下一組的N個(gè)復(fù)數(shù),這種過(guò)程重復(fù)次,最后得到所要求的離散傅里葉變換。擋實(shí)現(xiàn)圖3.2中描述的運(yùn)算時(shí),我們可以想象使用兩列(復(fù)數(shù)的)
51、存貯寄存器,一列存貯要計(jì)算的數(shù),另一列存貯計(jì)算中要用到的數(shù)據(jù)。例如,當(dāng)計(jì)算圖3.2中的第一列時(shí),第一組存貯寄存器應(yīng)當(dāng)存放輸入數(shù)據(jù),而第二組存貯寄存器應(yīng)當(dāng)存放第一級(jí)算出的結(jié)果。把第m級(jí)計(jì)算得出的復(fù)數(shù)序列記作。對(duì)于第m級(jí)計(jì)算,可以認(rèn)為是輸入列,是輸出列。這樣,對(duì)于圖3.2中所示的N=8的情況,有 (3-12) 利用這種表示方法,可將圖3.1中蝶形計(jì)算的輸入和輸出標(biāo)記為圖3.3所示的那樣,并有相應(yīng)的方程 (3-13a) (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位置上的
52、復(fù)數(shù)節(jié)點(diǎn)值。因此,若將和分別存放在原存放和的同一存貯寄存器中,則實(shí)現(xiàn)全部計(jì)算實(shí)際上只需要一列存貯N個(gè)復(fù)數(shù)寄存器。這種計(jì)算通常稱為同址計(jì)算。由此可見(jiàn),采用同址運(yùn)算只需N個(gè)存儲(chǔ)單元,大大節(jié)省了存儲(chǔ)單元,從而降低了設(shè)計(jì)成本。特點(diǎn)2:倒位序規(guī)律為了實(shí)現(xiàn)同址計(jì)算,輸入序列不能按照原來(lái)的先后順序存貯(或至少不能這樣讀取),而應(yīng)如圖3-2的流圖那樣,實(shí)際上,這種輸入數(shù)據(jù)存貯和讀取的順序稱為倒位序。我們注意到,對(duì)于已經(jīng)討論過(guò)的8點(diǎn)流圖,只需要三位二進(jìn)制碼來(lái)標(biāo)注整個(gè)數(shù)據(jù)。如果用二進(jìn)制形式寫出式(3-10)中的標(biāo)號(hào),就得到如下一組式子: (3-14)若為序列xn中標(biāo)號(hào)的二進(jìn)制表示,則序列值存放在數(shù)列的位置上。也就
53、是說(shuō),要確定在輸入序列中的位置,我們必須將標(biāo)號(hào)n的位置顛倒。表3.1給出了N=8時(shí)的自然順序二進(jìn)制數(shù)以及相應(yīng)的倒位序二進(jìn)制數(shù)。表 3.1 碼位的倒位序(N=8)自然系數(shù)(n)二進(jìn)制碼倒位序二進(jìn)制碼倒位序數(shù)0000000010011004201010123011110641000011510110156110011371111117 實(shí)際運(yùn)算中,總是先按自然順序?qū)⑤斎胄蛄写嫒氪鎯?chǔ)單元,要實(shí)現(xiàn)FFT算法,首先將按自然順序存放的序列經(jīng)變址運(yùn)算變換得到倒位序的排列。第四章 數(shù)字濾波器的理論基礎(chǔ)4.1數(shù)字濾波器介紹 濾波器是指用來(lái)對(duì)輸入信號(hào)進(jìn)行濾波的硬件和軟件。模擬濾波器一般利用RLC元器件和運(yùn)算放大器
54、實(shí)現(xiàn),而數(shù)字濾波器,是指輸入、輸出均為數(shù)字信號(hào),通過(guò)一定運(yùn)算關(guān)系改變輸入信號(hào)所含頻率成分的相對(duì)比率或者濾除某些頻率成分的器件。數(shù)字濾波器一般可用兩種方法實(shí)現(xiàn):一種是根據(jù)描述的數(shù)字濾波器的數(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ī)器語(yǔ)言、匯編語(yǔ)言或高級(jí)語(yǔ)言程序來(lái)做數(shù)字濾波器的運(yùn)算過(guò)程。 數(shù)字濾波器具有比模擬濾波器精度高、穩(wěn)定、體積小、重量輕、靈活、不要求阻抗匹配以及實(shí)現(xiàn)模擬濾波器無(wú)法實(shí)現(xiàn)的特殊功能等。數(shù)字濾波器可
55、以滿足濾波器對(duì)幅度和相位特性的嚴(yán)格要求,避免模擬濾波器無(wú)法克服的電壓漂移、溫度漂移和噪聲等問(wèn)題。數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn),通常按下述步驟進(jìn)行:首先,根據(jù)不同用途提出數(shù)字濾波器的技術(shù)指標(biāo);然后,設(shè)計(jì)一個(gè)穩(wěn)定的、因果的數(shù)學(xué)模型H(z)來(lái)逼近所要求的技術(shù)指標(biāo);最后,設(shè)計(jì)專用的數(shù)字硬件來(lái)實(shí)現(xiàn)這個(gè)數(shù)學(xué)模型,或者用通用的電子計(jì)算機(jī)運(yùn)行軟件予以實(shí)現(xiàn)。4.2 數(shù)字濾波器的分類 現(xiàn)在,更多地是利用數(shù)字濾波器代替模擬濾波器作為選擇性濾波器。數(shù)字濾波器是利用采樣以及量化過(guò)的信號(hào),但就幅頻與相頻的概念而言,仍是以模擬濾波器為基礎(chǔ)的。 設(shè)數(shù)字濾波器的傳遞函數(shù)為H(z),則可以表示為 (4.1) 式中,z是z變換的變量,并取H(z)的分子與分母的系數(shù)全部為實(shí)數(shù)。 分析(4.1)式可知,只要分母多項(xiàng)式(i=1,2,,M)中有一個(gè)不為0,濾波器的內(nèi)部就存在反饋環(huán)。這種內(nèi)部有反饋環(huán)的濾波器稱為遞歸濾波器。相反,所有系數(shù)(i=1,2,,M)都為0的濾波器稱為非遞歸濾波器。由于非遞歸濾波器的內(nèi)部沒(méi)有反饋環(huán),所以這種濾波器總是
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年浙科版七年級(jí)歷史下冊(cè)階段測(cè)試試卷
- 2025年湘師大新版九年級(jí)地理上冊(cè)月考試卷含答案
- 年產(chǎn)1000萬(wàn)把扳手技改項(xiàng)目可行性研究報(bào)告寫作模板-申批備案
- 2025年冀教版九年級(jí)歷史下冊(cè)階段測(cè)試試卷
- 2025年統(tǒng)編版九年級(jí)地理下冊(cè)階段測(cè)試試卷含答案
- 二零二五年度農(nóng)家樂(lè)生態(tài)農(nóng)業(yè)科技示范園合作開(kāi)發(fā)合同范本4篇
- 二零二五版美甲店顧客滿意度調(diào)查與分析合同模板3篇
- 二零二五寧波教育培訓(xùn)機(jī)構(gòu)教師勞動(dòng)合同4篇
- 2025年度水上交通船舶駕駛員派遣合同范本4篇
- 二零二五年度住宅小區(qū)智能化改造合同4篇
- 《向心力》 教學(xué)課件
- 結(jié)構(gòu)力學(xué)數(shù)值方法:邊界元法(BEM):邊界元法的基本原理與步驟
- 2024年山東省泰安市高考語(yǔ)文一模試卷
- 工程建設(shè)行業(yè)標(biāo)準(zhǔn)內(nèi)置保溫現(xiàn)澆混凝土復(fù)合剪力墻技術(shù)規(guī)程
- 北師大版物理九年級(jí)全一冊(cè)課件
- 2024年第三師圖木舒克市市場(chǎng)監(jiān)督管理局招錄2人《行政職業(yè)能力測(cè)驗(yàn)》高頻考點(diǎn)、難點(diǎn)(含詳細(xì)答案)
- RFJ 006-2021 RFP型人防過(guò)濾吸收器制造與驗(yàn)收規(guī)范(暫行)
- 盆腔炎教學(xué)查房課件
- 新概念英語(yǔ)課件NCE3-lesson15(共34張)
- GB/T 3683-2023橡膠軟管及軟管組合件油基或水基流體適用的鋼絲編織增強(qiáng)液壓型規(guī)范
- 電視劇《瑯琊榜》特色分析
評(píng)論
0/150
提交評(píng)論