基于FPGA的FIR滤波器设计书_第1页
基于FPGA的FIR滤波器设计书_第2页
基于FPGA的FIR滤波器设计书_第3页
基于FPGA的FIR滤波器设计书_第4页
基于FPGA的FIR滤波器设计书_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于 波器设计书 1 概述 我们学生通过这次的课设深入理解和消化了基本理论、进一步提高综合 应用能力并且锻炼独 立 解决问题的能力,我 们 将数字信号处理 、 集成电路 原理与应用和 统设计与应用几门课程融合在一起综合应用设计一 个实用的数字 波器。 本报告中首先讲解了这次设计的具体内容,以及所要求的数字 波 器的技术指标。然后,数字滤波器的一些设计方法,并具体确定我这次设计所 用的设计方案。 滤波器在 的设计方法应用。通过 到所需滤波器的具 体参数 h( n) ,然后用这些所设计的参数,通过 具编程具体实现 滤波器功能。这次滤波器实现过程中,用到以下小模块: 延时器,加法器,乘法器,减法器。 2 课程设计要求及注意事项 1 设计过程以小组为单位,各组设一个组长,负责组织和协调本小组的 讨论、任务分工等; 2 设计过程必须在本组内独立完成,不得跨组参考或抄袭,避免方案出 现雷同; 3 设计书一律采用专用报告纸,用统一封面装订; 4 课程设计原则上在 3 周内做完; 5 最后一周周五进行优秀设计方案评选,在各组推选代表进行方案介绍 的基础上,推选出 2优秀设计方案。 6 学有余力的学生在完成必做设计内容的基础上,可对内容进一步展开 设计,以提高综合应用能力,锻炼独立解决问题的能力。 3 课 程 设 计 内 容 课程设计题目及要求 计题目:基于 波器设计 计要求 利用所学知识,采用 结合完成 波器的设计仿真。 采用直接法或分布式算法实现 字滤波器,了解两种算法的优缺点,选择 其中一种算法,得出用它来实现 波器的硬件结构,对其实现方式进行研 究 , 分别采用合适的方法来设计 , 最后利用 件实现 字滤波器的硬 件电路,并用 实现的结果进行仿真分析。 设计指标: 1)类型: 通 2)系统采样频率: 0 3)输入序列位宽为 8 位的有符号数(最高位为符号位 ) ; 4)输出结果保留 8 位 5)窗口类型为 , = 6)滤波器长度为 N=16; 数字滤波器简介及结构 简介 滤波器是用来进行频率选择或频率分辨操作的线性时不变系统的通称 。 数 字滤波器通常都是应用于修正或改变时域或频域中信号的属性。最为普通的数 字滤波器 就 是线性时间不变量 (1波器 。 一个简 单的数字滤波系统如图 1示。图中, x(t)为模拟信号,经过 A/D 转换器后变为一个有着先后顺序的数字序列 x(n)。然后 x(n)通过数字滤波系统 H(z), 即得到数字滤波器的输出 y(n)。 H(z)为该数字滤波系统的单位脉冲响应 h(n) 的 Z 变换 H (z) h(n)z n n(3若 h(n)为无限长序列 , 则得到的数字滤波器为 字滤波器 , 又称递归 滤波器;反之,若 h(n)为有限长序列,则得到的数字滤波器为 波器,也 称非递归滤波器。一个线形时不变因果滤波器可表示为: N 1 H (z) h(n)z n n0 (3其中 N 为 h(n)的长度,即滤波器的长度。滤波器的阶数为 波器主要是基于对模拟滤波器如巴特沃斯滤波器、椭圆滤波器等的 幅频响应进行逼近,而其相频响应是非线性的。与 波器不同, 波 器可以把相位特性设计成线性。这使得 字滤波器在信号无失真传输、数 据通信、图像传输与处理、语音信号处理等有线性相位要求的领域应用广泛。 波器的优点是软硬件实现结构简单,不用考虑系统的稳定性问题;缺点 是实现较高性能的频率响应需要较高的滤波器阶数。 构 波器的单位抽样响应为有限长度,一般采用非递归形式实现。通常 的 字滤波器有横截性和级联型两种。 波器实现的基本结构有 : (1)波器的横截型结构 表示系统输入输出关系的差分方程可写作: N 1 y(n) h(m)x(n m) m0 直接由差分方程得出的实现结构如图 2示: (3图 3截型 (直接型卷积型 ) 若 h(n)呈现对称特性,即此 波器具有线性相位,则可以简化加横截 型结构,下面分情况讨论: 图 3 3 3 为奇数时线性相位结构图 图 3 为偶数时线性相位结构图 (2)波器的级联型结构 将 H(z)分解成实系数二阶因子的乘积形式 : N 1 N 2 0k 1k 2k H (z) N 0 h(n)zN b k 1 b z1 b z2 (3这时 波器可用二阶节的级联结构来实现,每个二阶节用横截型结构 实现。如图所示: 图 3波器的级联结构 这种结构的每一节控制一对零点,因而在需要控制传输零点时可以采用这 种结构。 计方案的确定 波器设计实现方法 一般有线性相位 接型结构和分布式算法的设计。 案确定 经过多种方案的比较,本次设计最终的方案是: 直接 型。利用 供的 波器设计工具,编写 言,从而实现 字滤波器的设计。 案实现 用 具设计 字滤波器 号处理工具箱里专 用的滤波器设计分析工具, 上的版本还专门增加了滤波器设计 工 具箱 ( 以设计几乎所有的基本的常规滤波 器,包括 各种设计方法。它操作简单,方便灵活。 面总共分两大部分,一部分是 界面的下半部, 用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来 显示滤波器的各种特性。 分主要分为: 波器类型 )选项,包括 通 )、 通 )、 通 )、 阻 )和特殊的 波器。 计方法 )选项,包括 波器的 特沃 思 )法、 (切比雪夫 I 型 )法、 I(切比雪夫 ) 法、 圆滤波器 )法和 波器的 、 小乘方 )法、 函数 )法。 波器阶数 )选项,定义滤波器的阶数,包括 定阶数 )和 小阶数 )。在 填入所要 设计的滤波器的阶数 (N 阶滤波器, 如果选择 据所选择的滤波器类型自动使用最小阶数。 项,可以详细定义频带的各参数,包括采 样频率 频带的截止频率。它的具体选项由 项和 项决定 , 例如 通 )滤波器需要定义 阻带截止频 率 )、 带下限截止频率 )、 带上限截止频率 )、 阻 带截止频 率 ), 而 通 )滤波器只需要定义 采用窗函 数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要 定义通带截止频率,而不必定义阻带参数。 项,可以定义幅值衰减的情况。例如设计带 通滤波器时,可以定义 率 的幅值衰减 )、 带范围 内的幅值衰减 )、 率 的幅值衰减 )。 当采用窗函数设计时, 通带截止频率处的幅值衰减固定为 6以不必 定义。 本次设计滤波器的系数就是采用 具设计的滤波器 。 在 令窗口中 , 执 行 “ 命令 , 就会启动 波器设计与分析工具, 其图形界面如图 3示。 图 3面 选择窗函数法设计滤波器 : 直接使用 具进行滤波器设计 。 例如 首先滤波器 择低通 , 选中 型 , 首先根据滤波器技术指标, 选择窗函数 w(n) 的类型、长度、采样频率和截止频率。点击 键,即可得到设计的 波器的频率响应和滤波器的系数。保存并关闭滤 波器设计分析工具回到 窗口,在命令编辑区输入 得到工具的 计算结果。对 波器的系数进行调整,做整数化操作,可得到滤波器整数 化的系数。 滤波器设计系数的确定 窗函数法低通滤波器: 阶数: 15 采样频率: 10k 截止频率: 1k 滤波器类型: 分布式 滤波器幅频响应 滤波器相频响应 滤波器 的冲击响应 滤波器系数导出后的系数 29) , 整 字滤波器的 现 采用分布式算法设计 波器 1)分布式算法基础 分布式算法( A)是一项重要的 术,广 泛地应用于计算乘积和: N 1 y c, x c(n) * x(n) n0 (3这种算法可用于滤波器、卷积、相关、 凡是有乘累加运算的地方。 一个线性时不变网络的输出可用 式 ( 3表示 。 假设 c(n) 为常量 , x(n) 为 变量。对于有符号 统, x(n) 可表示为: x(n) 2B x (n) B1 xb b0 (n)2b (3 将式 ( 3入式( 3,得 N 1 N 1 B1 y 2B c(n)x (n) c(n)n)2b n0 n0 b0 2B N 1 c(n)xB n0 B1 (n) 2b b0 N 1 c(n)n) n0 2B B1 f (c(n), n) 2 f (c(n), n) ( 3 b0 N 1 其 中 x(n) 为 ( B+1 )位 , f (c(n), n) c(n)n) 称为位乘 积 , 其 中 n0 B b b b=0,B+1 。 函数 f (c(n), n) 的实现方法是利用一个 现映射,预先设 定程序的 收一个 N 位的输入向量 (0), 1),.,N 1) ,输出为 f (c(n), n) ,各个映射 f (c(n), n) 都由相应的二次幂加权累加,最后得到 一次滤波的结果。 由上分析可知,分布式算法是将乘法运算转换成基于查找表结构的移位相 加算法,从而实现多个乘法运算操作。在被乘数位数较少的情况下,相比直接 的乘法器结构,这种算法有明显的速度和算法优势。这种算法尤其是在乘法器 资源很少的 件中有很大的应用前景。 2) 并行的分布式算法 分布式算法有串行实现方式和并行实现方式。并行方式的算法结构如图 3示 。 图中 输出和求和结果的输出都加上了虚线框 , 这些虚线框为 流水线寄存器。上下级流水线寄存器之间的数字电路按照时钟频率工作而不用 考虑它们本身的延 迟 , 这使得整个系统的工作频率增加 , 从 而加快了运算速度。 但是这种并行结构增加了额外的 存器和加法器。当输入数据位宽较少 时,比如 4 到 8 位,这种实现方式会有令人满意的结果。 预处理 并行延时 预相 查找表 输出处理 移位相加 加法器组 3)本文采用并行分布式算法的实现方案 图 3行 构 x( 图 3行分布式算法实现框图 如图所示,各个模块的实现步骤如下: ( 1)输入数据预处理模块 该模块用于将 A/D 转换器输出的 8 位有符号数据转换成二进制补码形式, 并进行锁存。由于在计算机中采用的数据形式是二进制补码,为了仿真方便, 在仿真时可以去掉这个模块。 ( 2)并行延时模块 输入数据输送到并行延时模块,在每个时钟周期,把一组数据顺序时延, 每经过 15 个时钟周期 , 就会有一个数据移出并行延时模块 。 这些并行时延模块 是有 15 组 D 触发器串联而成,并且共用一个时钟。 ( 3)预相加模块 由于线性相位 波器的系数具有对称性 , 因此可以通过将对称的 x(n) 进行相加,这样可以节省( ,从而降低了硬件的规模。 ( 4)查找表模块 该模块用于对位乘积的寻址。一个 8 位的地址,可以产生 28 个数据。为了 节约 源 , 可以采用 割技术 , 将一个 8 位地址的 割成两个 4 位地址的 样可以节省 224 个数据空间。因此,采用 割技以节省大量硬件资源,避免了大容量 使用。 根据分布式算法,查找表存储的是滤波器系数的各种组合相加的结果, 由于滤波器系数通常为浮点数,我们需要将其化为定点整数。 ( 5)加法器模块 该模块用于将高 4 位 中的数据和低 4 位 中的数据进行相加, 然后送入移位累加器模块。为了保证结果正确性,在相加前,需要对相加的两 个有符号数进行符号位扩展。 ( 6)移位累加器模块 各个位产生的位乘积在这个模块中乘以各自的权重 , 也即左移相应的位数, 然后相加得到最终结果。 ( 7)输出处理模块 由于移位累加器输出的是 24 位二进制数,为了得到 16 位字长的数据,需 要对输出数据进行截去低 8 位,同时进行锁存输出。如果有必要,还需将输出 的二进制补码转换为二进制原码 。 分布式结构的 现 。 顶层 原 理图如下: 1 寄存器(延时器) 原理图上标有 输入 8 位数据 , 通过 D 触 发寄存器, 达到延时的作用。 2 预相加 数据通过 是 8 位数字输入, 9 位数字输出加法器,完成第一级相 加运算,因为本设计是 16 阶 字滤波器,它的滤波系数有对称的关系, 所以采用上面的第一级加法器,达到简化运算的效果。 3 查找表 该步骤分为地址生成表和系数查找表,地址生成表是用来为查找系数做准 备,以便尽快找到系数。 4 移位 根据 波器的结构式分布图,要实现系数乘以 20 到 28,在 想乘就是向左移位。 5 累加 第四步骤得到移位后的结果 , 两两相加 , 利用相加器模块 , 得到相加结 果 。 6 输 出 处 理 结果输出要求 8 位输出,但是 结果是 24 位,因此要对结果进行 处理,以便达到设计要求,因为之前一直是进行符号位扩展,只要截取符号位 就能达到要求,用了一个 D 触发器和截取 8 位的原件图。 D 触发器是用来暂存 24 输出结果的,以防造成延时,达到输出结果错乱。 二,详细说明 1 寄存器(延时器) 设计中用一系列 D 触发器组成延时器,实现延时功能。实现功能: 在 跳沿前接受输入信号,正跳沿时触发翻转,正跳沿后输入即被封锁。 源文件: S : D : ); Q: ) ); F S F(ND 1) = D; F; 2 预相 加 : 实现两个二进制数字的相加运算。当到达时钟上升沿时,将两数输入,运算, 输出结果。 源文件: S a,b: ); s: ); F S IF(ND 1)s=(a(7)&a)+(b(7)&b); F; 3 查找表 生成系数地址,以便找到系数 源文件: S ); s0,s1,s2,s3,s4,s5,s6,s7, ) ); a OF S F(ND 1) ()&)&)&); ()&)&)&); ()&)&)&); ()&)&)&); ()&)&)&); ()&)&)&); ()&)&)&); ()&)&)&); ()&)&)&); F; 2)系数查找模块 件生成 4 移位 以 例源码如下: S ); 5 ) ); a S 1 ); F(ND 1) 0000; F; 1)&1)&1)&1)&1 ); a; 5 累加 15 位相加模块 源 IN 15 ); UT 6 ); a of 6 ); 6 ); (5)& (5)& 1) s1+F; a; 16 位相加模块 源程序 IN 16 ); UT 7 ); a of 7 ); 7 ); (6)& (6)& 1) s1+F; a; 17 位相加模块 源程序 IN 17 ); UT 8 ); a of 8 ); 8 ); (7)& (7)& 1) s1+F; a; 18 位相加模块 源程序 IN 18 ); UT 9 ); a of 9 ); 9 ); (8)& (8)& 1) F; a; 真测试与分析 为了测试 15 阶等波纹 通滤波器的滤波性能,本设计加入了输入 x(t) 00 * t) 0000 * t) 的信号 , 其中 t) 0000 * t) 是叠加在 t) 00 * t) 上的噪声 。 如图 4示 , 假设抽 样 频率为 1000, 则经过抽样的输入序列为: x(n) n) n) , 取 n=0,139, 由于 x(n) 为浮点数,本设计将 x(n) 扩大 29 倍,得到 n) ,然后再取整。具 体如表 3示: 表 3入序列的处理 n n) 取整 n n) 取整 n n) 取整 n n) 取整 0 6 10 2 20 6 30 0 0 1 13 11 21 19 31 32 2 1 12 1 22 1 32 3 9 13 2 23 23 33 30 4 5 14 9 24 34 5 4 15 5 25 27 35 27 6 9 16 5 26 36 7 2 17 9 27 30 37 23 8 1 18 1 28 38 1 9 19 13 29 32 39 19 抽样,放大取整后的 40 个输入数据如下: 16,1 , 25,9, 31,0,32, 0, 31, 9, 5, 21,6,11,1, , ,3,1,滤波系数: h=1, 5, 8, 11, 13, 13, 11, 8, 5, 1, 仿真结果如下 如仿真图输出为: 74, 496, 531, 1313, 1593, 2612, 3115, 4314, 4949,6171, 6714, 7708, 8147, 8384, 8384, 8147, 7708, 7194, 6312, 5371, 4304, 3147,1921, 648, 卷积结果如下: y=h,64) 仿真结果与 算结果比较可知基本一样。 在 输出函数 x(t) t) t) 如图: t=0:9; y=pi*t)+pi*t); t,y); 抽样 40 点 x( n)如下: t = 0 : 1 : 39;y = pi*t)+pi*t);t, y); 在 编 程 实 现理 想与 程 实 现 的 实 际柱 状 图 的 比较 ); ,2,1); 16,1,5,9,1,0,32,0,31,9,5,1,6,1,7,1, 2,5,8,11,13,13,11,8,5,1,2, y=hn,64); :1:54; t1,y,; ,2,2); ,0,1,1,3,3,5,6,9,10,12,13,15,16,17,17,16,15,14,12,11,9,6,4,1,6,11,14,16,17,14,12,8,5,2, 0,1,0,1; t1,r*); 柱状图比较如下: 结论 : 比 较 两 图 的 曲线 走 势 几 乎 完 全 一样,可得所设计是正确的。 仿真 得的杆状图 验 结果分析 在 一个是 而在 本次课设的要求是系统输入序列位宽是 8位 的有符号数,所以最大 只能 表示到 所以在其仿真的时候输入的是 这就造成了输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论