<meta name="keywords" content="庄家克星时时彩,分享贴:刚完成的FPGA插值滤波器设计" />

分享贴:刚完成的FPGA插值滤波器设计

宣布时间:2018年11月15日 00:11    宣布者:luckyb1
1    项目配景 (源码下载 交流指导群:544453837)1.1 多采样率数字滤波器

      多采样率就是有多个采样率的意思。前面所说的FIR,IIR滤波器都是只需一个采样频率,是结实稳固的采样率,可是有些情形下须要不合采样频率下的旌旗暗记。

      凭证传统的速率转换现实,我们要完成采样速率的转换,可以这样做,假定有一个有用的正弦波模拟旌旗暗记,AD采样速率是f1,现在我须要用到的是采样频率是f2的旌旗暗记,传统做法是将这个经由f1采样后的旌旗暗记阻拦DA转换,再将转换后的模拟旌旗暗记阻拦以f2采样频率的抽样,取得采样率为f2的数字旌旗暗记,至此完成采样频率的转换

      然则这样的做法不只费事,而且处置赏罚赏罚欠好的话会使旌旗暗记遭到毁伤,以是这类头脑就被镌汰了,现在我们用到的采样率转换的措施就是抽取与内插的头脑。

1.2 抽取

     先来全体来诠释一下抽取的寄义:前面不是说,一个有用的正弦波模拟旌旗暗记经采样频率为f1的抽样旌旗暗记抽样后取得了数字旌旗暗记,很显着这个数字旌旗暗记序列是在f1频率下取得的,现在,假定我隔几个点抽取一个旌旗暗记,好比就是5吧,我隔5个点抽取一个旌旗暗记,能否是就是相当于我接纳了1/5倍f1的采样频率对模拟旌旗暗记阻拦采样了?以是,抽取的历程就是降低抽样率的历程,然则我们知道,这是在时域的抽样,时域的抽样即是旌旗暗记在频域波形的周期延拓,周期就是采样频率,以是,为了防止在频域发生频谱混叠,抽样定理也是我们要推敲的因素

    下面来详细来简介



       如上图所示,假定下面就是某一有用旌旗暗记经采样频率f1抽样取得的频谱,假定这时间间辰的采样频率为8Khz,可以经由历程数格子取得,从0到F1处有8个空格,每个空格代表1Khz,有些同伙能够会问,这不是在数字频域吗,单元不是π吗,哪来的hz?是的,这里是数字频域,采样频率F1处对应的是2π,这里只是为了好诠释,我们用模拟频率来对应数字频率。



      下面是采样频率为8K的数字旌旗暗记频域图,现在我要对这个数字旌旗暗记阻拦时域抽取,从而来降低旌旗暗记的采样率,我们知道,一旦我们对数字旌旗暗记阻拦时域抽取,那么采样率降低,而采样率就是数字旌旗暗记频域的波形周期,那么也就是周期降低,以是,我们对旌旗暗记阻拦抽取要有个度,要在知足抽样定理的条件下对旌旗暗记阻拦抽取,否则就会发生频谱混叠。

      上图就是对旌旗暗记阻拦了1/5倍的F1采样频率抽取,可见,由于发生了频谱混叠情形,由于1/5倍的F1是1600hz,而旌旗暗记的频带是1000hz,不知足抽样定理,招致发生了频谱混叠,以是,为了防止发生这类情形,除要知足抽样定理以外,即抽样倍数不克不及太高,我们还须要把旌旗暗记的频带设置在F1/2以下,才干确保旌旗暗记不发生频谱混叠,是以,我们须要在抽取之前加一个低通滤波器,书上叫做抗混叠低通滤波器,用来限制旌旗暗记的频带,然后再阻拦抽取,这样的话我们来算一下

     低通滤波器的阻拦频率就是1/2倍的经抽取后的采样速率,即fc = 1/2 * (F1/M) ,M是抽取倍数。而1/2*F1对应的数域频率是π,是以我们得出,

     抗混叠低通滤波器的阻拦频率是π/M

1.3  内插

     抽取的历程是降低采样率的历程,那么插值的历程虽然就是前进采样率的历程。年夜体的思绪可以这么明确,我们将经f1抽样下取得的数字旌旗暗记的每两个点之间阻拦插值,拔出的值是0,插值以后,旌旗暗记在单元时间内的采样点数增多,虽然也就是采样速率的提升,采样速率提升后我们知道,那么旌旗暗记的频谱的周期就会增添



      须要重视的一点就是,插值前后,我们只是在时域旌旗暗记中央拔出了D-1个零值,仅仅是改变了采样率,并没有改变旌旗暗记的信息,是以,在频域,旌旗暗记频谱的形状是不会改变的,改变的仅仅是周期,如上图,F1是插值之前旌旗暗记的周期,插值以后,旌旗暗记频谱的形状稳固,周期成了F1*D,D是插值倍数。假定我们直接用F1*D倍的采样率采旌旗暗记,取得的频谱会发现,就不会有中央两个波形,是以,这两个波形是多余的,书上叫做是镜像频谱。既然是多余的,我们便可以将它用一个低通滤波器滤掉落落,这样的低通滤波器,就叫做镜像低通滤波器。这样我们来盘算一下镜像低通滤波器的阻拦频率



      凭证下面这张图我们可以求出镜像低通滤波器的阻拦频率,可以看到,fc = 1/2 *F1,这里我们假定,内插以后的采样频率为F2=F1*D,那么,fc =1/2*(F2/D),而1/2*F2对应的是π,重视,这里是1/2*F2对应π,不是1/2*F1了,由于这曾经是插值以后采样率增添以后的频谱了,以是我们得出:

       镜像低通滤波器的阻拦频率为:π/D


1设计目的

本次案例将应用到采样率年夜于100M的双通道的示波器。将示波器的两个通道,划分与FPGA的DA通道1和DA通道2相连,不雅不雅察两路DA的输入。其毗连体现以下图所示:



     本案例是FPGA外部发生正弦旌旗暗记,这个正弦旌旗暗记一起输入给DA通道A,此外一起经由插值滤波器后,输入给DA通道B。



     正弦旌旗暗记发生电路发生频率为62.5KHz的正弦旌旗暗记,该正弦旌旗暗记由8个点组成。

     插值滤波器是4倍的插值,也就是说出去是8个点的正弦波,输入将是32个的正弦波。

    仿真效果,下面的波形为插值前,下面的为插值后可以显着看出下面的波形越发圆滑。



    下面是示波器的显示效果



3   设计完成3.1 顶层旌旗暗记

     新建目录:D:\mdy_book\cic_prj。在该目录中,新建一个名为cic_prj.v的文件,并用GVIM掀开,泉源编写代码。

     我们要完成的功效,归纳综合起来就是FPGA发生控制AD9709,让其中的通道A未滤波的正弦旌旗暗记,让通道B输入滤波后的正弦旌旗暗记。为了控制AD9709的使命形式,就要控制AD9709的MODE、SLEEP管脚;为了控制通道A,就须要控制AD9729的CLK1、WRT1、DB7~0P1管脚;为了控制通道B,就须要控制AD9729的CLK2、WRT2、DB7~0P2管脚。凭证设计目的的请求,一切工程须要以下旌旗暗记:

1.       应用clk毗连到晶振,体现50M时钟的输入。

2.       应用rst_n毗连到按键,体现复位旌旗暗记。

3.       应用dac_mode旌旗暗记毗连到AD9709的MODE管脚,用来控制其使命形式。

4.       应用dac_sleep旌旗暗记毗连到AD9709的SLEEP管脚,用来控制其睡眠形式。

5.       应用dac_clka旌旗暗记毗连到AD9709的CLK1管脚,用来控制通道A的时钟。

6.       应用dac_wra旌旗暗记毗连到AD9709的WRT1管脚,用来控制通道A的写使能。

7.       应用8位旌旗暗记dac_da毗连到AD9709的DB7~0P1管脚,用来控制通道A的写数据。

8.       应用dac_clkb号毗连到AD9709的CLK2脚,用来控制通道B时钟。

9.       应用dac_wrb号毗连到AD9709的WRT2脚,用来控制通道B使能。

10.    应用8位旌旗暗记dac_db接到AD9709的DB7~0P2脚,用来控制通道B写数据。


     综上所述,我们这个工程须要10个旌旗暗记,时钟clk,复位rst_n,dac_mode、dac_sleep、dac_clka、dac_wra、dac_da、dac_clkb、dac_wrb和dac_db旌旗暗记,其中dac_da和dac_db是8位旌旗暗记,其他都是1位旌旗暗记。下面表格体现了硬件电路图的毗连关系。



    将module的称谓界说为cic_prj,代码以下:



      其中clk、rst_n是1位的输入旌旗暗记,dac_da和dac_db是8位的输入旌旗暗记,dac_mode,dac_clka,dac_wra,dac_sleep,dac_clkb,dac_wrb是一名输入旌旗暗记。



3.2  正弦旌旗暗记设计

     假定发生的正弦旌旗暗记命名为sin_data旌旗暗记。sin_data一共有8个值,是从一个正弦旌旗暗记中,按(2*pi/8)的距离采样到的,可列出下表。



       很自然地界说一个7位的选择旌旗暗记addr。我们只需控制好addr,便可以便利取得sin_data。是以可以写出下面代码。



      接上去是设计旌旗暗记addr。

     addr是用来控制选择数据的地址,经由历程控制addr的增添值,便可以发生所须要的正弦波。

     本案例请求发生62.5KHz的正弦旌旗暗记。该正弦旌旗暗记的周期是16000ns。本工程的使命时钟是20ns,也就是16000/20 = 800个时钟输入一个正弦旌旗暗记,也就是800个时钟将上表的8个值输入一遍,即每100个时钟输入addr加1。

    每100个时钟输入一个值,那意味着我们须要一个计数器cnt0,该计数器用来对这100阻拦计数。计数器的加1条件是“1”,阻拦条件是“数到100个”。是以可写出cnt0的代码。



     每100个时钟后,addr就加1。诠释这个addr也是一个计数器,该计数器的加1条件是“数到100个时钟”,即end_cnt0,阻拦条件是“数到8个”。



3.3    CIC  滤波器设计3.3.1 新建FPGA工程



1.)掀开quartus,点击File 在File菜单被选择New ProjectWizard.... 。



     2.弹出Introduction界面选择Next。



    (3)设置工程目录,工程名,顶层模块名

     工程目录设置为:D:\mdy_book\cic_prj

     工程名:cic_prj

     顶层模块名:cic_prj

      填写终了后,点击next之落伍入下一界面。



     (3.)在文件添加界面,不选择任何文件。点击Next,进入下一个界面。工程类型界面,Project Type选择Empty project,选择空缺工程。点Next进入下一个界面。



(3.)在文件添加界面,不选择任何文件。点击Next,进入下一个界面。



(4.)器件选择界面。在Device family这一项当被选择 Cyclone IV E;不才部的Available device 选择EP4CE6F23C8。完成后直接点击Finish。

3.3.2FPGA天生CIC IP核



       培植工程后,在quartus中IP catalog这一界面被选择DSP下一目录被选择Filter 再选择 CIC。



      点击落伍入此界面给重天生的fir滤波器ip核选择以下蹊径:D:\mdy_book\cic_prj,entityname填写:my_cic。点击OK后,进入FIR滤波器设置界面。



     按以下设置:

     Filter Type:要选择Interpolator,体现是插值滤波器。

    Rate change factor:填上4,体现是4倍插值。

     output Rounding Method:选择Truncation,体现输入的效果要截断。

    Output data width:选择8。体现输入效果要截断为8位。

    其他选项默许,点击窗口右下角的Generate Hdl,会弹出下面的窗口。




     重视选择文件是Verilog文件,其他都不用勾选。点击Generate,就会天生y_cic的verilog文件。



      泛起下面的提醒,就是天生告成了。

     点Finish关闭CIC滤波器天生窗口。



      假定泛起下面的提醒,就是体现要手动将适才天生的IP核加到本工程。



       在Project菜单被选择Add/Remove File to Project,弹出文件窗口。



      点击右上角的,在弹出来的窗口中,双击选择D:\mdy_book\cic_prj\my_cic\synthesis目录下的my_cic.qip文件(重视不要弄错文件类型)。然后记得要点Add,才算正式加到工程。




点OK关闭本窗口。

IP核天生后弹出此对话框点击yes 将此IP核添加进工程。

3.3.3   例化CIC IP核

      用GVIM掀开D:\mdy_book\cic_prj\my_cic\synthesis\my_cic.v文件,该文件就是天生的CIC IP核文件





        特殊重视的是,滤波器的输入数据和输入数据都是有符号数(补码的形式,-128~127)。而我们知道,正弦信sin_data是无符号数(0~255)。以是要将sin_data酿成有符号数,再送给FIR阻拦滤波。假定转换后的旌旗暗记为cic_din,该旌旗暗记位宽为8位。

      无符号数转成有符号数的措施很质朴:cic_din = sin_data - 128。读者有兴趣可以验证一下。

      天生CIC IP核后,我们要对其阻拦例化,才行应用上这个IP核,例假名起名u_my_cic,cic的输入数据旌旗暗记命名为cic_dout。

       我们要控制CIC IP核的输入,使每个数据都能等距离输入数据。由于CIC滤波器的输入是100个时钟一个数据,CIC是4倍速率,是以输入是25个时钟一个数据。以是我们每25个时钟给一个有用旌旗暗记连到out_ready接口上。这时间间须要一个计数器cnt1来计时25个时钟,该计数器加1条件是“1”,阻拦条件是“数到25个”。






迎接分享本文,转载请生涯出处:http://badahub.com/thread-550040-1-1.html     【打印本页】
您须要登录后才可以揭晓议论 登录 | 急速注册

厂商推荐

关于我们  -  服务条目  -  应用指南  -  站点舆图  -  友谊链接  -  联系我们
庄家克星时时彩-时时彩qq群-时时彩平台推荐 © 版权一切   | 京公网安备110108881021702
回顶部