DSP通用算法介绍_第1页
DSP通用算法介绍_第2页
DSP通用算法介绍_第3页
DSP通用算法介绍_第4页
DSP通用算法介绍_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

DSP 通用算法介绍通用算法介绍 摘要摘要 数字信号处理 DSP 自 1965 年由 Cooley 和 Tukey 提出 DFT 离散傅里叶变换 的高效快速算法 Fourier Transform 简称 FFT 以来 已有近 40 年的历史 随着计算机和信息技术的发展 数 字信号处理技术已形成一门独立的学科系统 数字信号处理作为一 门独立学科是围绕着三个方面迅速发展的 理论 现实和应用 作 为数字信号理论 一般是指利用经典理论 如数字 信号与系统分析 等 作为基础而形成的独特的信号处理理论 以及各种快速算法和各 类滤波技术等基础理论 由此在各个应用领域如语音与图象处理 信息的压缩与编码 信号的调制与调解 信道的辨识与均衡 各种 智能控制与移动通讯等都延伸出各自的理论与技术 到目前可以说凡 是用计算机来处理各类信号的场合都引用了数字信号处理的基本理 论 概念和技术 数字化技术有今天的飞速发展 是依仗于强大的软 硬件环境支 撑 作为数字信号处理的一个实际任务就是要求能够快速 高效 实时完成处理任务 这就要通过通用或专用的数字信号处理器来完成 因此 数字信号处理器是用来完成数字信号处理任务的一个软 硬件 环境和硬件平台 就如同生活中的许多事情那样 使用 DSP 往往在一些小问题和 具体细节上颇费周折 然而许多 DSP 书籍往往专注于大的课题 但 在设计基于 DSP 产品的过程中 大部分时间用于罗列出所必须得 小东西 本文包含了那些在其他 DSP 书籍中不曾提及的被遗忘 的算法 但它们却占有如此首要的位置 本文介绍的 DSP 通用算法 包括逻辑运算 算术运算 系统的基本构件 线形比例缩放 正交 信号处理 频率变换 信号平均 自动控制系统 1 逻辑运算逻辑运算 所有的 DSP 器件都有一套命令集 用于实现逻辑操作 包括与 和异或等等 它们采用类似与离散逻辑门的方式进行操作 主要用 于屏蔽有用的或没用的数据位 主要在位测试程序中使用 现今的 大部分处理器在传统的主要用于寄存器中左移或右移数据的逻辑操 作基础上 添加了内置的位测试命令 逻辑运算常常用于定点与浮点的转换 曲线拟合以及一些更高 级的算法 2 算术运算算术运算 人们都已经习惯于使用计算器来实现加减乘除及平方根之类的 基本算术运算 而不愿实现这些基本运算背后所需要的复杂的二进 制运算 虽然 一些最新的 DSP 已经在其内部使用硬件电路和硬件 编程实现了部分的运算 但当我们在 DSP 中要实现同样的这些运算 时 通常还必须东拼西凑的来实现这些运算 加减乘除之类的基本运算在各类处理器中以隐含的单周期命令 形式提供 故在此不做进一步的讨论 二进制除法或抽象函数 f x 之类的运算包含了一系列的多周期 命令 其复杂度和运算时间由所期望获得的计算结果精度决定 2 1 乘法乘法 DSP 器件具有一个专门的硬件乘法器 能在一个时钟周期中完 成两个字节数据的二进制乘法 这一 板上 专用乘法器是 DSP 处 理器区别于其他常用微处理器的主要特点 而且是大部分信号处理 算法实现的核心 一些专用的乘法 累加和数据移位命令内置于大 部分处理器中 用于滤波器和基于 FFT 的算法 它们充分利用了当 代处理器中的并行结构和流水线技术 获得程序的高速执行 完成乘法的基本编码具有如下典型的形式 MPY A B C Shift z 将存储于寄存器 B 中的数据相乘 并将结果移位 Z 比特后 存 于寄存器 C 在对乘法结果保存及移位的过程中 应注意不能使数值位取代 最后的符号位 2 2除法除法 二进制除法相对于加减乘运算而言要复杂得多 其算法主要包 含了一系列的反复移位和有条件减法运算 更先进的处理器在其命 令集中包含一个隐含的除法命令 可以直接执行该算法 实现除法 MACRO 调用的基本形式如下 DIV A B C Y 将 B 除以 A 结果存入 C 中 重复执行 Y 遍 在某些特殊应用中 若采用曲线拟合方法 除法运算的效率会 更高 2 3函数函数 f x 的运算的运算 有一些数学函数不能采用直接的二进制形式计算 而必须使用 逼近方法 计算一般的 f x 主要采用三种方法 第一种方法是在 数据或程序空间中存储一张转换表 第二种方法是采用曲线拟合和 分段逼近的策略 第三种是采用级数展开算法 1 查表法 最直接的计算一般函数 f x 的方法是在内存中提供一张表 存在与所有可能遇到的 x 相对应的 f x 的值 表示 x 值的数据字 节用于构造一个指向数据表中地址的指针 从而得到相对应的 f x 的值 如果有充足的数据或程序空间能保证 f x 计算的准 确性和精度 该方法在数据存储空间地址分配合理的情况下 就应 采用下面两种方法 2 曲线拟合方法 经 A D 采样记录下的曲线仅在采样点上有值 非采样点需要用 数值分析的方法进行处理 为了提高曲线分析的精确度 我们先对 谱图曲线的一些特性进行研究 由色谱仪测出的谱图曲线可以看出 谱图曲线的形状类似于正态分布的曲线 所不同的是它不一定是对 称的 但它一定是平滑的 即没有阶跃点 这意味着谱图曲线的导 数应该是连续的 谱图曲线开始段和终止段一般为 0 值 对于不同 的化学吸附谱图曲线出现峰值的时间是不同的 快的几秒钟 慢的 需几分钟 更慢的则需几小时 采用分段低次插值 虽然保证插值曲线在插值点上的连续性 但 不能保证整条曲线在插值点上的光滑性 即导数不一定连续 这不 能满足实际系统的要求 根据谱图曲线的以上特点和拟合条件的需 要 在进行曲线拟合时 为保证曲线在采样点处的一阶导数 二阶 导数的连续性 采用了满足第一种边界条件的三次样条插值 从 A D 采样的数据中找到 A B C D 点 见图 把整个区间分成 A B B C C D 区间 在每个区间内采用三次样条 插值 限于篇幅 仅给出 B C 段内节点为 的实验数据 如表 所示 同理可得 Zab t Zcd t 我们在实际拟合过程中发现 当选取的插值节点较少时 逼近误差较大 随着插值节点加密 逼 近程度逐步得到改善 如图 所示 n 575 是经 A D 采样得到的基 本样点 在 575 个节点中等距取出 n 35 利用三次样条插值进行 逼近得到的曲线只有在 A C 区间内存在一定误差 n 70 时误 差减小 n n 4 与 n n 2 时与实际拟合曲线几乎完全重合 从谱图拟合曲线中可以看出 采用三次样条函数逼近得到的曲 线具有非常好的光滑性 当采样点选取 n 15 时 有一定的误差 当 采样点增加到 n 8 时误差逐渐缩小 当采样点增加到 n 4 时 基本 逼近真实曲线 误差可以忽略 因此 在保证精度的情况下 我们 可以适当降低曲线的采样速率 这样可以大大减少系统占用内存 提高运算速度 根据三次样条逼近求出的曲线在各采样点之间的表达式 直接 积分可得出采样区间的面积 计算出的面积与记录仪测出的面积相 比精度很高 总之 当选取插值点为记录点的三分之一时 用三次样条函数 逼近得到的曲线几乎完美地拟合了用记录仪记录下的曲线 利用此 方法对谱图处理具有很大的实用价值 精度高 3 级数展开法 复杂算术函数计算的另一个方法就是合理的级数展开 这类级 数构成一种仅由简单的加减乘运算构成的表示方法 在使用级数展 开法时必须注意展开式能否快速收敛 如果不能 则使用曲线拟合 法能较有效的满足给定的数值精度 2 42 4浮点计算浮点计算 在大多数的 DSP 应用中 定点的 16 位运算可以提供足够的动态 范围 约为 96db 足以满足大部分信号不损失精度 但是在某些 情况下 例如信号平方会将需存储的信号的动态范围增大一倍 这 样 16 位的定点表示就不适用了 当然如果分辨率的位数要求更多的 话 那么该问题就显得无关紧要了 但如果大数值采用固定格式 即小数点位置确定 表示 那么对于小数值而言 大部分的高权 值位就不得不置零 以表示两个数字在大小的相对差 在小数值的表示中 这种 数值误差 可以采用被称为浮点的 表示方法解决 这种方法允许移动小数点的位置 来减少起始零的 位数 一些最新的处理器已经能支持二进制的浮点算法 而包括 TMS320 C54xx 系列的定点处理器的低功效器件则须用算法将定点数 据转换成浮点形式 3 3 系统的的基本构件 系统的的基本构件 3 13 1 ACAC 耦合器耦合器 不论对于交流耦合还是直流耦合的输入波形 任何实际的 A D 转换器或采样 保持放大器均会加入少量的直流偏置 在一些信号处 理应用中 特别是有关调制的应用中 该偏置是不可忽略的 有两 种简明的方法可以消除该直流偏置 第一种方法是在假设直流偏置 是固定情况下 从输入的数据中减去一个相同大小的负的二进制数 其效果同外加的直流偏置控制器相同 第二种方法是在处理器中加 入一 AC 耦合滤波器的方式实现 3 23 2 过载考虑与限制过载考虑与限制 在 DSP 实现中容易导致错误的一个主要原因就是信号过载问题 在 大多数现存的 DSP 器件中 但累加器出现数值溢出时 可以定义一 种操作模式 是累加器饱和 即根据情况 赋为正极值或负极值 除非有特殊要求 大多数情况下 强烈推荐采用上述形式的操作 这个 安全网 能很好保证累加器存储的数据不会再发生左移 如 果这一条件不能满足 那么数据在累加器进行左移时 仍会产生过 载现象 3 33 3 时延时延 短波信道模拟器系统中常采用软件无线电思想实现 软件无线 电的宗旨就是尽可能地简化射频模拟前端 使 A D 转换尽可能地 靠近天线去完成模拟信号的数字化 而且数字化后的信号要尽可能 多地用软件进行处理 实现各种功能和指标 软件部分主要用 DSP 芯片来进行处理信号 根据软件无线电的知识 可以使用内插来完 成精确性时延部分的工作 但为了避免插值后数据量的大增 导致 DSP 处理的负荷量过重 之后就得考虑数据的抽取操作用以减少处 理的数据量 在上部分中 可以得出内插和抽取过程都需要一滤波 器进行滤波 避免内插带来的高频镜像和抽取带来的频谱混叠 可 以采用内插和抽取组合的办法来解决内插所导致的数据量大增问题 并保证小尺寸时延的精度 但必须内插在前 抽取在后 以确保其 中间序列的基带谱宽度不小于原始输入序列谱或输出序列谱的基带 频谱宽度 否则将会引起信号失真 这里采取的是 D 倍内插再 D 倍 抽取以实现级联来满足要求 但是由于他们级联的 D 倍内插滤波器 和 D 倍抽取滤波器工作在相同的采样率 Dfs 下 所以他们可以以一 个组合滤波器来代替 图 3 是基于内插和抽取技术的时延器结构 3 43 4 抗混叠滤波抗混叠滤波 在进入更为复杂的信号处理任务之前 先讨论一下对外部信号的滤 波要求 即使在模拟输入波形这种最简单算法中 在系统行为上 满足信号混叠的要求是至关重要的 3 53 5 重建滤波重建滤波 一个连续信号可以由其理想采样样本通过低通滤波器进行无失真的 重建 理想的重建滤波器在其通带具有平坦的增益响应和线性相位 特征 在更高频率的阻带具有无限衰减 同抗混叠滤波器一样 如 果采样率概予信号带宽的两倍 就可以使用有限的过渡带 那么合 成重建滤波器的工作就会简单一些 4 4 线性比例缩放线性比例缩放 运算放大器常用来在电路中增大增益 当然只用两个电阻的简易 方案获得增益值的方法是十分简便的 但在 DSP 中实现信号大小的 增益或衰减更加简单准确 4 14 1乘法器缩放乘法器缩放 前面已经对乘法器进行了讨论 这些足以完成对数字化得信号 加以增益增益值保存在名为 gain 的变量的内存单元中 再在一 个命令周期中乘以信号样值的到输出 该过程可对声音信号进行音量控制 4 24 2桶形移位器桶形移位器 DSP 领域特有的改变信号大小的另一种方案是将数据字节按位左移 或右移 左移一位相当于将增益增大一倍 右移一位相当于减小一 倍 基于这个原因 许多数字高保真音量控制设备都有 6db 的增益 4 34 3硬限幅和软限幅硬限幅和软限幅 术语 硬限幅 和 软限幅 对于模拟信号处理而言是同义的 传 统上又都用基于二极管的运放电路实现 二极管限定了运算放大器 的最大输出电平 从而能将信号削顶 改变削顶的程度可以通过选 择合适的齐纳二极管击穿电压或者改变运算放大器的增益实现 从 而强制信号接近输出极限 简单的 DSP 等效方案是利用累加器可被置为百合状态的性质 然后 累加器中的信号被强制突破这一限制 如通过增加增益值 或者加 上或减去一个以后还要重新减去的预先设定的常数 从而得到将原 始波形削波的效果 第二种方法如下图所示 a 输入波形 b 累加器强制正向饱和 c 累加器强制负向饱 和 d 剪切后输出波形 4 4 正交信号处理正交信号处理 许多信号处理函数 都采用正交处理技术来提高算法的效率 这些技术特别适用于 DSP 因为 DSP 能精确高效德实现正交波形 使用其他技术是很难实现增益为常数的 90 度相位变化的 通常境况 下 总是折中处理相位精确性和增益精确性 如某些方法能提供出 色的相位正交性 但幅度匹配的性能就较差 反之 另一些能提供 精确的幅度特征 但在相位特性方面就不尽人意了 由于增益和相 位匹配所要达到的令人满意的要求是根据其应用决定的 下面是三 种数字生成采样波形的正交模式的基本算法 希尔伯特变换滤波器 单边带正交发生器 时延 5 5 频率变换频率变换 在讨论频率交换的各个算法之前 有必要先说明我们所获得的结 果 有各种各样的方法也能进行频率变换 但是它们都会使已调波 形含有比原始波形更多的频率分量 所以在大多情况下 不能获得 与消息波形相似的频谱 这里要介绍的频率变换方法是对任意消息 波形 在不改变频谱分布和不生成寄生分量的条件下 进行直接频 率变换的方法 该方法中经常涉及单边带调制或理想线性调制 5 15 1 滤波器方法滤波器方法 前面介绍过了采用滤波器生成正交波形的方法 通过将输入波形与 本地振荡器进行 混频 其中本地振荡器的频率由要获得的频移量决 定 再根据选择其上边带或下边带 就能实现向上或向下的频移 如图 使用滤波器的单边带频率变换方法 如果本地振荡器的频率超过输入信号最高频率的一半 那么就可能 完全去除不想要的边带 但是如果本地振荡器的频率低于输入频率 的一般 那么边带就会产生部分重叠现象 也就不可能获得理想的 频率变换 由于实际滤波器中存在有限的过渡带 所以交换低频分 量时 总会发生对有用边带中的低频分量过分抑制或者对无用边带 中低频分量滤除效果不佳的问题 由于边带重叠问题限制了低频本 地振荡器的使用 也就限制了对低频带进行的频率交换 这就是采 用滤波器方法进行频率交换的主要缺点 5 25 2正交频率交换正交频率交换 如果要交换的信号是以正交形式存在的 那么使用 DSP 进行频率交 换时轻而易举的事情 其中涉及到的简单的正交混频过程如下图所 示 希尔伯特交换频率变换器 每个乘法器分别输出上边带和下边带 但根据最后一级加法器的符 号 会去除一个边带 如果两者是相加的 那么选择下边带 也就 获得向下的频率变换 反之 如果两者是相减的 那么获得向上的 频率变换 要获得无失真的频率变换 必须实现理想的正交混频和加法过 程 输入信号的正交形式可以采取前面所述的任何一种方法生成 其中采用希尔伯特交换 FIR 滤波器是最常见的方法 事实上 在正 交波形生成的过程中 总会产生一些偏差 从而导致不能将混频中 产生的不需要的边带完全抑制 由于非理想的增益和相位平衡会产生残余的频率分量 必须注 意不能让它们与所需要的频带产生混叠 5 35 3 频率翻转频率翻转 频率变换的一种特殊情况就是频率翻转 即将整个 0Hz 至 fs 2 的频带翻转 使接近 0Hz 的频率分量出现在 fs 2 附近 反之亦然 事实上 对一个已采样的波形 该过程是十分简单的 只需要将其 同 fs 2 处的频率分量混频 生成上下边带 其中上边带恰好紧连着 下边带 而且是被翻转的形式 这就实现了频率翻转 同 fs 2 混频 可以实现任意波形的翻转 基本的语音加密系统就是一个应用频率 翻转的简明示例 6 信号平均信号平均 事实上 信号平均是对选定的信号样值进行滤波操作 在大多 数信号平均算法中 其中经常使用如下三种 线性平均 峰值平均 和指数平均 下面主要介绍峰值平均和指数平均 6 1指数平均指数平均 与线形平均的各样值同等权值相加不同 指数平均不采用统一的 权值 通常情况下 赋予最新样本值最高权值 所以 输出平均值 是偏向最新的波形变化 能缓慢地 跟随 信号形状的变化 平均 就其本质而言是滤波操作 所以既能采用递归的算法实现也能采用 非递归的算法实现 一种简单的反馈滤波器实际上就是一阶低通滤波器的数字实现 6 2峰值平均峰值平均 严格地讲 峰值平均并非是一种真正的平均过程 所设计到的 是检测和存储特定波形的峰值水平 作为频谱分析仪的一个常见功 能 峰值平均用于显示在一段特定的时间上各个波形分量的峰值 达到该目的的一个非常简单的方法就是比较当前存储的和先前存储 的采样值 并保存较大者 7 自动控制系统自动控制系统 7 1 自动电平控制自动电平控制 增益控制应用十分广泛 出现在从手提式摄像机中的自动麦克风音 量控制到移动电话的功率输出变化等各种不同的应用之中 实现增 益控制主要可采用两种方法 一种是采用反馈环 另一种是采用前 馈环 1 反馈控制 使用主信号支路中的乘法器改变信号电平 用于控制输出电平 的增益常数是通过将当前信号电平和所希望的输出电平相比较决定 的 如果信号电平大于所希望的参照输出信号电平 那么求和后的 输出信号为负的 以致减小累加器的值 从而降低进入乘法器的常 数 获得降低增益的结果 在稳定状态 信号电平同参照水平相一 致 那么累加器中的值保持不变 这种算法的一个特点是 环路的动态性都能是由输入信号的电 平决定的 当信号电平和参照信号电平之间存在较大差别时 就会 产生较大的误差信号 使累加器产生较大的变化 从而使环路快速 校正 反之 当信号和参照信号之间电平差距较小时 环路的响应 比较缓慢 虽然这种现象可能正是某些应用所希望的 但有一部分 自动电平控制系统则要求其动态性能与输入信号无关 2 前向控制 反馈控制系统的一个缺点就是控制过程总是试图跟上输入变化 的状态 而不可能提供瞬时的信号电平校正 解决该问题的方法就 是采用前向控制机制 采用同样的包络检测器得出信号电平 信号包络通过函数 f x 的处理 再进入乘法器改变输出信号的电平 函数 f x 决 定了前向自动电平控制电路的性能 因为所有的处理都是在前向支路 所以有可能使上下两支路的 延时相同 能在上面的支路中加入一个时延元件 7 2 自动频率控制系统自动频率控制系统 自动频率控制的一个主要用途是用于无线通信系统 无线通信 要求将信息信号调制到指定的无线电频带上 通常对频率的变

温馨提示

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

评论

0/150

提交评论