电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

MATLAB设计FPGA实现联合ISE和Modelsim仿真的FIR滤波器设计

  • 资源ID:473912713       资源大小:1.07MB        全文页数:24页
  • 资源格式: DOC        下载积分:20金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要20金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

MATLAB设计FPGA实现联合ISE和Modelsim仿真的FIR滤波器设计

MATLAB设计,PG实现,联合IS和odelsm仿真的FR滤波器设计 摘要:本文一方面运用MTL产生两个频率不同样的正弦信号,并将这两个正弦信号相加,得到一种混叠的波形;然后运用MLA设计一种FR低通滤波器,并由Veog实现,联合I和Modesi仿真,实现滤除频率较高的信号,并将滤波后的数据送到MALB中分析。本文一方面简介IR滤波器的基本原理,然后从目前最流行的的设计方式入手,逐渐简介F滤波器的设计,其流程图如图1所示:图1一、 FR滤波器的基本原理:数字滤波器是从分析信号中提取顾客需要的信息,滤去不需要的信号成分或者干扰成分。数字滤波器的数学模型:线性时不变数字滤波器的数学模型在时域中可以用线性常系数差分方程给出:其等效的Z变换为: 当 全为0时,域系统函数只有零点,数字滤波器的单位脉冲响应有限,一般这用滤波器被称为有限冲激响应(FIR)滤波器。它的输出只与目前的输入和过去的输入有关,跟过去的输出无关。FIR滤波器的一种重要特性是具有线性相位,即系统的相异和频率成正比,可达到无失真传播。 更加具体的简介FIR滤波器的理论算法知识,请参照别的先关书籍资料、二、 FIR滤波器的设计及验证:1) 由MATLAB产生I滤波器的输入数据,并寄存到.tx文献中用MATLAB产生两个频率分别为:0.5MHz和2M的正弦信号,并将这两个正弦信号叠加,得到一种混叠的信号,并将这个混叠信号的波形数据寄存到C盘根目录下面的matab_ave_datatt文献中。MAT实现代码如下:cleall;f = 20000; %2M采样率t= 0:/fs:0.002; % 共0.002 500000= 5000个点f1 = 500000;2 = 00;sgal1 sin(2*pi*1*t); % 频率为 0.5MHz的正弦信号sgnl =n(*pi*2*t); 频率为 2.H 的正弦信%由于正、余弦波形的值在,1之间,需要量化成6bi,先将数值放大 ix(38 (24 - 1) * signal1); 量化到5bit3 fix(163 + (24 - 1) * sial2); 量化到 1ity1= y2+ y; % 量化到6 再将放大的浮点值量化,并写道到寄存在盘的文本中fi fopen(c:/tb_wve_da.txt', 'wt');ritf(id, '%xn', y1);% 以6进制的格式将数据寄存到.tx文献中。如果不用16进制,背面% 读数会出错。fclose(i);plo(2, '');hodon;plo(y3, 'b');hod on;p(y,'');leged('0.5MH正弦',2Mz正弦,'两者叠加');title(MATLB产生的两个正弦信号的叠加波形'); 信号波形图如图所示:图2 寄存数据的文献途径、名称已经文本的内容如图3所示:图3用ATAB回读C盘根目录下的matlb_wve_daa.xt文献,验证存入的波形数据与否对的,MATLAB代码如下:fi= fopen(c:/mlawav_daa.txt',r');f : 00;%一共有5001个数据um(i) =fscanf(fid, 'x', 1);%从fid所指的文献中,以16进制的方式读出一种数据ncos(fid);iue();plot(nm,'');lgd(MATLAB从x文献中读出的原始叠加波形数据);ile('直接回读MTAB产生的两个正弦信号的叠加波形'); 显示的波形如图4所示:图4对比图和图2中的叠加波形,可知以上操作的对的性。2) 用MTAB设计FI滤波器输入信号是频率别为0.5MH和2MHz的正弦信号的叠加,我们的任务是设计一种低通滤波器滤除掉MHz的干扰信号。因此,我们可以设计一种采样率为25Hz的低通滤波器,其通带带宽为MHz,阻带宽度为Hz。通带内纹波抖动为dB,阻带下降为8dB。在MATAB的命令窗口输入:dtol命令并回车,打开FDol工具箱,用MTLAB的FDTool工具设计该滤波器,参数设立如图5所示:设计好参数后,点击esnFilter,可以在FTool窗口的左上角看到滤波器的阶数为3阶,点击File àenerae Mile,并将滤波器命名为myowilter。图5 编写如下代码,滤除混叠信号中的高频信号。mwfiter; % 滤波器名称oput =flte(Hd,); %对叠加信号 y,进行滤波解决figure(3);plo(y2, k');hold o;plo(outut,'r);legend(0.5MHz原始信号','滤波后取出的信号');tile(信号通过MTALAB的低通滤波器后的波形'); 滤波后的波形如图6所示:图6生成.c文献,用于lin的IPC设计滤波器,FDAoo窗口点击FileàExot,保持默认设立,点击Exort即可,次数在MLAB的workspace窗口多余一种um的164的数组,这就是滤波器的系数,如图7所示:图7由于MATLAB生成的滤波器系数全是某些小数,而FPGA只能解决整数,因此我们必须将这些小数扩大一定的倍数,使它们变成整数。在ATLAB的命令窗口输入下面的一段代码然后按t,即可将上面这些系数变为整数,注意这里的*3267,表达将系数扩大327倍,这里的扩大倍数只能选2N,目的是为了背面滤波后的波形数据的高位截取(丢掉低位,即除以2N)。返回ns,表达操作对的。coeff=rond(m/max(abs(Nm)*327); abs() 求绝对值,a() 求最大值,roud() 四舍五入f = pen('e:/firce.tx',t); %将滤波器系数写入文献件中fprintf(d,'16.0fn',oe); 将滤波器系数以16位浮点数的格式保存fclose(fid) 程序运营的成果如图8所示:图8将文献的格式改为.ce格式,在文献的开口加上:rax = 10;oefdata 在每个数字前的空格处加一种逗号“,”,并在最后一种数字背面加上分号“;”如图9所示:图9 这样就产生了可供FIR滤波器的IPCre可调用的.coe文献。3) 用Vrilog编程读取ATAB产生的波形数据通过Verlog的redeh()函数即可读出txt文献中的数据(这里的数据是以16进制形式存储的),具体用法如下:re 15 :0 dtin0:; /定义一种1bt 的数组iiti en/ 读出MALA产生的波形数据0.Hz_si + 4MH_sin 信号 redemh("c:matlb_waveata.t",daa_n); /将 malawave_atx中的数据读入存储器 aa_nEnd 我在modelsi中尝试用eadmh来读取malab生成的数据,但是一旦到了负数的地方就浮现问题了,之后的所有数据都变成了xxxxx,因此我在用MATLB产生波形数据时都给正弦信号添加了一种偏移量,将正弦信号平移到了0之上。用Modelsim仿真工具可以看到读出的数据,并与原文献数据(图3)比较,可以判断读出的数据与否对的,这里是IS和odesm联合仿真的成果,如图1所示:图104) 由Xnx的FIR的IPre实现FR滤波器FI的ICor的生成环节就不多说了,简朴的说一下参数配备状况:a) 我们使用由AB生成的.coe文献导入滤波器的系数。b) 输入信号的采样频率为25MH,这里必须和MATLB产生的波形数据的采样频率保持一致。c) FIR滤波器的运营时钟,这里我们选择20MHz,这里必须和仿真文献里给的时钟保持一致。d) 输入数据的类型,我们这里选择了无符号数,输入数据位宽为16bi,由于odelsim不能读出负数(要么用补码,要么加偏移)。如图1、图12所示:图1图12FIR的IPCoe的列化如下:6_I 16_IPin(.lk(clk), / inpt lrd(rd), / ouutrd 在其上升沿将输入数据加载到滤波器内核中.ry(rd), / outpu rd 在其上升沿输出滤波器的计算成果.din(ta_nreg), / t 5 : 0 din.t(dou));/ oupt 3 : 0 dou 特别注意这个数据位宽我们重要对其进行简朴的控制:在fd 上升沿将输入数据加载到滤波器内核中,在rdy 上升沿输出滤波器的计算成果。具体的erlog代码如下:aas (osedge clk) begiif(rest= b0) begini1'b0;<'0;t_in_rg<=1'h000;ndse birf1qrfd;rfd_<=fd1q;if(rfd_1q&rfd) bgn/ f 信号的上升沿将输入数据加载到滤波器内核中tinreg<=dta_ni;i <=i + 1;m <=;if( = )i<=0;endedndaways (psedge lk) begnif(res = '0) beginDaa_outrg<=0;<=0;n<=;edelsebeginrd_1q<=ry;rdy_2<=yq;if(y_1q & rd) bnDa_out_reg<dot;j<=j + 1'1;n =n;edendend这里还做了一种附加功能,将FI滤波器的输入数据寄存到一种.txt文献当中,然后用MATLAB去读取这个波形文献数据,看看读出的波形与否和本来的混叠波形同样。具体的Verilog和AT

注意事项

本文(MATLAB设计FPGA实现联合ISE和Modelsim仿真的FIR滤波器设计)为本站会员(鲁**)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.