二相并行FIR滤波器的matlab及modelsim仿真

二相FIR滤波器即并行FIR滤波器,以面积换取速度,可以在同样的时钟频率下,提高原始滤波器的有效吞吐量,或者降低原始滤波器的功耗。

1 并行FIR滤波器的多项式分解表示

(以上内容来自陈弘毅、白国强等,VLSL数字信号处理系统--设计与实现,机械工业出版社)

因此为了实现并行处理,我们需要将序列以奇偶形式分为两个并行序列,滤波器则需要调用4个阶数为一半的ip核(自己写的仿真没通过),相应的滤波器系数也需要分奇偶分别送入。本实验以32阶低通滤波器,处理一路20M与80M的混频信号为例。

2 用matlab产生混频信号、滤波器系数,并进行仿真

(1)产生混频信号的代码如下(混频信号要输出到文件,用于modelsim仿真):

(2)产生的正弦波及混频信号波形如下图

(3)接下来,我们用matlab的fdatool仿真FIR滤波

在MATLAB Command Window中输入fdatool并按回车键,得到fdatool工具框。再设置单位Units为MHz,采样频率为Fs为500,通带Fpass为20,阻带Fstop为60;再点击Design Filter(滤波器阶数刚好为32阶)。最终工具框如下图所示:

现在我们将此滤波器生成为.m文件,以在MATLAB中调用。点击File,点击Generate M-file,保存为mylowfilter.m。其内容为下图

接下来,可以在MATLAB中调用此.m文件对混频信号进行滤波,其程序如下(还对滤波后数据进行绘制,并输出到文件,再读回,为了全部以16进制表示,做了细微处理)

所有波形图如下

(4)输出滤波器系数(用于modelsim仿真)

现需取出滤波器系数。点File,点Export,得到下图

点击Export即可。

此时MATLAB主界面的workplace中会出现Num,如下图,

双击Num,即可在Editor界面中得到滤波器系数,直接将这些系数复制到文本文件Num.txt中

接下来,将Num的值量化后以16进制输出到文件,用于modelsim仿真(modelsim读数时,读取正数;故我们将Num的值量化后,需加上偏移量,在modelsim中再将偏移量减去)

此时,我们已用MATLAB产生了混频信号和滤波器系数。

3 使用xilinx的ip核设计两相滤波器

根据图9-1的结构框图进行设计。本实验中为了避免不可预料的麻烦(最初是调用两个ip核分别做H0和H1,但仿真时发现两个核的工作状态不一致),只生成一个16阶滤波器,通过系数加载的方式得到两个具有不同滤波系数的滤波器,其中H0对应偶系数,H1对应奇系数。

这里不再阐述工程的建立过程。16阶FIR滤波器IP核的生成过程如下:

另外,由图9-1可见,还需要两个有符号数加法器,这里也调用xilinx的IP核。

接下来的工作是例化4个FIR和2个有符号数加法器,注意数据的对齐。

4 使用modelsim仿真

这是加载系数时的时序图,我们关注LD, WE, DIN三个信号。在tb中,以最简单的方式加载,给ld一个脉冲,马上给16拍的we高电平和16个系数。

测试代码如下,modelsim的输出结果还要将奇偶合并起来,并输出到文件,再由MATLAB回读后,画出波形。

仿真波形如下,从图中可以看到输入的奇偶序列是有混频的,而输出的波形已经只含有低频成分。

二相并行FIR滤波器的matlab及使用FIR IP 核的FPGA实现相关推荐

  1. fir滤波器应用matlab,fir滤波器应用.ppt

    fir滤波器应用 电子与通信工程 许永全 FIR滤波器应用 内容 数字滤波器概述 FIR滤波器基本介绍 FIR滤波器在matlab及FPGA中的调用程序 FIR滤波器在无线信号处理的一个应用 数字滤波 ...

  2. matlab中fir1中的边界频率,FIR滤波器的MATLAB设计与实现.pdf

    FIR滤波器的MATLAB设计与实现 1.设计任务 1.用MATLAB软件实现FIR滤波器: 2.设计基于DSP 的FIR滤波器硬件框图: 3.了解用DSP实现FIR滤波器的关键问题: 4.完成必要的 ...

  3. [Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计)

    [Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计) ​ IIR滤波器主要设计方法先设计一个模拟低通滤波器,然后把它转化为形式上的数字滤波器.但对于FIR滤波器来说,设计方法的关键要求之一 ...

  4. 【DSP教程】第36章 FIR滤波器的Matlab设计(含低通,高通,带通和带阻)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第36章       FIR滤波器的Matlab设计(含低通 ...

  5. matlab设计窄带滤波器,【安富莱DSP教程】第36章 FIR滤波器的Matlab设计

    第36章 FIR滤波器的Matlab设计 本章节讲解FIR滤波器的Matlab设计.主要是函数fir1和fir2的使用. 36.1 窗函数 36.2 fir1函数 36.2 fir2函数 36.4 总 ...

  6. FIR滤波器的Matlab实现

    FIR 滤波器广泛应用于数字信号处理中,主要功能就是将不感兴趣的信号滤除,留下有用信号.FIR滤波器是全零点结构,系统永远稳定:并且具有线性相位的特征,在有效频率范围内所有信号相位上不失真.在无线通信 ...

  7. matlab编程设计fir滤波器,用MATLAB设计FIR滤波器

    滤波器 滤波器定义 "滤波器(filter),是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电.对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就 ...

  8. matlab凯塞窗低通fir滤波器,基于Matlab的FIR滤波器设计与实现

    一.摘要 前面一篇文章介绍了通过FDATool工具箱实现滤波器的设计,见" 二.实验平台 Matlab7.1 三.实验原理 以低通滤波器为例,其常用的设计指标有: 通带边缘频率fp(数字频率 ...

  9. 四类线性相位 FIR滤波器设计 —— MATLAB源码全集

    目录 引言 1.FIR线性相位滤波器 2.Ⅰ型 FIR 滤波器 2.1.低通滤波器 2.2.带通滤波器

最新文章

  1. 黄聪:PHP生成折线图、饼图、表格、图表插件控件pChart
  2. 【转】MySQL实现Oracle里的 rank()over(ORDER BY) 功能
  3. 微信小程序跳转到其他网页(外部链接)公众号等的实现方法
  4. 推荐一个免费的最强刷题网站!
  5. 分享实录 | 企业CICD规模化落地浅析
  6. spring boot----简单入门
  7. 【C++ STL学习之一】容器的共通能力和共通操作总结
  8. 【html笔记】html介绍和语法入门
  9. 个人博客系统(附源码)
  10. 获取中国 省市区 js
  11. Python制作词云视频,通过词云图来看小姐姐跳舞
  12. 纯干货!信贷行业电话销售员一定要掌握的电话沟通话术
  13. 基址寻址和变址寻址区别(白话版)
  14. 网络速率方面的知识(Kbps Mbps KB/s Mb/s Kb/s等)
  15. Echelon/艾美捷——脂质与蛋白质相互作用的研究
  16. python中的矩阵分块
  17. 河北工业大学数据挖掘实验四 贝叶斯决策分类算法
  18. Python实现对图片,文件批量重命名
  19. gevent RecursionError
  20. 提问: python飞船移动问题

热门文章

  1. 我们遇到什么困难都不要怕,微笑着面对它
  2. 2021年春季学期-信号与系统-第五次作业参考答案-第二小题
  3. 2021年春季学期-信号与系统-第一次作业参考答案
  4. 2020人工神经网络第一次作业-参考答案第九部分
  5. 第十五届全国大学生智能车竞赛百度人工智能组相关文件链接
  6. 计算机一级考试试题 文明,XP计算机文明基础模拟试题库1.doc
  7. 11467人力资源统计学在计算机,2013年至2017年自考11467《人力资源统计学》真题及答案.pdf...
  8. php 元素添加子元素,css,html_怎么在添加的子元素上继承父元素上已存在的子元素的属性?,css,html,javascript - phpStudy...
  9. C语言-程序运行效率总结及注意事项
  10. linux配置文件语法错误,linux vim配置文件(语法高亮)