DSP原理与应用

上传人:资****亨 文档编号:130223219 上传时间:2020-04-26 格式:PPT 页数:178 大小:765KB
返回 下载 相关 举报
DSP原理与应用_第1页
第1页 / 共178页
DSP原理与应用_第2页
第2页 / 共178页
DSP原理与应用_第3页
第3页 / 共178页
DSP原理与应用_第4页
第4页 / 共178页
DSP原理与应用_第5页
第5页 / 共178页
点击查看更多>>
资源描述

《DSP原理与应用》由会员分享,可在线阅读,更多相关《DSP原理与应用(178页珍藏版)》请在金锄头文库上搜索。

1、 DSP原理与应用 第一章概述第二章DSP运算基础第三章DSP的CPU结构及存储器配置第四章寻址方式及指令系统第五章系统功能模块及片内外设第六章DSP设计开发平台第七章FFT的Matlab仿真 第一章概述 1 DSP数字信号处理系统低通滤波 将连续信号x t 中的一些次要成分滤出 平滑滤波 滤出多余的高频分量 对时间域模拟信号起平滑作用 低通滤波 ADC DSP 平滑滤波 DAC x t y t 2 DSP的发展和分类发展 1978年 AMI第一片DSP器件1979年 Intel的Intel2920是第一块脱离了通用型微处理器结构的DSP芯片 1980年 NEC的 PD7720是第一个具有硬件

2、乘法器的商用DSP芯片 1982年 Hitachi推出浮点DSP 1982年 TI推出第一代DSP芯片TMS32010及其系列产品 1986年 Motorola推出MC56001定点DSP芯片 1990年推出与IEEE浮点格式兼容的浮点DSP芯片 分类按DSP芯片处理的数据格式 定点 浮点按DSP芯片的用途 通用型 TI公司的系列DSP专用型 数字滤波 FFT等主要生产厂家TI 43 5 Agere Lucent 16 1 Motorola 12 0 ADI 8 2 3 DSP的性能及特点 哈佛结构 普通微处理器的冯 诺伊曼结构 内部地址总线 内部数据总线 共享的程序和数据存储器 CPU控制

3、ALU DSP的哈佛结构 地址发生单元 数据地址总线 程序地址总线 程序存储器 数据存储器 DSP控制 ALU 数据总线 程序总线 指令流水线 非流水线操作 流水线操作 硬件乘法器在数字信号处理的算法中 如FFT 需要做大量的乘法和加法 显然 乘法速度越快 数据处理能力就越强 而在一般的微处理器中 根本就没有乘法指令 即使有乘法指令的处理器 其乘法指令的执行时间也较长 DSP器件一般都有一个硬件乘法器 而且一次乘累加最少可在一个时钟周期内完成 特殊DSP指令DSP芯片采用了特殊的寻址方式和指令 例如TMS320系列的位反转寻址方式及其他一些特殊的指令 采用这些适合于数字信号处理的寻址方式和指令

4、 能进一步减小数字信号处理的时间 4 DSP的应用 数字信号处理 如滤波 FFT 卷积等 通信 如调制解调 纠错编码 传真 可视电话等 语音处理 如语音编码 语音合成 识别 语音存储等 图形 图像处理 如模式识别 图像压缩与传输 动画 机器人视觉等 仪器仪表 如数据采集 函数 波形产生等 军事 如保密通信 全球定位 雷达与声纳信号处理 导航与制导等 医疗 如核磁共振 自动治疗仪等 第二章DSP运算基础 1 数的定标 TMS320C F240的字长为16 数的定标 是设定小数点在不同位置 来表示不同大小和不同精度的小数 Q表示法 将16位二进制数由最低有效位 LSB 到最高有效位 MSB 的位置

5、依次排列为0 15 则Qi表示小数点在数据第i位之后 例如 Q0 表示小数点在数据第0位之后 即为一个整数 Q15 表示小数点在数据第15位之后 Q表示法及其十进制数值范围 例如 对Q15而言 其能表示的最小负值为 1000000000000000 补 1111111111111111 反 1 0000000000000000 原 1其能表示的最大正值为 0111111111111111 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2 13 2 14 2 15 1 2 15 0 999969482421875对Q0同样如此 2 IEEE

6、754浮点数表示法例如 10100100120 6 24 20 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 23 其指数 4 127 131小数 0100100 1S 0 3 定点数与浮点数的转换关系 转换公式 浮点数 x 转换为定点数 xd xd int x 2Q 定点数 xd 转换为浮点数 x x float xd 2 Q 举例 浮点数x 0 4 定标Q 15 则对应的定点数为 xd int x 2Q int 0 4 215 13107反之 一个Q15表示的定点数13107对应的浮点数为 x float xd 2 Q float 13107 2 15 0 3999939 Q

7、数值的确定 设系统中变量表示的数据最大绝对值为 max 而且 max 小于或等于32767 由下式 2n 1 max 2n可得 Q 15 n举例 某变量取值范围为 7到15 则变量的 max 15 n 4 则Q 15 4 11 4 定点数的算术运算 加减法 注意 必须保证两个操作数的定标值一样 若两个数据的Q值不同 在保证数据准确性的前提下调整Q值使数据精度最高 即尽量将Q值小的数调整为与另一个数的Q值一样大 注意对溢出的判断和处理 举例 x 0 4 y 0 2 计算x y根据分析 采用Q15表示两个数据可以得到最高精度的运算 x y的Q15定点表示分别为 xd 13107 yd 6553 x

8、d yd 13107 6553 19660结果转化为浮点数为 19960 2 15 0 5999756 0 6 定点数的乘法分三种情况 小数乘小数 数用Q15表示 Q15 Q15 Q30 32位的乘积结果有两个符号位 利用移位操作得到乘积结果的Q31表示 举例 0 5 0 5 0 25操作数用Q15表示为 0 5 215 16384 0100000000000000B0 100000000000000 0 100000000000000 00 010000000000000000000000000000将结果左移一位得到乘积结果的Q31表示为 0 01000000000000000000000

9、00000000 20000000H表示的浮点数即为 0 25 整数乘整数 数用Q0表示 Q0 Q0 Q0举例 13 5 65操作数用Q0表示为 13 0000000000001101B5 0000000000000101B0000000000001101 0000000000000101 00000000000000000000000001000001 00000041H表示的浮点数即为 65 混合表示法在对精度和数据范围要求都比较高的情况下 两个数可以采用介于Q15与Q0之间的不同的Q表示法 举例 设参与运算的两个数x和y的数值范围分别不超过 1和 4 两个数的Q值分别为Q15和Q13 为

10、了保证数据范围 应该采用Q13 例如 x 0 4y 3 2 计算x y因为xd 3276 yd 26214 则xd yd 3276 26214 29490转换为浮点数为 29490 2 13 3 59985 定点数的除法注意 DSP没有专门的除法指令 利用条件减法指令编写子程序实现 十进制的除法在计算之前要保证分子不能大于分母的十倍 否则必须进行如下的处理 将分母乘上10 100或1000 后再按下面的计算过程进行除法运算 得到结果后再把该结果乘以10 100或1000 即可得到最终的正确结果 计算过程 子程序 i 0STEP1 重复的用分子减去分母 若分子小于分母 则余数即为分子 否则 余数

11、 分子 分母 直到结果为小于分母的数或0 得到执行的减法次数 Ni及余数 STEP2 i i 1 余数 10作为分子 返回STEP1 STEP3 结果 N0 100 Ni 10 i i 1 2 3 举例1 求40 3 step1 3 10 30 step2 40 30 1030 70 30 40 30 40 30 1030 70 30 40 30 40 30 10 30 次数 3 余数 10 step6 根据要求的精度结束计算step7 结果 1 100 3 10 1 3 10 2 3 10 3 1 3333 step8 最终结果 1 3333 10 13 333 举例2 求3 40 step

12、1 340 300 40 260 执行第1次减法 260 40 220 执行第2次减法 220 40 180 执行第3次减法 180 40 140 执行第4次减法 140 40 100 执行第5次减法 100 40 60 执行第6次减法 60 40 20 执行第7次减法 次数 7 余数 20 step4 20 10 200 200 40 200 40 160 执行第1次减法 160 40 120 执行第2次减法 120 40 80 执行第3次减法 80 40 40 执行第4次减法 40 40 0 执行第5次减法 次数 5 余数 0 step5 结果 0 100 0 10 1 7 10 2 5

13、10 3 0 075 二进制的除法注意 在计算之前要保证分子小于分母的2倍 计算过程同十进制的除法 下面仅举例 计算40 3 step1 分母左移3位 即乘以8 得分母 24 step2 00101000 40 00011000 24 00010000 16 次数 1 余数 16 24 step3 00100000 32 余数16左移一位 00011000 24 00001000 8 次数 1 余数 8 24 step4 余数 16 余数8左移一位 24次数 0 step5 00100000 32 余数16左移一位 00011000 24 00001000 8 次数 1 余数 8 24 ste

14、p6 余数 16 余数8左移一位 24次数 0 step7 00100000 32 余数16左移一位 00011000 24 00001000 8 次数 1 余数 8 24 step8 余数 16 余数8左移一位 24次数 0 step9 00100000 32 余数16左移一位 00011000 24 00001000 8 次数 1 余数 8 24 step10 结果 1 20 1 2 1 0 2 2 1 2 3 0 2 4 1 2 5 0 2 6 1 2 7 1 1010101step11 将上述结果右移三位 即可得到正确的结果为 最终结果 1101 0101B 13 3125 第三章DS

15、P的CPU结构及存储器配置 1 C2 系列DSP的功能框图 基于PLL的时钟模块 锁相环 双10位ADC 串行通信接口 SCI 串行外设接口 SPI 外部存储器接口 EMI 事件管理器 EM 数字I O 标准测试接口 JTAG CPU 2 CPU结构 中央算术逻辑单元 CALU 累加器 ACC CALU的输入和输出数据定标移位器 乘法器 乘积定标移位器 辅助寄存器运算单元 ARAU 状态寄存器 定标移位器 主要用作移位 bit提取 扩展算术运算和溢出防止运算 输入数据定标移位器 输入移位器 将输入的0到16位的数据左移16位 作为CALU的32位输入数据 输出数据定标移位器 输出移位器 将累加

16、器里的结果输出到数据存储器之前左移0到7位 累加器里的数据保持不变 乘积定标移位器 乘积移位器 将乘积寄存器的数据在输出到CALU之前进行移位 辅助寄存器算术单元 ARAU 和辅助寄存器内有8个辅助寄存器 AR0 AR1 AR2 AR3 AR4 AR5 AR6 AR7 当一个指令使用间接寻址来访问数据存储器时 ARAU就产生数据存储器的地址 状态寄存器ST0和ST1 特点 可以被保存到数据存储器 采用指令 存储状态寄存器指令SST 也可以从数据存储器加载 采用指令 装载状态寄存器指令LST 其他指令 SETC 设置寄存器的位CLRC 清除寄存器的位 作用 可以用于子程序中保存和恢复机器的状态 ST0 15 1312111098 0其中 ARP 辅助寄存器指针 用于选择作为间接寻址的辅助寄存器 ARn OV 溢出标志位 用于表示CALU是否有溢出产生 OVM 溢出方式位 决定如何处理CALU中的溢出 0 累加器中结果正常溢出 1 溢出时 累加器被置为最大正数或最小负数 INTM 中断允许位 使能 0 或禁止 1 所有的可屏蔽中断 DP 数据页指针 当使用直接寻址时 DP存放存储器的数据页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号