




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计 论文 本科毕业设计 论文 20122012 届届 题题 目 目 基于基于 fpgafpga 的的 firfir 滤波器的设计滤波器的设计 学学 院 院 数理与信息工程学院 专专 业 业 电子信息工程 学生姓名 学生姓名 学号 学号 指导教师 指导教师 职称 职称 合作导师 合作导师 职称 职称 完成时间 完成时间 成成 绩 绩 大学本科毕业设计大学本科毕业设计 论文论文 正文正文 目目 录录 摘要 1 英文摘要 1 1 引言 2 1 1 国内外研究现状 2 1 2 本论文的研究内容及主要工作 4 2 fir 数字滤波器设计 4 2 1 数字滤波器基础 4 2 1 1 数字滤波器简介 4 2 1 2 fir 数字滤波器的结构 5 2 2 fir 数字滤波器设计方法 6 2 2 1 窗函数法 7 2 2 2 频率采样法 8 2 2 3 等波纹最佳逼近法 9 2 2 4 三种设计方法的比较 10 3 fpga 设计优点以及分布式算法 10 3 1 使用 fpga 器件进行开发的优点 10 3 2 分布式算法 12 3 2 1 分布式算法基础 12 3 2 2 有符号的 da 系统 13 4 基于 fpga 的 fir 滤波器设计 13 4 1 基于 matlab的 fir 数字低通滤波器抽头系数的提取 13 4 1 1 滤波器的设计指标 13 4 1 2 滤波器的具体设计方法 14 4 1 3 参数提取与量化 15 4 2 fir 滤波器的 fpga 实现 16 4 2 1 模块划分 16 4 2 2 fir 滤波器各模块的实现 16 4 2 3 fir 滤波器的顶层设计 26 4 3 fir 滤波器的系统仿真验证 27 4 4 系统硬件 32 4 4 1 系统框图 32 4 4 2 部分芯片简介 32 4 4 3 ad da 电路原理图 35 4 5 测试波形及现场照片 35 4 6 数据误差分析 36 结 论 37 参考文献 37 附 件 38 基于 fpga 的 fir 滤波器的设计 第 1 页 共 44 页 基于基于 fpgafpga 的的 firfir 滤波器的设计滤波器的设计 摘要摘要 本文设计了一个基于fpga的16阶fir低通滤波器 使用分布式算法作为滤波器的硬件实 现算法 并对其进行了详细的讨论 针对分布式算法中lut规模过大的缺点 采用多块查找表 的方式减小硬件规模 在设计中采用了自顶向下的层次化 模块化的设计思想 将整个滤波器 划分为多个模块 利用vhdl语言的描述方法进行了各个功能模块的设计 最终完成了fir数字 滤波器的系统设计 文章采用cycloneii系列器件实现一个16阶的fir低通滤波器的设计实例 用quartusii软 件进行了仿真 并用matlab对仿真结果进行了分析 证明所设计的fir滤波器功能正确 仿真结果表明 本论文所设计的fir滤波器硬件模较小 采样率达到了10mhz 同时只要将 查找表进行相应的改动 就能分别实现低通 高通 带通fir滤波器 体现了设计的灵活性 关键词 关键词 fir滤波器 fpga器件 vhdl语言 分布式算法 查找表 design of fir filters based on fpga abstract in this paper a sixteen tapped low pass fir filter is designed based on fpga a scheme of hardware implementation is worked out using distributed arithmetic algorithm and is discussed in detail as the scale of the lut in the distributed arithmetic algorithm is so large the thesis reduces it with the using of multiple coefficient memory banks from the clew of implementing a top down stratified modular design the thesis describes the hardware designed of all functional modules and the fir system with the vhdl and schematic diagram designed methods in this thesis a sixteen tapped low pass fir filter implemented using cycloneii taken as an example and the simulation designed carried out using quartusii the result of the simulation is analyzed with the use of matlab and it proved that the functional of the design if correct the result of the simulation indicates that the scale of the design is small and the sample rate of the fir filter can search 10mhz modifying the lut can realize the low pass high pass and band pass fir filters and respectively and incarnates the flexibility of the design key words fir filter fpga vhdl distribute darithmatic lut 基于 fpga 的 fir 滤波器的设计 第 2 页 共 44 页 1 1 引言引言 滤波技术是信号分析 信号处理技术中的重要分支 无论是信号的获取 传 输 还是信号的处理 转换都离不开滤波技术 滤波技术对信号安全可靠和有效 灵活的传递至关重要 1 在电子系统中 由于滤波器的好坏直接影响系统的性能 所以滤波技术己成 为备受关注而热门的课题 滤波器的研制己受到各国研究者越来越多的重视 我国在上世纪 50 年代后期开始广泛使用滤波器 主要应用在报路和话路滤波 经过半个多世纪的发展 我国滤波器在研制 生产 应用等方面己进入国际发展 轨道 但由于缺少专门研制机构 加之集成工艺和材料工业发展步伐的缓慢 使 得我国在许多新型滤波器的研制和应用方面与国外仍有较大的差距 数字滤波器 是对离散时间信号进行滤波处理以得到期望的响应特性的离散时间系统 数字滤 波器一般由寄存器 延时器 加法器和乘法器等基本数字电路来实现 数字滤波 器能满足滤波器对幅度和相位特性的严格要求 避免模拟滤波器所无法克服的电 压漂移 温度漂移和噪声等问题 随着集成电路技术的发展 数字滤波器性能不 断提高而成本却不断降低 数字滤波器在语音信号处理 图像信号处理 医学生 物信号处理以及其他应用领域都得到了广泛应用 随着电子计算机和大规模集成 电路技术的发展 数字滤波器可用计算机软件实现 也可用大规模集成数字硬件 实时实现 数字滤波器已具备了高精度 高可靠性 可程控改变性或复用 便于 集成等众多优点 按照数字滤波器 df 的特性 可分为线性与非线性 因果与非因果 无限 长冲激响应 iir 与有限长冲激响应 fir 等类型 在这些滤波器中 线性时不变 的数字滤波器是最基本的类型 由于数字系统可以对延时器加以利用 因此若在 数字滤波器中引入一定程序的非因果性 就可获得比传统的因果滤波器更灵活强 大的特性 相对于 iir 滤波器 fir 滤波器具有易于实现和系统绝对稳定的优势 因此得到广泛的应用 2 1 11 1 国内外研究现状国内外研究现状 在国内外的研究中 设计 fir 滤波器所涉及的乘法运算方式有 并行乘法 位串行乘法和采用分布式算法的乘法 并行乘法虽然速度快 同时占用的硬件资源极大 如果滤波器的长度增加 乘法器位数也将变大 硬件规模将变得十分庞大 位串行乘法器的实现方法主要是通过对乘法运算进行分解 用加法器来完成 乘法的功能 也即无乘法操作的乘法器 但由于一个 8 8 位的乘法器输出为 16 位 为了得到正确的 16 位结果 串行输入的二进制补码数要进行符号位扩展 即将串 行输入的 8 位二进制补码前补 8 个 0 对正数 或 8 个 1 对负数 后才输入乘法器 基于 fpga 的 fir 滤波器的设计 第 3 页 共 44 页 如果每一位的运算需要一个时钟周期的话 这个乘法器需要 16 个时钟周期才能计 算出正确结果 这就意味着此类乘法器要完全计算出结果的延迟必将会很大 所 以位串行乘法器虽然使得乘法器的硬件规模达到了最省 但是由于是串行运算 使得它的运算周期过长 速度与规模折衷考虑时不是最优的 分布式算法 distributed arithmetic ad 的主要特点是巧妙的利用 rom 查 找表将固定系数的乘累加 multiply accumulator mac 运算转化为查表操作 它 与传统算法实现乘累加运算的不同在于执行部分积运算的先后顺序不同 分布式 算法在完成乘累加功能时是通过将各输入数据每一对应位产生的部分积预先进行 相加形成相应的部分积 然后再对各个部分积累加产生最终结果 而传统算法是 等到所有乘积已经产生之后再来相加来完成乘累加运算的 就小位宽来说 ad 算 法设计的 fir 滤波器的速度可以显著的超过基于 mac 的设计 相对于前两种方法 da 算法既可以全并行实现 又可以全串行实现 还可以 串并行结合实现 可以在硬件规模和滤波器速度之间作适当的折中 是现在被研 究的主要方法 fir 数字滤波器的实现 大体可以分为软件实现和硬件实现方法两种 软件实现方法即是在通用的微型计算机上用软件实现 利用计算机的存储器 运算器和控制器把滤波所要完成的运算编成程序通过计算机来执行 软件可由使 用者自己编写 也可以使用现成的 国内外的研究机构 公司已经推出了不同语 一言的信号滤波处理软件包 但是这种方法速度慢 难以对信号进行实时处理 虽然可以用快速傅立叶变换算法来加快计算速度 但要达到实时处理要付出很高 的代价 因而多用于教学与科研 硬件实现即是设计专门的数字滤波硬件 采用硬件实现的方法一般都比采用 软件实现方法要困难得多 目前主要采用的方法有以下几种 3 1 采用 dsp digital signal processing 处理器实现 dsp 处理器是专为数字信号处理而设计的 如 ti 公司的 tms32ocx 系列 ad 公司的 adspzxi adsp210x 系列等 它主要数字运算单元是一个乘累加器 multiply accumulator mac 能够在一个机器周期内完成一次乘累加运算 配 有适合于信号处理的指令 具备独特的循环寻址和倒序寻址能力 这些特点都非 常适合数字信号处理中的滤波器设计的有效实现 并且它速度快 成本低 在过 去的 20 多年的时间里 软件可编程的 dps 器件几乎统治了商用数字信号处理硬件 的市场 2 采用固定功能的专用信号处理器来实现 适用于过程固定而又追求高速 的信号处理任务 是以指定的算法来确定它的结构 使用各种随机逻辑器件组成 的信号处理器 它们体积小 保密性好 具有极高的性能 然而灵活性差 基于 fpga 的 fir 滤波器的设计 第 4 页 共 44 页 二者相比 固定功能的 dsp 专用器件可以提供很好的实时性能 但其灵活性 差 研发周期长 难度也比较大 dsp 处理器的成本低且速度较快 灵活性好 但 由于软件算法在执行时的顺序性 限制了它在高速和实时系统中的应用 在一些 高速应用中 系统性能的要求不断增长 而 dsp 性能的提高却落后于需求的增长 现在 大规模可编程逻辑器件为数字信号处理提供了一种新的实现方案 分 布式算法可以很好地在 fpga field programmable gate array 中实现 然而却不 能有效的在 dsp 处理器中实现 所以采用 fpga 使用分布式算法实现 fir 数字滤波 器有着很好的发展前景 采用现场可编程门阵列 fpga 来实现 fir 数字滤波器 既兼顾 asic 器件 固定 功能 dsp 专用芯片 的实时性 又具有 dsp 处理器的灵活性 fpga 和 dsp 技术的结 合能够更进一步提高集成度 加快速度和扩展系统功能 用 fpga 设计的产品还具 有体积小 速度快 重量轻 功耗低 可靠性高 仿制困难 上批量成本低等优 点 但是 da 算法中的查找表的规模随着 fir 数字滤波器长度的增加呈指数增长 而且随着滤波器系数的位数的增加 查找表的规模也会增加 这将极大的增加设 计的硬件规模 所以如何减小查找表的规模成为尚待解决的问题 1 21 2 本论文的研究内容及主要工作本论文的研究内容及主要工作 本论文重点研究的是 fir 低通数字滤波器的研究与设计 具体内容分为五节 第一节引言主要介绍了本课题的来源及研究意义 国内外现状 第二节主要介绍了 fir 数字滤波器的原理以及线性相位 fir 滤波器的结构和 设计方法 第三节介绍了 fpga 设计优点及 da 算法优化研究 重点是分布式算法的原理 以及 da 算法优化的研究与设计 并对具体的分组优化方法做了详细的讨论 第四节首先利用 matlab 制定设计指标 提取 16 阶 fir 低通数字滤波器的抽 头数并进行量化 然后基于 fpga 分模块对其进行研究设计 并进行综合系统仿真 和验证 最后介绍了 a d d a 模块的具体设计方法 给出了电路原理图 文章最 后给出了现场测试的一些照片 2 2 firfir 数字滤波器设计数字滤波器设计 2 12 1 数字滤波器数字滤波器基础基础 数字滤波器在数字信号处理中属于预处理的部分 因而起着基础性的作用 数字滤波器包括 iir 和 fir 数字滤波器 数字滤波器具有精度高 稳定性好 灵 活性强 不要求阻抗匹配 易于修改等特点 下面将首先介绍一下数字滤波器 然后重点讨论 fir 数字滤波器的设计原理和结构 4 基于 fpga 的 fir 滤波器的设计 第 5 页 共 44 页 2 1 12 1 1 数字滤波器简介数字滤波器简介 一个简单的数字滤波系统如图 2 1 所示 图中 x t 为模拟信号 经过 a d 转换器后变为一个有着先后顺序的数字序列 x n 然后 x n 通过数字滤波系统 h z 即得到数字滤波器的输出 y n h z 为该数字滤波系统的单位脉冲响应 h n 的 z 变换 即 2 1 n n znhzh 若 h n 为无限长序列 则得到的数字滤波器为 iir 数字滤波器 又称递归滤 波器 反之 若 h n 为有限长序列 则得到的数字滤波器为 fir 滤波器 也称非 递归滤波器 一个线形时不变因果滤波器可表示为 2 2 1 0 n n n znhzh 其中 n 为 h n 的长度 即滤波器的长度 y y n n x x t t x x n n a a d d h h z z 图 2 1 数字滤波系统 iir 滤波器主要是基于对模拟滤波器如巴特沃斯滤波器 椭圆滤波器等的幅频 响应进行逼近 而其相频响应是非线性的 与 iir 滤波器不同 fir 滤波器可以把 相位特性设计成线性 这使得 fir 数字滤波器在信号无失真传输 数据通信 图 像传输与处理 语音信号处理等有线性相位要求的领域应用广泛 fir 滤波器的优 点是软硬件实现结构简单 不用考虑系统的稳定性问题 缺点是实现较高性能的 频率响应需要较高的滤波器阶数 2 1 22 1 2 firfir 数字滤波器的结构数字滤波器的结构 由于 fir 数字滤波器实现算法的不同 我们可以把 fir 滤波器的结构划分为 直接型 级联型 频率采样型和快速卷积型四种基本形式 本文主要讨论前两种 结构 1 直接型结构 由式 2 2 可直接画出 fir 数字滤波器的直接型结构 如图 2 2 所示 对于直 接型结构来说 一个长度为 n 的 fir 滤波器 每产生一个输出数据 要经过 n 次 乘法 n 1 次加法 对于使用 fpga 开发 fir 数字滤波器 这样的结果显然不令人 满意 基于 fpga 的 fir 滤波器的设计 第 6 页 共 44 页 h 0 h 1 h 2 h n 2 h n 1 1 z 1 z 1 z y n 图 2 2 直接型结构 于是本文做了一下改进 这种改进是基于线性相位的 fir 数字滤波器的 以 严格线性相位 n 为偶数的 fir 滤波器为例 如图 2 3 所示 x n 1 z 1 z 1 z 1 z 1 z h 1 h 2 h n 2 y n 图 2 3 直接型的改进 由于关于对称 我们可以将经过延时环节的位置关于 nh2 1 nn 对称的数据预先相加 然后可以再乘以相应的滤波器系数进行累加得到2 1 n 最终的输出结果 这样 每产生一个输出 经过次乘法 次加法 比原2 n1 n 来减少次乘法 2 n 2 级联型结构 对式 2 2 进行因式分解 并将零点共轭的因式放在一起 这样产生了若干 个一阶子式和二阶子式 将一阶子式看作二阶子式的一个特例 则系统函数 可以表示为 zh 2 l l zazahzh 1 2 12 1 11 1 0 3 fir 数字滤波器的级联型结构如图 2 4 所示 x n 1 z 1 z 1 z 1 z 1 z 1 z 11 21 12 22 1l 2l h 0 y n 图 2 4 级联型结构 基于 fpga 的 fir 滤波器的设计 第 7 页 共 44 页 从图中可以看出 级联型结构每产生一个输出 需要次乘法 次加1 n1 n 法 级联型的最大特点是可以分别独立调整每个子系统的零点之值 当需要精确 控制滤波器的零点位置时 往往采用这种结构 5 2 22 2 firfir 数字滤波器设计方法数字滤波器设计方法 fir 数字滤波器的设计方法主要有三种 时窗函数法 频率采样法和等波纹设 计法 6 下面将分别讨论一下这三种方法的设计原理 然后给出设计步骤 最后 在比较一下这三种方法的优缺点 2 2 12 2 1 窗函数法窗函数法 一个理想低通滤波器的幅频特性如图 2 5 所示 的表达式为 jw d eh 2 4 ww ww eh c cjw d 0 1 w jw d eh c w c w 图 2 5 理想低通滤波器频谱图 对进行离散时间傅里叶逆变换 得 jw d eh dweehnh jwnjw dd 2 1 2 5 c c w w c jwn n nw dwe sin 2 1 是一个关于对称的无限长序列 是系统的单位脉冲响应 这说明系统 nhd 0 d h 是非因果的 在物理上不可实现 为了能够得到一个可实现的系统 可以将 截取一部分 并顺序右移 使之成为一个因果的有限长序列 这种方法就好 nhd 比在时域打开一个窗口一样 因而称为窗函数法 可以预见 使用这种方法截取 的序列越长 对理想的幅频特性逼近的越好 常见的时窗函数有矩形窗 汉宁窗 汉明窗 布莱克曼窗 凯塞窗等 矩形 窗的表达式为 为整数 当用矩形窗设计 fir 滤波器时 其它 0 101 nn w nr n 所产生的频率响应 与理想滤波器的频率特性相比 在理想特性不连续点 处附近形成了过渡带 并在过渡带两侧形成持续时间很长 逐渐衰减的波 c ww 基于 fpga 的 fir 滤波器的设计 第 8 页 共 44 页 纹 即通带内产生了波动 而阻带内产生了余振 这种现象称之为吉布斯 gibbs 效应 吉布斯效应直接影响到滤波器的性能 因为通带内的波动会影响到滤波器 的平稳性 阻带内的波动则影响阻带最小衰减 为了克服吉布斯效应 可以从两个方面着手 一是在频域 避免理想滤波器 频谱中出现的跃变现象 把它改造成一条连续光滑的曲线 所用的方法是镶边法 二是在时间域 对截尾函数进行改造 也即设计出好的时窗函数 nh 一个好的时窗函数的要求 a 主瓣宽度尽可能地小 b 旁瓣水平 振幅或能 量 相对于主瓣来说也尽可能地小 但是这两个标准之间彼此是有矛盾的 即主 瓣宽度越大 旁瓣水平才可能越低 因此实际上 我们只能在这两个标准之间作 一权衡 针对具体问题 找出一个适当的时窗函数 五种窗函数的主要参数如表 2 2 所示 应当说明的是 用时窗函数法设计的 fir 滤波器通带波纹幅度近似等于阻带 波纹幅度 一般阻带最小衰减达到 40db 以上 则通带最大衰减就小于 0 1db 最后 总结一下利用时窗函数设计 fir 数字滤波器的步骤 a 根据所需设计的数字滤波器类型 低通 高通 带通 带阻 确定线性 相位数字滤波器类型 b 根据滤波器阻带衰减 选择窗函数的类型 根据过渡带宽度确定 s nw 时窗函数的长度 并根据线性相位条件进行修正 n c 确定理想数字滤波器的频率响应函数 其中 wj d jw d d ewheh 为幅度特性函数 为相位特性函数 whd w d d 计算理想滤波器的单位脉冲响应 即 nhd dweehnh jwnjw dd 2 1 e 加窗得到设计结果 即 nh nwnhnh d 表 2 2 五种窗函数参数表 窗函数主瓣宽度 rad旁瓣水平 db过渡带宽度 rad阻带最小衰减 db 矩形窗n 4 13 n 8 1 21 汉宁窗n 8 31 n 2 6 44 汉明窗n 8 41 n 6 6 53 布莱克曼窗n 12 57 n 11 74 凯塞窗 7 865 n 0 10 57 n 10 80 2 2 22 2 2 频率采样法频率采样法 频率采样法是一种基于频率域抽样来逼近所要设计的 fir 滤波器的频率特性 的一种方法 频率设计法的基本设计流程如图 2 6 所示 基于 fpga 的 fir 滤波器的设计 第 9 页 共 44 页 jw d eh确定 2 jn dd hehk d h nidft hn h zzt h n 抽样n点 离散傅里叶逆变换 图 2 6 频率设计法流程 为了保证具有线性相位条件 其单位采样响应是实序列 且满足条 zh nh 件 对于偶对称的情况来说 线性相位条件如下 1 nnhnh nh 2 6 wj g jw d ewheh 2 7wnw 1 2 1 令代入式 2 6 2 7 得到nkw 2 2 8 kj gd ekhkh 式中 nkwgg whkh 2 nkw wk 2 n 为奇数 knhkh gg n 为偶数 knhkh gg 频率响应函数在各采样点上等于 而采样点之间的值是 jw eh khd jw eh 由各采样值之间的内插函数叠加形成 因而有一定的逼近误差 误差的大小取决 于理想频率响应的曲线形状 采样点之间的理想频率特性变化越陡 则内插值与 理想值之间的误差就越大 因而在理想频率响应特性的不连续点附近 就会产生 肩峰和波纹 反之 理想频率响应特性变化越平缓 则内插值越接近理想值 逼 近误差小 因此 可以在理想频率下响应特性的通带与阻带之间设置过渡带 从 而减小逼近误差 过渡带的采样点个数 m 与所设计的滤波器的阻带最小衰减有关 具体如表 s 2 3 所示 此外过渡带的带宽与采样点数 m 之间的关系为 2 9 nmb 1 2 基于 fpga 的 fir 滤波器的设计 第 10 页 共 44 页 表 2 3 过渡带采样点数与阻带最小衰减的关系 m0123 db s 2044 5465 7585 95 综上 频率采样法的设计步骤为 a 根据阻带最小衰减 确定过渡带的样点数 m s b 根据过渡带宽度的要求 估算滤波器的长度 b c 构造希望逼近的频率响应函数 一般为具有理想频率特性 jw d eh jw d eh 并满足线性相位的要求 d 对进行频域等间隔 n 点采样 得到 jw d eh khd e 对进行 n 点 idft 得到 khd nh 2 2 32 2 3 等波纹最佳逼近法等波纹最佳逼近法 等波纹最佳逼近法是基于最大误差最小化的设计原则 最大误差最小化能使 幅度误差在整个逼近频段上均匀分布 即所设计的 fir 数字滤波器的幅度特性在 通带和阻带范围内是等波纹的 且可以分别独立控制通带和阻带的波纹幅度 并 且在滤波器长度给定的情况下 加权的幅度波纹误差最小 定义加权幅度误差函数为 2 10 whwhwwwe d 式中为幅度误差加权函数 用来控制不同频带的幅度逼近误差 一般地 ww 在要求逼近精度高的频带 取值大 而要求逼近误差精度低的频带 ww 取值小 设计过程中是由设计者根据通带最大衰减和阻带最小衰减 ww ww p 的指标要求取定的已知函数 对于 fir 数字低通滤波器 常取 s 2 11 wwk wwk ww p p 0 12 式中 和分别为滤波器设计指标中通带和阻带的振荡波纹幅度 k 为正的系 1 2 数 滤波器的通带最大衰减和阻带最小衰减与通带和阻带的振荡波纹幅度 p s 和的换算关系为 1 2 2 12 110 110 20 20 1 p p 2 13 20 2 10 s 等波纹最佳逼近法的设计 在于找到滤波器的系数向量 使得在通带 nh 和阻带频带内的最大绝对值幅度误差为最小 0 p w s w we 帕克斯 麦克莱伦采用基于交替定理的雷米兹交替算法 通过逐次迭代逼近的 运算求得滤波器的系数向量 从而实现等波纹最佳逼近法 一般情况下 估 nh 基于 fpga 的 fir 滤波器的设计 第 11 页 共 44 页 计滤波器长度 n 的凯塞经验公式为 2 14 1 2 6 14 13lg 20 21 ps ww n 综上 用等波纹最佳逼近法设计 fir 数字滤波器的步骤为 1 根据滤波器的设计指标要求 边界频率 通带最大衰减 阻带最小衰 p 减等 估计滤波器的长度 并确定幅度误差加权函数 s 2 采用雷米兹交替算法 获得所设计的滤波器的单位脉冲响应 nh 2 2 42 2 4 三种设计方法的比较三种设计方法的比较 时窗函数法和频率采样法 设计简单方便 易于实现 缺点是不能够精确指 定滤波器的边界频率和 并且不能够分别控制通带和阻带波纹 等波纹法能 p w s w 够分别独立控制通带和阻带波纹 确定边界频率 并且所设计的滤波器的阶数与 前两种方法相比要少 3 3 fpgafpga 设计优点以及分布式算法设计优点以及分布式算法 3 13 1 使用使用 fpgafpga 器件进行开发的优点器件进行开发的优点 使用 fpga 器件设计数字电路 不仅可以简化设计过程 而且可以降低整个系 统的体积和成本 增加系统的可靠性 它们无需花费传统意义下制造集成电路所 需大量时间和精力 避免了投资风险 成为电子器件行业中发展最快的一个系列 使用 fpga 器件设计数字系统电路的主要优点如下 1 设计灵活 使用 fpga 器件 可以不受标准系列器件在逻辑功能上的限制 而且修改逻辑 可在系统设计和使用过程的任一阶段中进行 并且只须通过对所用的 fpga 器件进 行重新编程即可完成 给系统设计提供了很大的灵活性 2 增大功能密集度 功能密集度是指在给定的空间能集成的逻辑功能数量 可编程逻辑芯片内的 组件门数高 一片 fpga 可代替几片 几十片乃至上百片中小规模的数字集成电路 芯片 用 fpga 器件实现数字系统时用的芯片数量少 从而减少芯片的使用数目 减少印刷线路板面积和印刷线路板数目 最终导致系统规模的全面缩减 3 提高可靠性 减少芯片和印刷板数目 不仅能缩小系统规模 而且它还极大的提高了系统 的可靠性 具有较高集成度的系统比用许多低集成度的标准组件设计的相同系统 具有高得多的可靠性 使用 fpga 器件减少了实现系统所需要的芯片数目 在印刷 线路板上的引线以及焊点数量也随之减少 所以系统的可靠性得以提高 4 缩短设计周期 出于 fpga 器件的可编程性和灵活性 用它来设计一个系统所需时间比传统方 基于 fpga 的 fir 滤波器的设计 第 12 页 共 44 页 法大为缩短 fpga 器件集成度高 使用时印刷线路板电路布局布线简单 同时 在样机设计成功后 由于开发工具先进 自动化程度高 对其进行逻辑修改也十 分简便迅速 因此 使用 fpga 器件可大大缩短系统的设计周期 加快产品投放市 场的速度 提高产品的竞争能力 5 工作速度快 fpga cpld 器件的工作速度快 一般可以达到几百兆赫兹 远远大于 dps 器件 同时 使用 fpga 器件后实现系统所需要的电路级数又少 因而整个系统的工作速 度会得到提高 6 增加系统的保密性能 很多 fpga 器件都具有加密功能 在系统中广泛的使用 fpga 器件可以有效防 止产品被他人非法仿制 7 降低成本 使用 fpga 器件实现数字系统设计时 如果仅从器件本身的价格考虑 有时还 看不出来它的优势 但是影响系统成本的因素是多方面的 综合考虑 使用 fpga 的成本优越性是很明显的 首先 使用 fpga 器件修改设计方便 设计周 fpga 器 件进行系统设计能节约成本 期缩短 使系统的研制开发费用降低 其次 fpga 器件可使印刷线路板面积和需要的插件减少 从而使系统的制造费用降低 再次 使用 fpga 器件能使系统的可靠性提高 维修工作量减少 进而使系统的维修服务 费用降低 总之 使用 fpga 器件进行系统设计能节约成本 7 3 23 2 分布式算法分布式算法 3 2 13 2 1 分布式算法基础分布式算法基础 分布式算法 distributed arithmetic da 是一项重要的 fpga 技术 它广 泛地应用在计算积之和之中 1 0 n n nxncxcy 3 0 0 1 1 1 1 cxcxc nx n 1 进一步假设系数是已知常数 是变量 无符号 da 系统假设变量 nc nx 的表示方式如下 nx 3 1 0 2 b b b b nxnx 1 0 b x 2 其中表示的第位 而也就是的第次采样 而内积可以表 nxb x nb x nxny 示方式为 基于 fpga 的 fir 滤波器的设计 第 13 页 共 44 页 3 1 0 1 0 2 n n b b b b kxncy 3 重新分配求和的顺序 也就是 分布式算法名称的由来 其结果如下 3 120 120 120 120 120 120 1 111 2 0 0 2 0 2 0 2 1 1 2 1 2 1 2 1 1 2 1 2 1 2 0 0 1 1 1 1 2 0 0 1 bb bb bb bb bb bb b bbb b ycxxx cxxx c nxnxnx n cxcxc nxn cxc 2 22 0 000 1 1 1 2 0 0 1 1 1 1 2 b bb xc nxn cxcxc nx n 4 或者可以写成更为简洁的如下形式 3 2 2 1 0 1 0 1 0 1 0 b b n n n b n n b b b b nxncfnxncy 5 函数的实现需要特别注意 首选方法是利用一个 lut 实现映射 nxncf b 也就是说预先编程个字的一个 lut 以接受一个 n 位输入向量 nxncf b n 2 输出为 各个映射都由相 1 1 0 nxxxx bbbb nxncf b nxncf b 应的二次幂加权并累加 利用如图 3 2 所示的移位加法器就能够有效地实现累加 在 n 次查询循环后就能完成了对内积 y 的计算 8 0 0 x 0 1 x 0 b x 1 0 x 1 1 x 1 b x 1 0 nx 1 1 nx 1 nxb t u l 寄 存 器 算法表 累加器 y 1 2 b b t0 t 加 减 移位寄存器 图 3 2 移位加法器 da 体系结构 3 2 23 2 2 有符号的有符号的 dada 系统系统 下面我们要讨论的是如何修复式 3 1 使之能够处理有符号补码 在补码中 最高位有效位用来区别正数和负数 例如变 3 的编码是 所 102 3104101 基于 fpga 的 fir 滤波器的设计 第 14 页 共 44 页 以我们将采用下面的 b 1 位表示方法 3 1 0 2 2 b b b b b b nxnxnx 6 与式 3 3 联立得到输出 y 的定义如下 3 7 1 0 1 0 2 2 b b n n b b b b nxncfnxncfy 要实现有符号 da 系统 可以通过两种选择来修改无符号 da 系统 这就是 1 带有加 减控制的累加器 2 采用具有一个额外输入的 rom 本文使用最常见的可转换累加器 因为 lut 表中额外的输入位还需一个两倍 字长的 lut 表 9 4 4 基于基于 fpgafpga 的的 firfir 滤波器设计滤波器设计 本章为全文的核心内容 首先确定基于 matlab 的 fir 数字低通滤波器的指标 系数 再利用分布式算法结构 vhdl 硬件语言完成设计与仿真 最后实现硬件系 统以及硬件测试 4 14 1 基于基于 matlabmatlab 的的 firfir 数字低通滤波器抽头系数的提取数字低通滤波器抽头系数的提取 4 1 14 1 1 滤波器的设计指标滤波器的设计指标 该设计采用的方法为窗函数法 16 阶线性相位 fir 低通数字滤波器 采样频率 为 10mhz 截至频率为 100khz 4 1 24 1 2 滤波器的具体设计方法滤波器的具体设计方法 启动 matlab 设计软件后 依次打开 start toolboxes filter design filter design use ieee std logic 1164 all use ieee std logic unsigned all entity signed buma is 基于 fpga 的 fir 滤波器的设计 第 19 页 共 44 页 port x in in std logic vector 7 downto 0 输入 clk in std logic 输入信号 50mhz buma out std logic vector 7 downto 0 补码输出 end signed buma architecture arc of signed buma is signal temp std logic vector 7 downto 0 中间信号 signal b std logic 中间信号 begin b x in 7 a process clk begin if clk event and clk 1 then if b 1 then temp x in 7 else temp x in end if end if end process buma temp end arc 3 输入模块 输入模块由移位寄存器和加法器与地址码形成模块组成 移位寄存器模块实 现对并行输入信号的延迟输出 其寄存器的个数由 fir 滤波器的阶数决定 加法 与地址码形成模块首先实现 b i x i x n i 的运算 即考虑了滤波器系数的对 称性 把与相同两个滤波系数相乘的两个采样值预先相加 以减少硬件规模 10 移位寄存器模块的 vhdl 代码如下所示 library ieee use ieee std logic 1164 all 延时 entity delay is 基于 fpga 的 fir 滤波器的设计 第 20 页 共 44 页 port x in instd logic vector 7 downto 0 滤波器输入 clk instd logic 输入时钟 a0 a1 a2 a3 a4 a5 a6 a7 buffer std logic vector 7 downto 0 寄存器 a8 a9 a10 a11 a12 a13 a14 a15 buffer std logic vector 7 downto 0 寄存器 end delay architecture one of delay is begin process clk begin if clk event and clk 1 then a15 a14 a14 a13 a13 a12 a12 a11 a11 a10 a10 a9 a9 a8 a8 a7 a7 a6 a6 a5 a5 a4 a4 a3 a3 a2 a2 a1 a1 a0 a0 x in end if end process end one 基于 fpga 的 fir 滤波器的设计 第 21 页 共 44 页 图 4 6 移位寄存器仿真图 图 4 6 是延时进程的仿真图 由图可以看出每来一个脉冲 输入信号就会向 后移位一次 加法与地址码形成模块具体程序如下 library ieee use ieee std logic 1164 all use ieee std logic signed all use ieee std logic arith all 输入预加和地址码产生 entity address is port a0 a1 a2 a3 a4 a5 a6 a7 in std logic vector 7 downto 0 输入寄 存器 a8 a9 a10 a11 a12 a13 a14 a15 in std logic vector 7 downto 0 输 入寄存器 clk in std logic 输入时钟 y0 y1 y2 y3 y4 y5 y6 y7 y8 out std logic vector 7 downto 0 地址 输出 end address architecture arc of address is signal b0 b1 b2 b3 b4 b5 b6 b7 std logic vector 8 downto 0 begin b0 a0 0 b1 a1 0 b2 a2 0 基于 fpga 的 fir 滤波器的设计 第 22 页 共 44 页 b3 a3 0 b4 a4 0 b5 a5 0 b6 a6 0 b7 a7 0 process clk begin if clk event and clk 1 then 下面产生的 8 位位矢量将作为 lut 的地址 y0 b7 0 y1 b7 1 y2 b7 2 y3 b7 3 y4 b7 4 y5 b7 5 y6 b7 6 y7 b7 7 y8m x 000 when 0001 m x 009 when 0010 m x ff9 when 0011 m x 002 when 0100 m x fe0 when 0101 m x fe9 when 0110 m x fd9 基于 fpga 的 fir 滤波器的设计 第 24 页 共 44 页 when 0111 m x fe2 when 1000 m x 03c when 1001 m x 045 when 1010 m x 035 when 1011 m x 03e when 1100 m x 01c when 1101 m x 025 when 1110 m x 015 when 1111 m x 01e when others m x 000 end case return m end lut1 end fir rom1 高四位和低四位 lut 输出数据要拼在一起 具体程序如下 library ieee use ieee std logic 1164 all use ieee std logic signed all use ieee std logic arith all use work fir rom1 all use work fir rom2 all use work fir rom3 all use work fir rom4 all entity firrom is port add0 add1 add2 add3 add4 in std logic vector 7 downto 0 add5 add6 add7 add8 in std logic vector 7 downto 0 clk in std logic 输入时钟 50mhz f0 f1 f2 f3 f4 f5 f6 f7 f8 out std logic vector 12 downto 0 end firrom architecture arc of firrom is signal m0 m1 m2 m3 m4 m5 m6 m7 m8 std logic vector 11 downto 0 signal m00 m11 m22 m33 m44 m55 m66 m77 m88 std logic vector 11 基于 fpga 的 fir 滤波器的设计 第 25 页 共 44 页 downto 0 begin 下面的语句是把高四位输出和低四位输出拼起来 m0 lut2 add0 7 downto 4 m00 lut1 add0 3 downto 0 m1 lut2 add1 7 downto 4 m11 lut1 add1 3 downto 0 m2 lut2 add2 7 downto 4 m22 lut1 add2 3 downto 0 m3 lut2 add3 7 downto 4 m33 lut1 add3 3 downto 0 m4 lut2 add4 7 downto 4 m44 lut1 add4 3 downto 0 m5 lut2 add5 7 downto 4 m55 lut1 add5 3 downto 0 m6 lut2 add6 7 downto 4 m66 lut1 add6 3 downto 0 m7 lut2 add7 7 downto 4 m77 lut1 add7 3 downto 0 m8 lut2bu add8 7 downto 4 m88 lut1bu add8 3 downto 0 process clk begin if clk event and clk 1 then f0 m0 11 f1 m1 11 f2 m2 11 f3 m3 11 f4 m4 11 f5 m5 11 f6 m6 11 f7 m7 11 f8 m8 11 end if end process end arc 5 树状移位加法器模块 树状移位加法模块 通过一个树状的移位加法 最后实现卷积运算 本文设 基于 fpga 的 fir 滤波器的设计 第 26 页 共 44 页 计采用并行移位加法 提高了执行速度 但付出了硬件资源的大量消耗代价 具 体如下 library ieee use ieee std logic 1164 all use ieee std logic signed all use ieee std logic arith all entity add is port m0 m1 m2 m3 m4 m5 m6 m7 m8 in std logic vector 12 downto 0 数据输入 由查找表输出 clk in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 资源型城市绿色转型发展模式下的绿色建筑节能技术分析报告
- 安全教育培训的作用
- 安全教育培训特色做法课件
- 安全教育培训档案
- 高科技研发办公室使用表格模板(科技公司)
- 企业风险管理流程工具
- 想象作文衣柜里的争吵400字9篇范文
- 商业供货合同协议要求
- 政策支持中小企业发展表格
- 燃烧与灭火说课课件
- 数据可视化课程建设经验交流陈为课件
- 二级减速器计算说明书
- 厨房设备施工方案
- 《比热容》说课-完整版课件
- 北京市各县区乡镇行政村村庄村名明细
- 各种轴载换算计算方法
- (高职)《会展策划》(第三版)ppt课件(完整版)
- 商超类企业抖音代运营方案(综合)
- 海上保险法课堂笔记(国航上课版)
- 精选文档大跨度梁板混凝土浇筑方案
- 数学算24点题目
评论
0/150
提交评论