FIR滤波器的设计毕业论文.doc_第1页
FIR滤波器的设计毕业论文.doc_第2页
FIR滤波器的设计毕业论文.doc_第3页
FIR滤波器的设计毕业论文.doc_第4页
FIR滤波器的设计毕业论文.doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

FIR 滤波器的设计毕业论文滤波器的设计毕业论文 目 录 摘要 I ABSTRACT II 前 言 1 第 1 章 滤波器的基本概念 2 1 1 滤波器的原理和分类 2 1 1 1 滤波器的实现步骤 2 1 1 2 采样定理 2 1 2 滤波器的技术指标 3 1 3 数字滤波器的系统特性 3 1 3 1 离散系统的实现 3 1 3 2 状态和张弛系统 5 1 3 3 因果性和可实现系统 5 1 3 4 稳定性 5 1 3 5 时不变性 5 1 3 6 线性和叠加性 6 1 4 滤波器的分类 6 1 5 数字滤波器设计的基本步骤 6 第 2 章 FIR 数字滤波器的基本网络结构 8 2 1 FIR 网络结构 8 2 1 1 直联型 8 2 1 2 级联性与线性相位结构 8 2 1 3 频率采样结构 9 2 2 频率采样结构有两个突出优点 10 第 3 章 FIR 数字滤波器的设计 11 3 1 FIR 滤波器设计 11 3 1 1 FIR 数字滤波器的简介 11 3 1 2 FIR 数字滤波器的传统设计方法 11 3 1 3 线性相位 FIR 数字滤波器的条件和特点 11 3 1 4 FIR 数字滤波器设计原理分析 12 3 2 采用窗函数方法设计线性相位 FIR 滤波器的方法 13 3 3 小波分析法 15 3 3 1 的结构特征 16 3 3 2 小波分析 16 3 3 3 滤波器设计的小波方法 17 3 4 利用频率采样法设计 FIR 滤波器 18 3 4 1 用频率采样法设计滤波器的线性相位条件 18 3 4 2 逼近误差及改进措施 18 3 5 切比雪夫逼近法设计 FIR 滤波器 19 3 5 1 切比雪夫法最佳一致逼近准则 19 3 5 2 利用最佳一致逼近准则设计线性相位滤波器 20 第 4 章 MATLAB 仿真 22 4 1 MATLAB 的背景 22 4 2 MATLAB 在 FIR 中的应用 22 4 3 FIR 滤波器的 MATLAB 仿真实例 23 第 5 章 数字滤波器的实现 27 5 1 数字滤波的实现方法 27 5 2 FIR 数字滤波器的 C54 实现 28 5 2 1 TMS320C5402 简介 28 5 2 2 TMS320C5402 编程 28 5 2 3 FIR 滤波器在 TMS320C5402 中的实现 29 5 3 硬件描述语言 HDL 31 5 3 1 HDL 设计方法 31 5 3 2 VHDL 语言 31 5 4 采用 FPGA 的实现 32 5 4 1 研究思路及方法 33 5 4 2 FPGA 的设计流程 35 5 5 FIR 滤波器的模块划分 36 5 5 1 输入模块 37 5 5 2 乘累加模块 37 5 5 3 锁存模块 38 5 5 4 控制模块 38 5 6 总结与展望 38 致谢 39 参考文献 40 附录 1 电路仿真 41 附录 2 执行程序 43 附录 3 英文原文 46 中文翻译 57 第 1 章 滤波器的基本概念 1 1 滤波器的原理和分类 1 1 1 滤波器的实现步骤 滤波器是用于根据给定的要求对信号频谱进行修改或整形 通常 大多数的滤波器的功能是分离需要的信号与不需要的信号或噪声 信号或噪声 一般根据其在频带内的频率成分或信号的能量进行描述 滤波器的技术指标一般是指频域 内的幅频响应 增益或衰减 滤波器是指用来对输入信号进行滤波的硬件或软件 如果滤波器的输入 输出都是离 散信号 则该滤波器的冲击响应也必然是离散的 这样的滤波器定义为数字滤波器 一个 数字滤波器可以用一个系统函数表示如下 1 1 1 1 0 zX zY za zb zH N k k k M i i i 数字滤波器的功能 就是把输入序列 X n 通过一定的运算变换成输出序列 Y n 一旦知道了对滤波器的要求 就可以确定滤波器的技术指标 设计是从技术指标开始 的 滤波器实现的过程包括四个一般步骤 1 函数逼近 2 电路实现 3 缺陷研究 4 产品实现 函函数数逼逼近近是产生满足理想技术指标的转移函数 电电路路实实现现滤波器的转移函数转换为方框图 也叫数字滤波器网络 或转换为乙组对输 入数字序列进行顺序计算的方程 缺缺陷陷研研究究研究各种非理想因素的影响 如存储采样值和稀疏的有限字长 或在不违反 滤波器技术指标的条件下所允许的最大化量步长 产产品品实实现现使用硬件 DSP 处理器 专用硬件 常用 VLSI 芯片 或者在普通计算机 专用计算机或阵列处理器上运行的软件构建滤波器的原型 需要作出以下判定 a 期 间的类型 b 制造方法 数据字长 系数字长等等 1 1 2 采样定理 自然界发生的信号一般都是连续的 如果我们选用数字系统 如计算机 来处理信号 就需要把连续信号转化为数字信号 可能还要把结果在转化为连续信号 数字系统应该能 去除不需要的信号及干扰信号 在处理信号之前 必须选择采样周期和量化电平数 采样周期选择错误会产生严重误 差并丢失信息 一个重要的定理叫做采样定理 它给出了选择采样周期 T 准则 为了对采样定理的重要性有一个感性的认识 我们先考虑一频率的正弦信号 对频率 为的连续正弦信号采样时 采样定理要求采样频率应大于的 a f 2sin aaa tftx 0 f a f 两倍 1 T 以使 2 0 f 0 f a f 首先假设连续信号有一个或多个正弦信号组成 其最高频率是 如果采样频率 max f 至少是最高频率的两倍 则正弦信号可由其等间隔的样值唯一表示 当采样序列通 0 f max f 过一个对高于的正弦信号有抑制作用的系统时 原始连续信号就可以由采样序列重建 max f 最小采样频率是 2 采样频率的一半叫做奈奎斯特频率 也叫做折叠频率 0 f max f 奈奎斯特频率 2 1 2T 0 f 如果正弦信号的频率 又大于奈奎斯特频率 2 经采样成为离散时间信号时 a f 0 f 0 f 就有小于奈奎斯特的信号混入 混入频率的出现就好像有两个信号存在 一个频率是 a f 另一个是 新词成为混叠频率 混叠效应可 通过一个称为连续低通抗混叠滤波器 0 f a f 的系统消除 该系统常用在连续信号离散化之前 在实际应用中 通常选择采样频率为信 号频率最大值的 4 倍 a f 1 2 滤波器的技术指标 滤波器的技术指标可用以下几种方式来表示 1 幅幅度度范范围围定义了通带的最小幅度和阻带的最大幅度 M p M s 2 幅幅度度容容限限值指定通带幅度减小的最大值 和阻带幅度的最大值M pp M 1 s s 3 幅幅度度纹纹波波容限描述了通带内幅度变化最大量 和阻带内幅度变化最大量 1 2 4 衰衰减减范范围围用 dB 表示 指定通带内的最大衰减和阻带内的最小衰减 p A s A 5 增增益益范范围围用 dB 表示 指定通带内最小增益恶化阻带内最大增益 p G p A s G s A 1 低通滤波器的技术指标 1 0 0 3 0 0 3 j eH j eH 2 带通滤波器的技术指标 0 0 0 4 1 0 4 0 6 j eH j eH 0 0 6 j eH 3 高通滤波器的技术指标 0 0 0 7 1 0 7 j eH j eH 4 带阻滤波器的技术指标 1 0 0 3 0 0 3 w 0 7 j eH j eH 1 0 7 w j eH 1 3 数字滤波器的系统特性 1 3 1 离散系统的实现 系统的时间响应是在指定的运算条件下 一组给定的输入信号施加于系统时输出信号 随时间变化的函数 在连续时间系统中 输入和输出都是连续时间信号 离散时间系统具 有离散时间的输入输出信号 如果一个离散时间系统对幅度被量化的离散时间信号进行操作 就是数字系统 量化 把每个连续的幅值应设成一个数 数字系统既可以直接用通常的逻辑电路形式运算 也可 以间接的通过编写执行对信号的操作的计算机程序来处理 数字滤波器是一种用来过滤时间离散信号的数字系统 它是通过对抽样数据进行数学 处理来达到频域滤波的目的 数字滤波器可以用软件或设计专用的数字处理硬件两种方式 来实现 用软件来实现数字滤波器优点是 随着滤波器参数的改变 很容易改变滤波器的 性能 具有精度高 可靠性高和灵活性高等特点 对于消除干扰 提高通信质量有重要的 作用 目前得到了广泛的应用 数字滤波器的技术指标通常是给定的 但在许多情况下设计者必须自己建立技术指标 这是滤波器设计中最重要的先决条件 就是说 如果技术指标太苛刻 比如通带和阻带容 差非常低 过度区较窄 那么滤波器是不可能实现的 选择合适的技术指标必须根据信号的特点 如需要的和不需要的信号或噪音的频带及 相应的电平值 和现有的硬件或软件 浮点或定点计算 系数字长等 现在考虑离散时间线性时不变系统 DTLTI 如图 1 1 所示 其输入为正弦序列 x in n x n Xsin 2fn 稳态输入序列为 y n y n Ysin 2fn 比值 M f Y X 描述了正弦序列的幅度变化 称为频率响应 f 表示正弦输 入序列的相位变化 称为相频响应 DTLTI X n Y n 图 1 1 离散系统 也即是说 M f 表示频率为 f 的输入信号如何通过系统传输 由频率响应可推出转 fj e 移函数 DTLTI 的转移函数 H z 是复变量 z 的有利函数 当 z e 时 转移函数即为频率 响应 H e M f fj e 由频率响应 M f 可推出几个函数 频率响应平方的倒数成为损耗函数 2 fj eH L f 1 M f 2 1 2 称函数为特征函数 1 fLF K f 1 1 2 fM 1 3 衰减 用 dB 表示 或损耗特征定义为 A f 20 1 M f 1 4 增益 用 dB 表示 等于衰减的负值 G f A f 20 1 M f 1 5 假设频率响应的最大值为 1 maxM f max 1 2 fj eH 1 6 如果不是 1 则用一个常数与 H z 相乘来补偿所要求的衰减或增益 1 3 2 状态和张弛系统 在时刻的输出不仅依赖于时刻的输入还与时刻之前或之后的输入有关 在时 0 t 0 t 0 t 0 t 信号输入系统 如果不知道时刻以前的系统所加的输入信号 那么时的输出 tx 0 t 0 t 一般不能唯一的确定 若在时刻之前所见的输入不同 则即使在时是同一输入 ty 0 t 0 t 在时得到的也会不同 因此要得到输入输出关系 在施加输入信号前必须假 tx 0 t ty 设系统时张弛的或静止的 且输出是由所施加的输入单独激励产生的 这一定义对任意系 统都成立 如连续时间系统等 1 3 3 因果性和可实现系统 以时间为自变量的系统 如果其输出仅与现在时刻和过去时刻的输入值有关 就叫做 因果系统 即如果是输出 那么仅取决于输出在的值 ty ty xt 如果系统 n 时刻的输出 只取决于 n 时刻以及 n 时刻以前的输入序列 而和 n 时刻 以前的输入序列无关 则称该系统具有因果性质 或称该系统为因果系统 如果n 时刻 的输出还取决于 n 时刻以后的输入序列 在时间上违背了因果性 系统无法实现 则系统 被称为非因果系统 线性时不变系统具有因果性的充分必要条件是系统的单位取样响应满足下式 h n 0 n 0 满足此式的序列为因果序列 因此因果系统的单位取样响应必然是因果序列 因此系 统的条件从概念上也是容易理解的 因为单位取样响应是输入为的零状态响应 在 n n 0 时刻以前即 nN 1 及 n 0 以 Morlet 小波为基小波 当a 1 和b 0 时 其形式为 3 25 exp 2exp 2 exp 2 0 0 2 hh tfjtthh 该小波函数的实部和虚部的脉冲响应见图 3 3 可见 实部具有偶对称的结构形式 而虚部是奇对称 通过傅氏变换为式 3 24 其频谱见图3 4由图3 4可见 小波函数在其中 心频率达到最大值 即小波滤波器的中心频率受到尺度的影响 当小波滤波器与信 0 号的采样频率一致时 其中心频率f 与尺度的关系为 3 26 f 2 0 即小波的频率局部化取决于由3 3可见 单个小波函数相当于一个带通滤波器 当选 取合适的尺度因子后 可以在频域提取某个频率的信号 这为利用小波设计具有一定带宽的 FIR DF 提供了新思路 h n mm 图 3 3 单个小波波形 t ms H w mm 图 3 4小波的幅值谱 t ms 3 3 3 滤波器设计的小波方法 根据 FIR DF 的特点 利用小波设计滤波器时 选取的基小波必须是一个复数函数 其实部采用偶函数 虚部选择奇函数 式 3 24 中小波函数的实部的傅立叶变换为偶函数 且为零相位 而虚部的傅氏变换为奇函数 其相位与实部相差90 信号经小波滤波后 其实部也是偶函数 虚部为奇函数 而且相位产生90 相移 在具体设计时 根据设计 要求的频率范围选取适当的小波函数 就可实现滤波和移相功能 对具有一定带宽的滤 波信号的提取 滤波 必须对基小波进行扩展 通过构造一个小波滤波器组来实现具有一 定带宽的信号带通滤波 根据小波理论 小波变换是一种线性变换 若干单个小波经 过线性组合 其结果仍然是小波 但是组合小波函数的通带范围会产生改变 设单个 小波及其傅氏变换分别为 2 2 exp 2 ii fjtathh 3 27 2 exp 2 exp 2 0 aadttjthhHH i 3 28 式中 i 为单个小波个数 即要滤波的频率个数 为第i 个滤波频率 根据式 i f 3 26 采用上述基小波 滤波器滤波频率与尺度无关 并且小波的时域和频域具有 相同的形式 另外 当小波滤波器中心频率为 时 式 3 26 值最大 所以小 0 波滤波器的中心频率和a可以视实际需要分别确定 从而为小波滤波器的设计提供了方便 小波经线性组合后形成的组合小波滤波器组为 1 thhtHH i n i i 3 29 由式 3 28 建立的小波滤波器 实际上是频域对理想滤波器的一种逼近 由于式 3 27 的Morlet 基小波函数是一个正交函数 故式 3 28 的组合小波是有多个正交函 数组成的多项式 根据逼近理论 一个正交函数系可以任意精度逼近一个一维平方可积 函数 是一种最佳一致逼近 所以用式 3 26 3 27 的基函数组成的组合小波函数 可以实现对理想滤波器的最佳一致逼近 为保证所建立的组合小波滤波器组具有统一的 幅频特性 单个小波的a 必须相同 组合小波的带宽由 1 n 个分析小波确定 3 4 利用频率采样法设计 FIR 滤波器 设计的滤波器的传输函数用表示 对它在到之间等间隔采样N点 得到 j d eH0 2 kHd k 0 1 2 N 1 2Nk j dd eHkH 3 30 再对N点进行IDFT 得到h n kHd n 0 1 2 N 1 Nknj d N k ekHNnh 2 1 0 1 3 31 式中 h n 作为所设计的滤波器的单位取样响应 其系统函数H z 为 n N n znhzH 1 0 3 32 以上是用频率采样法设计滤波器的基本原理 3 4 1 用频率采样法设计滤波器的线性相位条件 FIR滤波器具有线性相位的条件是 h n 是实序列 且满足h n h N n 1 从而推出传 输函数所满足的条件 j g j d eHeH 3 33 2 1 N 3 34 N 奇数 2 gg HH 3 35 N 偶数 2 gg HH 3 36 在之间等间隔采样N点 2 0 k 0 1 2 N 1Nk k 2 3 4 2 逼近误差及改进措施 如果待设计的滤波器为 对应的单位取样响应为 j d eH nhd deeHnh njj dd 2 1 3 37 则由频率采样定理知道 在频域之间等间隔采样 N 点 利用 IDFT 得到的 h n 应是 2 0 以 N 为周期 周期性延拓乘以 即 nhd N R r Nd nRrNnhnh 3 38 由于时域混叠 因其所设计的 h n 和有偏差 为此 如果所需的频率采样点数 N 加 nhd 大 N 愈大 所设计的滤波器愈逼近待设计的滤波器 j d eH 若从频域分析 由采样定理表明 频率域等间隔采样 H k 经过 IDFT 得到 h n 其 Z 变换 H z 和 H k 的关系为 1 0 1 2 1 1 N k NkjN zekHNzzH 3 39 3 5 切比雪夫逼近法设计 FIR 滤波器 前面介绍了利用窗函数法 小波逼近法和频率采样法来对滤波器进行设计 其中频率 采样法是直接在频率域采样 保证了所涉设计的滤波器和所要求的滤波器 j eH 幅度值相等 但是使频率不连续点附近误差大 且边界频率不易控制 在窗函数 j d eH 法中用窗函数直接截取希望设计的滤波器的那一段 作为滤波器的 这是一种 nhd nh 时域逼近法 如果用表示和所设计的之间的频响误差 j eE j d eH j eH jj d j eHeHeE 3 40 其均方误差为 deEe j 2 2 2 1 3 41 其中矩形窗是一种最小均方误差设计法 所谓最小指的是在整个频带上的积分最小 保证了具有最窄的过渡带 但过渡带附近的通带内有较大的上冲 而且阻带衰减过小 若 采用其它窗函数法其使用的不再是最小均方误差设计法 因此在整个频域满足要求 平坦 区域超过了技术的要求 若采用切比雪夫逼近法其是一种等波纹逼近法 它使误差在整个频带内均匀分布 对 同样的技术指标 这种逼近法需要的滤波器阶数低 而对同样的滤波器阶数 这种逼近法 得最大误差最小 3 5 1 切比雪夫法最佳一致逼近准则 若设计的滤波器幅度特性为 实际设计的滤波器幅度特性为 其加权 d H g H 误差用下式表示 E gd HHWE 3 42 式中 称为误差加权函数 它是为在通带或阻带要求不同的逼近精度而设计的 一 W 般的 在要求逼近精度高的频带 取最大 要求逼近精度低的频带 得取值 W W 最小 其中设计过程中为已知的函数 W 为设计具有线性相位的 FIR 滤波器 其单位脉冲响应 h n 或幅度特性必须满足一定的 条件 假设设计的是 h n h N n 1 N 奇数 2 1 g Njj HeeH 3 43 nnaH N n g cos 2 1 0 3 44 将代入 3 42 式 则 g H cos 0 nnaHWE M n d 3 45 式中 M N 1 2 最佳一致逼近的问题是选择 M 1 个系数 a n 使加权误差的最 E 大值为最小 即 maxmin E A 3 46 式中 A 表示所研究的频带 这里指通带或阻带 按照 3 5 7 式 这是一个 M 次多项式 切比雪夫理论指出这个多项式存在且唯一 并指出构造该多项式的方法是 交错电阻 定理 该定理指出最佳一致逼近的充要条件是 在 A 上至少呈现 M 2 个 交错 E 使得 A EE EE M i ii max 1210 1 3 5 2 利用最佳一致逼近准则设计线性相位滤波器 若设计滤波器是线性相位低通滤波器 其幅度特性为 d H 式中为通带截止频率 为阻带截止频率 p s 从而可得矩形式 1 0 cos 0 2cos 0 cos M 1 0 W 1 1 cos 1 2cos 1 cos M 1 1 W 1 2 cos 2 2cos 2 cos M 1 2 W 1 M cos M 2cos M M cos 1 1 1 M M W 1 2 1 0 Md Md d d d H H H H H a 0 a 1 a 2 a M 利用切比雪夫逼近法设计 FIR 滤波器 由于采用了等波纹逼近 误差均匀的分布在频带 1 p 0 0 s 内 可以得到优良的滤波特性 这是一种滤波器的优化设计方法 它比较前面所介绍的窗函 数法和频率采样法 在同样过渡带较窄的情况下通带最平稳 阻带有最大的最小的衰减 1 1 1 2 1 1 1 0 2 2 2 0 图 3 5 低通滤波器的最佳逼近 输入滤波器技术要求 N d H W 按要求的滤波器类型求出 W d H P 给出 M 2 个交错点组频率初始值 i 0 1 2 M 1 i 调用 Remez 算法程序求解 最佳极值频率和系数 P 计算单位脉冲响应 h n 输出最佳误差和 h n 图 3 6 利用切比雪夫逼近法设计线形相位 FIR 滤波器程序框图 第 4 章 MATLAB 仿真 4 1 MATLAB 的背景 MATLAB 是美国 MathWorks 公司于 1982 年推出的产品 时至当今它己经发展成为当 今国际公认的最优秀的科技应用软件之一 MATLAB 也有专用的数字信号处理工具箱 不 仅数字滤波器的计算机辅助设计有了可能 而且还可以使设计达到最优化 MATLAB 的数 字信号处理工具箱 SPTool 采用图形用户界面 交互式输入的方式进行滤波器设计 可以非 常直观地显示所设计滤波器的幅频特性 相频特性 群时延 阶跃响应和冲击响应 同时 MATLAB 也自带了大量的滤波器设计函数 如 buttap cheb1ap cheb2ap fir1 和 ftr2 等等 利 用这些滤波器设计函数 可以方便地设计出所要求的数字滤波器 也可以计算出滤波器的系 数为进一步的硬件实现做准备 MATLAB 的功能不仅仅只有这些 MATLAB 还自带了功能 非常强大的仿真工具 Simulink 利用这个仿真工具 可以对算法进行软件上的仿真 MATLAB 可以产生各种需要的仿真信号 仿真过程也非常直观 直接拖动所需要的模块进 行连接就可以了 如果对仿真结果感到满意 还可以直接写到 DSP 芯片上 做成硬件电路 MATLAB 提供了到 DSP 目标板的接口程序 MATLAB是一个交互式的以矩阵为基础的软件 随着的不断MATLAB完善 尤其是 MATLAB的信号处理工具箱的推出 如今MATLAB已经成为数字信号处理 digital signal p rocessing 应用中分析和仿真设计的主要工具 提供了MATLAB丰富的函数 其中fir1函数实 现了加窗线性相位F IR滤波器设计的经典方法 fir1主要用于常用的标准通带滤波器设计 包括低通 带通 高通和带阻数字滤波器 除此之外 还提供了多带F IR滤波器的设计函 数fir2 Hilbert变换器及其它具有奇对称系数的滤MATLAB波器设计函数firl和remez等 数 字滤波器的设计要经过3步 确定指标 逼近和实现 通常在设计滤波器之前 应该先根据 具体的应用确定一些技术指标 然后就可以根据数学知识和滤波器的基本原理提出个滤波 器的模型来逼近给定的指标 逼近的结果通常是得到以差分方程或脉冲响应描述的滤波器 最后 可以根据这个描述用硬件或软件实现 用MATALB的信号处理工具箱进行参数的设 计 然后用FPGA器件实现 4 2 MATLAB 在 FIR 中的应用 1 fir1 函数 功能 基于窗函数的 FIR 滤波器的设计 标准频率响应 格式 b fir1 n Wn b fir1 n Wn ftype b fir1 n Wn Window 说明 fir1 函数以经典方法实现加窗线性相位 FIR 数字滤波器的设计 可设计出标准的低通 高通 带通和带阻滤波器 b fir1 n Wn 可得到 n 阶低通 FIR 滤波器 滤波器系数包含在 b 中 传递函数为 是一个截至频率 Wn 的 Hamming 汉明 加窗线性相位 n znbzzbbzb 1 1 1 滤波器 Wn 在 0 1 区间 Wn 1 相应于 0 5fs 采样频率 当 Wn 为二元矢量 W1 W2 W1 R 的最小的整数 例如 长度为 R 31 的循环缓冲区必须从地址 XXXX XXXX XXX0 00002 地址的最低 5 位为 0 开始 若块长 N 8 此时滤波器指针初始化时指向 h 7 数据缓冲区指针指向将要更新的数 据 x n 如图 5 1 所示 在写入新数据并完成 FIR 运算后 滤波器指针仍指向 h 7 而 数据区指针指向 x n 7 新采样来的数据替换最早的数据 然后继续循环寻址 保持数据 的更新 实现的主要程序如下 STM 1 AR0 STM 8 BK STL A 3 FIR DATA P 滤波器最新的采样数据 数据缓冲区指针为 FIR DATA P RPTZ A 7 重复 MAC 指令 8 次 MAC 3 FIR DATA P 0 3 FIR COFF P 0 完成 FIR 滤波运算 滤波器系数的指针为 FIRCOFF P h 7 h 6 h 0 h 1 X n 7 X n 6 X n 1 X n 初始采样 最早 输入 最近 输入 X n X n 7 X n 2 X n 1 循环 序列 图 5 1 用 MAC 指令实现 FIR 滤波 3 使用特殊指令 FIRS 来实现 由偶对称 h n h N 1 n 来看 长度为 N 的线性相位 FIR 滤波器可以表示为 1 12 0 kNnxknxkhny N k 5 3 若是利用 FIRS 指令 需要将输入数据缓冲区分为大小相同的两个 每个循环缓冲区大 小设为 N 2 这里仍然以 N 8 为例来说明 如图 5 2 所示 让辅助寄存器 AR1 指向缓冲 区 1 的顶部 x n 3 而辅助寄存器 AR2 指向缓冲区 2 的底部 x n 7 每次滤波之前 将 x n 3 移到 AR2 所指的区域 而最新的采样数据将存储到 AR1 所指的空间 同时对 AR1 使用循环寻址 然后使用 FIRS 指令进行乘加操作 完成 4 次循环之后 需要对两个 缓冲区的指针 AR1 和 AR2 进行修正 使它们分别指向各自缓冲区数据序列的最后 为下一 次采样计算作准备 实现的主要程序如下 STM 1 AR0 STM 4 BK MVDD 3 AR1 3 AR2 将 x n 3 存储到 x n 7 所在的空间 STL A 3 AR1 将最新采样数据存储到原来 x n 3 的位置空间 ADD 3 AR1 0 3 AR2 0 A 初始化累加器 A RPTZ B 3 循环操作 4 次 FIRS 3 AR1 0 3 AR2 0 FIR COFF P 完成 FIRS 运算 滤波器系数存储在 FIR COFF P 所在的空间 MAR 3 AR2 2 修改缓冲区 2 指针 MAR 3 AR1 修改缓冲区 1 指针 h 0 h 1 h 2 h 3 X n 3 X n 2 X n 1 X n 最新输入X n 4 X n 5 X n 6 X n 7 循环 序列 图 5 2 用 FIRS 指令实现 FIR 5 3 硬件描述语言 HDL 硬件描述语言 HDL 使电子系统的设计向形式化描述方向发展 它把诸如自上而下的设 计 并行结构 结构化设计 模块化设计等软件工程的设计思想与方法引入到电子系统的硬 件设计中 5 3 1 HDL 设计方法 1 HDL 设计方法基本上包含 3 方面 1 设计描述的开发 这种描述必须是有效的 2 综合 将设计描述转换成优化的门级表示 目前的综合工具只是将输入的寄存器传输 级 RTL 的 HDL 描述转换为门级的网表 再由门级的网表实现互连的门级宏单元结构 因为 厂家所支持的各个工艺库中有门级宏单元模块 所以有了门级网表就能按照技术条件进行优 化 得到一个优化了的门级结构 3 对设计加以验证 硬件描述语言 RTL 级设计的流程框图如图 5 7 所示 其中的综合部 分是 HDL 设计方法中的关键 2 HDL 综合设计方法优点 1 提高设计效率 设计者不需人工进行门级描述 节省了设计时间 2 设计是在较高的抽象层次上进行 设计者不用更多地考虑门级 可花费更多的时间考 虑概念级方面 3 利用 HDL 具有的自动优化和快速探索各种设计方案的能力 可使设计者迅速而成功地 缓冲区 得到高质量设计的最终结果 从而改善了设计质量 4 设计与工艺无关 便于设计的再利用 5 3 2 VHDL 语言 1 VHDL 基本设计流程 用 VHDL Verilog HDL 开发 CPLD FPGA 的完整流程为 1 文本编辑 用任何文本编辑器都可以进行 也可以用专用的文本编辑环境 通常 VHDL 文件保存为 vhd 文件 Verilog 文件保存为 v 文件 2 功能仿真 将文件调入 HDL 仿真软件进行功能仿真 检查逻辑功能是否正确 也称为 前仿真 对简单的电路可以跳过这一步 只在布线完成后进行时序仿真 3 逻辑综合 将源文件调入逻辑综合软件进行综合 即把语言综合成最简的布尔表达式 和信号的连接关系 逻辑综合软件会生成 edf 的 EDA 工业标准文件 4 布局布线 将 edf 文件调入 PCD 厂家提供的软件中进行布线 即把设计好的逻辑安放 到 CPLD FPGA 内 5 时序仿真 需要利用在布局布线中获得的精确参数 用仿真软件验证电路的时序 也 称为后仿真 6 仿真下载 确认仿真无误后 将文件下载到芯片中 图 5 7 HDL 设计方法流程框图 5 4 采用 FPGA 的实现 FIR 数字滤波器被广泛地应用于数字信号处理 DSP 系统 它可以满足滤波器对幅度和 N RTL VHDL 源文件 RTL 仿真 功能仿真 转化成门级及门级优先 门级仿真 工作速度与功 能检验 门级结束 N Y Y 相位特性的严格要求 避免模拟滤波器温漂和噪声等问题 具有精确的线性相位 容易用硬 件实现 并且系统稳定 在非实时或低速系统中 由于程序的顺序执行 软件方式的实时性 往往不能满足要求 此时要求直接用硬件高速实现 在这种情况下 利用现场可编程门阵列 器件 FPGA 实现 FIR 滤波器 由于实现的硬件并行算法 参数提取参数提取 设计指标如下 通带类型 低通 通带衰减 3 dB 采样频率 20MHz 截止频率 3MHz 阻带截止频率 3 5MHz 阻带衰减 30 dB 阶 数 32 位 数 8 位 根据以上指标 利用 MATLAB 函数很容易得到滤波器的系数 h n 文中选用汉明窗作 为窗函数 计算出线性相位 32 阶 F IR 低通数字滤波器的特性参数如表所示 表 5 8 32 阶 F IR 低通数字滤波器的特性参数 系数 系数值系数 系数值 h 0 h 31 0 022263 h 7 h 24 0 019023 h 1 h 30 0 015422 h 8 h 23 0 034335 h 2 h 29 00040165 h 9 h 22 0 042512 h 3 h 28 0 033998 h 10 h 21 0 069989 h 4 h 27 0 056797 h 11 h 20 0 033584 h 5 h 26 0 053203 h 12 h 19 0 20987 h 6 h 25 0 020838 h 13 h 18 0 30556 5 4 1 研究思路及方法 要研究基于 FPGA 实现的 FIR 数字滤波器 首先要选定 FPGA 器件 设计数字系统 有多种方法 可以采用传统的数字系统设计方法 也可以采用使用硬件 描述语言的数字系统设计方法 传统的设计方法不适合大规模系统的设计 所以采用使用硬 件描述语言的数字系统设计方法 这就要求学会自顶向下的系统设计方法 硬件描述语言 VHDL Very High Speed Integrated Circuit Hardware Description Language 综合工具 仿真工 具等 FIR 数字滤波器广泛的应用于数字信号处理系统 如通信 数字图像处理 声音信 号处理等许多方面 FPGA 是近年来迅速发展的大规模可编程专用集成电路 A S IC A ltera 公司的 FL EX10K 是工业界第一个嵌入式的 PLD 具有高密度 低成本 低功 率等优点 器件的主要结构特点是除主要的逻辑阵列块 LAB 之外 首次采用了嵌入阵列 块 EAB 每个阵列块包含 8 个逻辑单元队 L E 和一个局部互连 1 个 L E 又由 4 输入查 找表 LU T 1 个可编程寄存器和专用的载运和级联功能的信号通道组成 在 FL EX10K 器件中 把每一组逻辑单元 8 个 L E 组成一个逻辑阵列块 LAB 所有的 LAB 排成行和列 在一行里还包含一个单一的 EAB 多个 LAB 和多个 EAB 采用快速通道互相连接 嵌入式 阵列块 EAB 是 FL EX10K 系列器件在结构设计上的一个重要部件 它是输入端口和输出 端口都带有寄存器的一种灵活的 RAM 块 EAB 组成的规模和灵活性对比较多的内存是适 宜的 功能包括乘法器 向量的标准和误差矫正电路等 在应用中 这些功能又能够联合 完成数字滤波器和微控制器的功能 采用可编程的带有只读平台的嵌入阵列块 EAB 在配 置期间可执行逻辑功能并建立一个大查找表 LUT 在这个查找表里用查找的结果执行组合 逻辑函数 而不用计算它们 显然用这种组合逻辑函数执行比通常在逻辑里应用算法执行要 快 所有线性 FIR 数字滤波器都有对称的系数 因此设计者可以利用这种系数对称的性质 在进行累加或乘法前通过增加阶数来实现 例如一个 8 阶的 FIR 数字滤波器利用一个 4 输 入的矢量乘法器来实现 这个 4 输入的矢量乘法器执行如下作用 y h 1 s 1 h 2 s 2 h 3 s 3 h 4 s 4 5 4 LELELELELELELELE S 1 S 2 S 3 S 4 16 4Luts216 4Luts1 y n Multiply by2 图 5 3 8 阶数字滤波器的 FPGA 硬件内部结构 h n 是滤波器的系数 s n 是抽样 在编译前滤波器系数必须调整 虽然可以通过重 新设计装置来改变系数 因此用户可以根据自己的选择来决定滤波器的功能 而且 对滤波 器增加更多的阶数并不显著改变给定位数的滤波器速度 现在我们所设计的一般都是 parallel F IR 数字滤波器 因为其采用流水线加法器速度更快 可达到 100 M SPS 以上 图 5 3 所示的结构图为实现 y h 1 s 1 的乘法器 其中两个 L u t 由 4 个 FL EX16 1L u t s 组成 在三级流水线操作中 取指 译码 执行操作可以独立的处理 这可以使得指 令执行功能完全重叠 在每个指令周期内 三个不同的指令处于激活状态 每个指令处于不 同的阶段 经过改进 8 位 8 位加法运算只需要 2 个 4 位加法器 用 FPGA 实现时 查找 表的规模减少到 24 4 24 4 24 1 在 FPGA 中由于查找表输入线少 往往将运算分解为 更小的规模进行 寄 存 器 寄 存 器 寄 存 器 寄 存 器 寄 存 器 寄 存 器 寄 存 器 寄 存 器 s 1 s 2 s 3 s 4 Parallel vector multiplier Y output p l 图 5 4 8 位 FIR 数字滤波器的硬件结构图 5 4 2 FPGA 的设计流程 根据可编程器件的结构特点 本系统的硬件部分采用如下设计流程来实现 如图5 5 所示 流程中包括设计准备 设计输入 设计处理和器件编程四个步骤以及相应的功能仿 真 前仿真 时序仿真 后仿真 和器件测试三个设计验证过程 1 设计准备 在对可编程逻辑器件的芯片进行设计之前 首先要进行方案论证 系统设计和器件选 择等设计准备工作 如系统所完成的功能及复杂程度 对工作苏度和器件本身的资源 成 本及连线的可布通性等方面进行权衡 选择合适的设计方案 2 设计输入 将所设计的系统或电路以开发软件要求的某种形式表现出来 并送入计算机的过程为 设计输入 设计输入通常有原理输入方式 硬件描述语言输入方式和波形输入方式三种方 式 硬件描述语言是用文本方式描述设计 有 VHDL 和 Verilog HDL 等 3 设计处理 这是器件设计中的核心环节 在设计处理过程中 编译软件将对设计输入文件进行逻 辑化简 综合和优化 并适当地用一片或多片器件自动进行适配 最后产生编程用的编程 文件 设计处理包括语法检查和设计规则检查 逻辑优化和综合 适配和分割 布局和布 线和生成编程数据文件等七个步骤 设 计 处 理 优化及综合 器件编程 功能仿真 功能仿真 功能仿真 图 5 5 可编程逻辑器件的开发流程 设 计 输 入 原理图 硬件描述语言 设计准备 4 设计校验 设计校验过程包括功能仿真和时序仿真 这两项工作是在设计处理过程中间同时进 行的 功能仿真实在设计输入完成之后 选择具体器件进行编译之前进行的逻辑功能验证 时序仿真在选择了具体器件并完成布局 布线之后进行时序关系仿真 5 器件编程 编程是指将编程数据放到具体的可编程器件中去 对 CPLD 器件来说是将 JED 文件 下载 Down Load 到 CPLD 器件中去 对 FPGA 来说是将位流数据文件 配置 到 FPGA 中去 在系统的可编程器件 ISP PLD 则不需要专用的编程器 只要一根下载编 程电缆就可以 器件在编程完毕之后 可以用编译时产生的文件对器件进行检验 加密等 工作 5 5 FIR 滤波器的模块划分 FIR 滤波器的数字硬件系统主要由输入模块 乘累加模块 锁存模块和控制模块组成 各模块执行的功能说明如下 1 控制模块 控制模块产生其他模块的控制信号 实现对输入模块 乘累加模块 锁存模块的控制 使各模块按照一定的时序依次执行各自的功能 从而完成滤波 它主要由控制器单元和计 数器单元组成 2 输入模块 输入模块的主要功能是完成对输入数据的处理 为后续电路作准备 它主要由并串转 换单元 移位寄存器单元和数据的预相加单元组成 3 乘累加模块 乘累加模块的主要功能是实现数据的相乘和累加 它主要由编码单元 查找表单元 可控加减法器单元和移位累加单元组成 4 锁存模块 锁存模块的主要功能是将乘累加模块的输出结果锁存后输出 为了完善设计 还应该再加一个查找表生成模块 用来根据外界输入的系数自动修改 查找表单元 而不是像本设计中那样 为了改变滤波器的功能 人为的修改查找表单元 5 5 1 输入模块 在输入模块中 data 7 0 为采样值并行输入 为并行输入同步加载控制信号 S 7 0 为输出信号模块符号图如下 CLK 为时钟信号 PTOS LOAD 是采样值预相加的输出结 果 模块符号图如下 DATA 7 0 CLK S 7 0 CLEAR PTOS LOAD 图 5 6 输入模块图 输入模块由以下几个单元组成 1 并 串转换单元 2 移位寄存单元 3 预相加单元 5 5 2 乘累加模块 在乘累加模块中 S 7 0 为输入数据 CLK 为时钟信号 add sub s1 和 add sub s2 为 控制信号 DOUT 7 0 为输出结果 模块框图如下 S 7 0 CLK OUT 7 0 ADD SUB S1 ADD SUB S2 图 5 7 乘累加模块图 1 编码单元 2 查找表单元 Input process DATA 7 0 CLK S 7 0 CLEAR PTOS LOAD S 7 0 CLK OUT 7 0 ADD SUB S1 ADD SUB S2 mac 3 可控加减法器单元 可控加减法器单元又可由加法器单元 反向器单元和多路选择器单元组成 4 移位累加单元 移位累加单元的主要功能是将可控加减法器输出的结果移位累加 它又可由多路选择 器和移位累加器组成 5 5 3 锁存模块 锁存模块的主要功能是对输出的最后结果进行锁存 这是由于加法器的输出很不稳定 影响了最后结果的输出 所以要将结果进行锁存 模块图如下 D 7 0 D 7 0 OE OE Q 7 0 Q 7 0 CLK CLK 图 5 8 锁存模块图 D 7 0 为数据输入 OE 为使能控制信号 CLK 为时钟信号 DOUT 7 0 为结果输出 5 5 4 控制模块 控制器模块主要由控制器与一个计数器组成 控制模块图如下 CLEAR CLEAR CLK CLK PTOS LOAD PTOS LOAD START START ADD SUB S1 ADD SUB S1 ADD SUB S2 ADD SUB S2 LATOH RESULT LATOH RESULT 图 5 9 控制模块图 计数器的作用是从计数器开始记数起 过 9 个时钟周期后输出一个脉冲 Z 给控制器 使得控制器继续向下运行 5 6 总结与展望 数字滤波是提取有用信息非常重要 非常灵活的方法 是现代信号处理的重要内容 因而在数字通信 语音图像处理 谱分析 模式识别 自动控制等领域得到了广泛的应用 CCC HOLD REGISTER 相对于模拟滤波器 数字滤波器没有漂移 能够处理低频信号 频率响应特性可做成非常 接近于理想的特性 且精度可以达到很高 容易集成等 这些优势决定了数字滤波器的应 用将会越来越广泛 同时 FPGA Field Programmable Gate Array 和 DSP 等有关器件的迅 速发展也促进了数字滤波器的发展 并为数字滤波器的硬件实现提供了更多的选择 参考文献 1 楼顺天 李博菡 基于 MA TLAB 的系统分析与设计 信号处理 西安 西安电子 科技大学出版社 2000 2 程卫国 冯蜂等 MA TLAB 5 3 精要编程及高级应用 北京 机械工业出版社 2000 3 丁玉美 高西全 数字信号处理 第二版 西安 西安电子科技大学出版社 2001 4 王世一 数字信号处理 修订版 北京 理工大学出版社 2000 5 程佩青 数字信号处理教程 北京 清华大学出版社 1995 6 陈亚勇 MATLAB 信号处理详解 北京 人民邮电出版社 2001 7 MATLAB 电子仿真与应用 北京 国防工业出版社 2001 8 刘 凌 胡永生 译 数字信号处理的 FPGA 实现 北京 清华大学出版社 2003 9 侯伯亨 顾 新 VHDL 硬件描述语言与数字逻辑电路设计 西安 西安电子科技大 学出版社 1997 10 胡振华 VHDL 与 FPGA 设计 北京 中国铁道出版社 2002 11 JUNJ IM MASATO N MASASH IH A 10 ns 54 54b par2allel structured full arraymultip lierwith 0 5 s CMOS tech2nology J IEEE J Solid State Ciruit 1991 4 56 60 12 GERACI A PULL IA A R IPAMONTI G Automatic Pole2Zero Zero2Pole digital compensator for high resolution spec2 troscopy design and experiments J IEEE Transaction on Nuclear Science 1999 46 4 817 821 13 季少卫 翁继周 电流型 PWM 控制器在开关电源中的应用 电子工程师 2004 30 11 54 57 14 Allen P E Holberg D R CMOS Analog Circuit Design 北京 电子工业出版社 2005 93 137 15 张占松 蔡宣三 开关电源的原理与设计 北京 电子工业出版社 1998 16 丁玉美 高西全 数字信号处理 第二版 西安 西安电子科技大学出版社 2001 17 王 诚 薛小刚 钟信潮 FPGA CPLD 设计工具 XilinxISE 5 X 使用祥解 北京 人民邮电出版社 2004 18 楼顺天 陈生潭 雷虎民 MATLAB5 X 程序语言设计 西安 西安电子科技大学 出版社

温馨提示

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

评论

0/150

提交评论