国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

分享貼:剛完成的FPGA插值濾波器設(shè)計(jì)

發(fā)布時(shí)間:2018-11-15 00:26    發(fā)布者:luckyb1
1    項(xiàng)目背景 (源碼下載 交流輔導(dǎo)群:544453837)1.1 多采樣率數(shù)字濾波器
      多采樣率就是有多個(gè)采樣率的意思。前面所說的FIR,IIR濾波器都是只有一個(gè)采樣頻率,是固定不變的采樣率,然而有些情況下需要不同采樣頻率下的信號(hào)。
      按照傳統(tǒng)的速率轉(zhuǎn)換理論,我們要實(shí)現(xiàn)采樣速率的轉(zhuǎn)換,可以這樣做,假如有一個(gè)有用的正弦波模擬信號(hào),AD采樣速率是f1,現(xiàn)在我需要用到的是采樣頻率是f2的信號(hào),傳統(tǒng)做法是將這個(gè)經(jīng)過f1采樣后的信號(hào)進(jìn)行DA轉(zhuǎn)換,再將轉(zhuǎn)換后的模擬信號(hào)進(jìn)行以f2采樣頻率的抽樣,得到采樣率為f2的數(shù)字信號(hào),至此完成采樣頻率的轉(zhuǎn)換
      但是這樣的做法不僅麻煩,而且處理不好的話會(huì)使信號(hào)受到損傷,所以這種思想就被淘汰了,現(xiàn)在我們用到的采樣率轉(zhuǎn)換的方法就是抽取與內(nèi)插的思想。
1.2 抽取
     先來總體來解釋一下抽取的含義:前面不是說,一個(gè)有用的正弦波模擬信號(hào)經(jīng)采樣頻率為f1的抽樣信號(hào)抽樣后得到了數(shù)字信號(hào),很明顯這個(gè)數(shù)字信號(hào)序列是在f1頻率下得到的,現(xiàn)在,假如我隔幾個(gè)點(diǎn)抽取一個(gè)信號(hào),比如就是5吧,我隔5個(gè)點(diǎn)抽取一個(gè)信號(hào),是不是就是相當(dāng)于我采用了1/5倍f1的采樣頻率對模擬信號(hào)進(jìn)行采樣了?所以,抽取的過程就是降低抽樣率的過程,但是我們知道,這是在時(shí)域的抽樣,時(shí)域的抽樣等于信號(hào)在頻域波形的周期延拓,周期就是采樣頻率,所以,為了避免在頻域發(fā)生頻譜混疊,抽樣定理也是我們要考慮的因素
    下面來具體來介紹


       如上圖所示,假如上面就是某一有用信號(hào)經(jīng)采樣頻率f1抽樣得到的頻譜,假設(shè)這時(shí)候的采樣頻率為8Khz,可以通過數(shù)格子得到,從0到F1處有8個(gè)空格,每個(gè)空格代表1Khz,有些朋友可能會(huì)問,這不是在數(shù)字頻域嗎,單位不是π嗎,哪來的hz?是的,這里是數(shù)字頻域,采樣頻率F1處對應(yīng)的是2π,這里只是為了好解釋,我們用模擬頻率來對應(yīng)數(shù)字頻率。


      上面是采樣頻率為8K的數(shù)字信號(hào)頻域圖,現(xiàn)在我要對這個(gè)數(shù)字信號(hào)進(jìn)行時(shí)域抽取,從而來降低信號(hào)的采樣率,我們知道,一旦我們對數(shù)字信號(hào)進(jìn)行時(shí)域抽取,那么采樣率下降,而采樣率就是數(shù)字信號(hào)頻域的波形周期,那么也就是周期下降,所以,我們對信號(hào)進(jìn)行抽取要有個(gè)度,要在滿足抽樣定理的條件下對信號(hào)進(jìn)行抽取,否則就會(huì)發(fā)生頻譜混疊。
      上圖就是對信號(hào)進(jìn)行了1/5倍的F1采樣頻率抽取,可見,由于發(fā)生了頻譜混疊現(xiàn)象,因?yàn)?/5倍的F1是1600hz,而信號(hào)的頻帶是1000hz,不滿足抽樣定理,導(dǎo)致發(fā)生了頻譜混疊,所以,為了避免發(fā)生這種情況,除了要滿足抽樣定理之外,即抽樣倍數(shù)不能太高,我們還需要把信號(hào)的頻帶設(shè)置在F1/2以下,才能確保信號(hào)不發(fā)生頻譜混疊,因此,我們需要在抽取之前加一個(gè)低通濾波器,書上叫做抗混疊低通濾波器,用來限制信號(hào)的頻帶,然后再進(jìn)行抽取,這樣的話我們來算一下
     低通濾波器的截止頻率就是1/2倍的經(jīng)抽取后的采樣速率,即fc = 1/2 * (F1/M) ,M是抽取倍數(shù)。而1/2*F1對應(yīng)的數(shù)域頻率是π,因此我們得出,
     抗混疊低通濾波器的截止頻率是π/M
1.3  內(nèi)插
     抽取的過程是降低采樣率的過程,那么插值的過程當(dāng)然就是提高采樣率的過程。大體的思路可以這么理解,我們將經(jīng)f1抽樣下得到的數(shù)字信號(hào)的每兩個(gè)點(diǎn)之間進(jìn)行插值,插入的值是0,插值之后,信號(hào)在單位時(shí)間內(nèi)的采樣點(diǎn)數(shù)增多,當(dāng)然也就是采樣速率的提升,采樣速率提升后我們知道,那么信號(hào)的頻譜的周期就會(huì)增加


      需要注意的一點(diǎn)就是,插值前后,我們只是在時(shí)域信號(hào)中間插入了D-1個(gè)零值,僅僅是改變了采樣率,并沒有改變信號(hào)的信息,因此,在頻域,信號(hào)頻譜的形狀是不會(huì)改變的,改變的僅僅是周期,如上圖,F(xiàn)1是插值之前信號(hào)的周期,插值之后,信號(hào)頻譜的形狀不變,周期成了F1*D,D是插值倍數(shù)。如果我們直接用F1*D倍的采樣率采信號(hào),得到的頻譜會(huì)發(fā)現(xiàn),就不會(huì)有中間兩個(gè)波形,因此,這兩個(gè)波形是多余的,書上叫做是鏡像頻譜。既然是多余的,我們就可以將它用一個(gè)低通濾波器濾掉,這樣的低通濾波器,就叫做鏡像低通濾波器。這樣我們來計(jì)算一下鏡像低通濾波器的截止頻率


      根據(jù)上面這張圖我們可以求出鏡像低通濾波器的截止頻率,可以看到,fc = 1/2 *F1,這里我們假設(shè),內(nèi)插之后的采樣頻率為F2=F1*D,那么,fc =1/2*(F2/D),而1/2*F2對應(yīng)的是π,注意,這里是1/2*F2對應(yīng)π,不是1/2*F1了,因?yàn)檫@已經(jīng)是插值之后采樣率增加之后的頻譜了,所以我們得出:
       鏡像低通濾波器的截止頻率為:π/D

1設(shè)計(jì)目標(biāo)
本次案例將使用到采樣率大于100M的雙通道的示波器。將示波器的兩個(gè)通道,分別與FPGA的DA通道1和DA通道2相連,觀察兩路DA的輸出。其連接示意如下圖所示:


     本案例是FPGA內(nèi)部產(chǎn)生正弦信號(hào),這個(gè)正弦信號(hào)一路輸出給DA通道A,另一路經(jīng)過插值濾波器后,輸出給DA通道B。


     正弦信號(hào)產(chǎn)生電路產(chǎn)生頻率為62.5KHz的正弦信號(hào),該正弦信號(hào)由8個(gè)點(diǎn)組成。
     插值濾波器是4倍的插值,也就是說進(jìn)來是8個(gè)點(diǎn)的正弦波,輸出將是32個(gè)的正弦波。
    仿真效果,上面的波形為插值前,下面的為插值后可以明顯看出下面的波形更為圓滑。


    下面是示波器的顯示效果


3   設(shè)計(jì)實(shí)現(xiàn)3.1 頂層信號(hào)
     新建目錄:D:\mdy_book\cic_prj。在該目錄中,新建一個(gè)名為cic_prj.v的文件,并用GVIM打開,開始編寫代碼。
     我們要實(shí)現(xiàn)的功能,概括起來就是FPGA產(chǎn)生控制AD9709,讓其中的通道A未濾波的正弦信號(hào),讓通道B輸出濾波后的正弦信號(hào)。為了控制AD9709的工作模式,就要控制AD9709的MODE、SLEEP管腳;為了控制通道A,就需要控制AD9729的CLK1、WRT1、DB7~0P1管腳;為了控制通道B,就需要控制AD9729的CLK2、WRT2、DB7~0P2管腳。根據(jù)設(shè)計(jì)目標(biāo)的要求,整個(gè)工程需要以下信號(hào):
1.       使用clk連接到晶振,表示50M時(shí)鐘的輸入。
2.       使用rst_n連接到按鍵,表示復(fù)位信號(hào)。
3.       使用dac_mode信號(hào)連接到AD9709的MODE管腳,用來控制其工作模式。
4.       使用dac_sleep信號(hào)連接到AD9709的SLEEP管腳,用來控制其睡眠模式。
5.       使用dac_clka信號(hào)連接到AD9709的CLK1管腳,用來控制通道A的時(shí)鐘。
6.       使用dac_wra信號(hào)連接到AD9709的WRT1管腳,用來控制通道A的寫使能。
7.       使用8位信號(hào)dac_da連接到AD9709的DB7~0P1管腳,用來控制通道A的寫數(shù)據(jù)。
8.       使用dac_clkb號(hào)連接到AD9709的CLK2腳,用來控制通道B時(shí)鐘。
9.       使用dac_wrb號(hào)連接到AD9709的WRT2腳,用來控制通道B使能。
10.    使用8位信號(hào)dac_db接到AD9709的DB7~0P2腳,用來控制通道B寫數(shù)據(jù)。

     綜上所述,我們這個(gè)工程需要10個(gè)信號(hào),時(shí)鐘clk,復(fù)位rst_n,dac_mode、dac_sleep、dac_clka、dac_wra、dac_da、dac_clkb、dac_wrb和dac_db信號(hào),其中dac_da和dac_db是8位信號(hào),其他都是1位信號(hào)。下面表格表示了硬件電路圖的連接關(guān)系。


    將module的名稱定義為cic_prj,代碼如下:


      其中clk、rst_n是1位的輸入信號(hào),dac_da和dac_db是8位的輸出信號(hào),dac_mode,dac_clka,dac_wra,dac_sleep,dac_clkb,dac_wrb是一位輸出信號(hào)。


3.2  正弦信號(hào)設(shè)計(jì)
     假設(shè)產(chǎn)生的正弦信號(hào)命名為sin_data信號(hào)。sin_data一共有8個(gè)值,是從一個(gè)正弦信號(hào)中,按(2*pi/8)的間隔采樣到的,可列出下表。


       很自然地定義一個(gè)7位的選擇信號(hào)addr。我們只要控制好addr,就能方便得到sin_data。因此可以寫出下面代碼。


      接下來是設(shè)計(jì)信號(hào)addr。
     addr是用來控制選擇數(shù)據(jù)的地址,通過控制addr的增加值,就能產(chǎn)生所需要的正弦波。
     本案例要求產(chǎn)生62.5KHz的正弦信號(hào)。該正弦信號(hào)的周期是16000ns。本工程的工作時(shí)鐘是20ns,也就是16000/20 = 800個(gè)時(shí)鐘輸出一個(gè)正弦信號(hào),也就是800個(gè)時(shí)鐘將上表的8個(gè)值輸出一遍,即每100個(gè)時(shí)鐘輸出addr加1。
    每100個(gè)時(shí)鐘輸出一個(gè)值,那意味著我們需要一個(gè)計(jì)數(shù)器cnt0,該計(jì)數(shù)器用來對這100進(jìn)行計(jì)數(shù)。計(jì)數(shù)器的加1條件是“1”,結(jié)束條件是“數(shù)到100個(gè)”。因此可寫出cnt0的代碼。


     每100個(gè)時(shí)鐘后,addr就加1。說明這個(gè)addr也是一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器的加1條件是“數(shù)到100個(gè)時(shí)鐘”,即end_cnt0,結(jié)束條件是“數(shù)到8個(gè)”。


3.3    CIC  濾波器設(shè)計(jì)3.3.1 新建FPGA工程


1.)打開quartus,點(diǎn)擊File 在File菜單中選擇New ProjectWizard.... 。


     2.彈出Introduction界面選擇Next。


    (3)設(shè)置工程目錄,工程名,頂層模塊名
     工程目錄設(shè)置為:D:\mdy_book\cic_prj
     工程名:cic_prj
     頂層模塊名:cic_prj
      填寫完畢后,點(diǎn)擊next之后進(jìn)入下一界面。


     (3.)在文件添加界面,不選擇任何文件。點(diǎn)擊Next,進(jìn)入下一個(gè)界面。工程類型界面,Project Type選擇Empty project,選擇空白工程。點(diǎn)Next進(jìn)入下一個(gè)界面。


(3.)在文件添加界面,不選擇任何文件。點(diǎn)擊Next,進(jìn)入下一個(gè)界面。


(4.)器件選擇界面。在Device family這一項(xiàng)之中選擇 Cyclone IV E;在下部的Available device 選擇EP4CE6F23C8。完成后直接點(diǎn)擊Finish。
3.3.2FPGA生成CIC IP核


       建立工程后,在quartus中IP catalog這一界面中選擇DSP下一目錄中選擇Filter 再選擇 CIC。


      點(diǎn)擊后進(jìn)入此界面給新生成的fir濾波器ip核選擇如下路徑:D:\mdy_book\cic_prj,entityname填寫:my_cic。點(diǎn)擊OK后,進(jìn)入FIR濾波器設(shè)置界面。


     按如下設(shè)置:
     Filter Type:要選擇Interpolator,表示是插值濾波器。
    Rate change factor:填上4,表示是4倍插值。
     output Rounding Method:選擇Truncation,表示輸出的結(jié)果要截?cái)唷?/font>
    Output data width:選擇8。表示輸出結(jié)果要截?cái)酁?位。
    其他選項(xiàng)默認(rèn),點(diǎn)擊窗口右下角的Generate Hdl,會(huì)彈出下面的窗口。



     注意選擇文件是Verilog文件,其他都不用勾選。點(diǎn)擊Generate,就會(huì)生成y_cic的verilog文件。


      出現(xiàn)上面的提示,就是生成成功了。
     點(diǎn)Finish關(guān)閉CIC濾波器生成窗口。


      如果出現(xiàn)上面的提示,就是表示要手動(dòng)將剛才生成的IP核加到本工程。


       在Project菜單中選擇Add/Remove File to Project,彈出文件窗口。


      點(diǎn)擊右上角的,在彈出來的窗口中,雙擊選擇D:\mdy_book\cic_prj\my_cic\synthesis目錄下的my_cic.qip文件(注意不要搞錯(cuò)文件類型)。然后記得要點(diǎn)Add,才算正式加到工程。



點(diǎn)OK關(guān)閉本窗口。
IP核生成后彈出此對話框點(diǎn)擊yes 將此IP核添加進(jìn)工程。
3.3.3   例化CIC IP核
      用GVIM打開D:\mdy_book\cic_prj\my_cic\synthesis\my_cic.v文件,該文件就是生成的CIC IP核文件




        特別注意的是,濾波器的輸入數(shù)據(jù)和輸出數(shù)據(jù)都是有符號(hào)數(shù)(補(bǔ)碼的形式,-128~127)。而我們知道,正弦信sin_data是無符號(hào)數(shù)(0~255)。所以要將sin_data變成有符號(hào)數(shù),再送給FIR進(jìn)行濾波。假設(shè)轉(zhuǎn)換后的信號(hào)為cic_din,該信號(hào)位寬為8位。
      無符號(hào)數(shù)轉(zhuǎn)成有符號(hào)數(shù)的方法很簡單:cic_din = sin_data - 128。讀者有興趣可以驗(yàn)證一下。
      生成CIC IP核后,我們要對其進(jìn)行例化,才行使用上這個(gè)IP核,例化名起名u_my_cic,cic的輸出數(shù)據(jù)信號(hào)命名為cic_dout。
       我們要控制CIC IP核的輸出,使每個(gè)數(shù)據(jù)都能等間隔輸出數(shù)據(jù)。由于CIC濾波器的輸入是100個(gè)時(shí)鐘一個(gè)數(shù)據(jù),CIC是4倍速率,因此輸出是25個(gè)時(shí)鐘一個(gè)數(shù)據(jù)。所以我們每25個(gè)時(shí)鐘給一個(gè)有效信號(hào)連到out_ready接口上。這時(shí)需要一個(gè)計(jì)數(shù)器cnt1來計(jì)時(shí)25個(gè)時(shí)鐘,該計(jì)數(shù)器加1條件是“1”,結(jié)束條件是“數(shù)到25個(gè)”。





本文地址:http://m.qingdxww.cn/thread-550040-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • PIC32CM LS60 Curiosity Pro評估工具包
  • PIC32CM LS00 Curiosity Pro評估工具包
  • 實(shí)時(shí)控制解決方案的正確選擇——數(shù)字信號(hào)控制器(DSC)或通用MCU
  • dsPIC® DSC:攻克各種觸摸傳感挑戰(zhàn)的電容式觸摸解決方案
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜网站视频| 亚洲天堂伦理| 日本精品视频四虎在线观看| 亚洲高清在线| 亚洲高清免费| 午夜精品久久久久久毛片| 日本激情一区二区三区| 一二三区在线视频| 欧美亚洲国产成人精品| 欧美一级在线全免费| 午夜精品在线视频| 亚洲综合中文网| 午夜看片| 野外一级毛片| 午夜呻吟| 午夜精品久久久久久91| 狍和美女一级aa毛片| 欧美日韩小视频| 日韩精品久久久久影院| 一级啪啪| 天天影院色| 日韩美女va毛片在线播放| 亚洲精品午夜级久久久久| 天堂精品高清1区2区3区| 欧美一级xxxx俄罗斯一级| 一级毛片免费全部播放| 日韩精品成人免费观看| 欧美乱码伦视频免费| 日本精品久久久久中文字幕2 | 亚洲人成一区二区不卡| 视色4se影院在线播放| 欧美做a一级视频免费观看| 日韩久久一级毛片| 一级黄色片一级黄色片| 天天涩| 日本精品久久久久久福利| 日韩永久免费视频| 亚洲欧美在线综合一区二区三区| 青青青国产依人在线视频97| 欧美日韩精品高清一区二区| 一级美国乱色毛片|