logo资料库

安富莱DSP教程.pdf

第1页 / 共608页
第2页 / 共608页
第3页 / 共608页
第4页 / 共608页
第5页 / 共608页
第6页 / 共608页
第7页 / 共608页
第8页 / 共608页
资料共608页,剩余部分请下载后查看
第1章 数字信号处理介绍
1.1 DSP入门前背景知识
1.1.1 数字信号处理的实现方法一般有以下几种
1.1.2 输入信号的形式
1.1.3 数字信号处理系统
1.1.4 DSP系统的设计方法
1.1.5 DSP芯片的特点
1.1.6 DSP芯片的发展
1.1.7 DSP芯片的选择
1.1.8 DSP的应用
1.2 ARM官方提供的CMSIS-DSP库
1.3 总结
第2章 Matlab R2012a的安装
2.1 Matlab R2012a的详细安装过程
2.1.1 第1步
2.1.2 第2步
2.1.3 第3步
2.1.4 第4步
2.1.5 第5步
2.1.6 第6步
2.1.7 第7步
2.1.8 第8步
2.1.9 第9步
2.1.10 第10步
2.1.11 第11步
2.1.12 第12步
2.1.13 第13步
2.1.14 第14步
2.2 Matlab介绍
2.2.1 历史
2.2.2 主要功能
2.2.3 Matlab语言
2.3 总结
第3章 Matlab 简易使用(一)
3.1 Matlab界面说明
3.1.1 简单计算
3.1.2 稍复杂计算
3.1.3 历史命令行调用
3.2 矩阵和阵列
3.2.1 创建数组
3.2.2 矩阵和阵列运算
3.2.3 矩阵的合并
3.2.4 复数
3.3 检索矩阵中的数据
3.4 工作区中的数据保存和加载
3.5 字符串
3.6 函数
3.7 绘图功能
3.7.1 画线
3.7.2 3-D绘图
3.7.3 多个子图的绘制
3.8 总结
第4章 Matlab 简易使用(二)
4.1 Matlab的脚本文件.m的使用
4.2 Matlab中的条件和循环函数
4.3 绘图功能
4.3.1 基本的plot函数
4.3.2 绘制图像数据
4.4 总结
第5章 Matlab 简易使用(三)
5.1 控制流
5.1.1 条件控制——if,else,switch
5.1.2 循环控制——for, while, continue, break
5.1.3 矢量化
5.2 Matlab中help的使用
5.3 总结
第6章 ARM官方DSP库的移植
6.1 DSP库的下载和说明
6.1.1 DSP库的下载
6.1.2 DSP库的说明
6.2 DSP库在MDK上的移植
6.2.1 第一步:建立MDK工程并添加DSP库
6.2.2 第二步:添加头文件路径
6.2.3 第三步:添加宏定义
6.2.4 第四步:开启FPU
6.2.5 第五步:添加头文件arm_math.h
6.3 简易DSP库函数验证
6.4 总结
第7章 DSP定点数和浮点数(重要)
7.1 定点数和浮点数概念
7.1.1 定点数
7.1.2 浮点数
7.2 IEEE浮点数
7.2.1 规范化浮点数
7.2.2 非规范化浮点数
7.2.3 有符号的零
7.2.4 无穷
7.2.5 NaN
7.3 定点数运算
7.3.1 数的定标(Q格式)
7.3.2 定点数的算术运算
7.4 总结
第8章 BasicMathFunctions的使用(一)
8.1 绝对值(Vector Absolute Value)
8.1.1 arm_abs_f32
8.1.2 arm_abs_q31
8.1.3 arm_abs_q15
8.1.4 arm_abs_q7
8.1.5 实例讲解
8.2 求和(Vector Addition)
8.2.1 arm_add_f32
8.2.2 arm_add_q31
8.2.3 arm_add_q15
8.2.4 arm_add_q7
8.2.5 实例讲解
8.3 点乘(Vector Dot Product)
8.3.1 arm_dot_prod_f32
8.3.2 arm_dot_prod_q31
8.3.3 arm_dot_prod_q15
8.3.4 arm_dot_prod_q7
8.3.5 实例讲解
8.4 乘法(Vector Multiplication)
8.4.1 arm_mult_f32
8.4.2 arm_mult_q31
8.4.3 arm_mult_q15
8.4.4 arm_mult_q7
8.4.5 实例讲解
8.5 总结
第9章 BasicMathFunctions的使用(二)
9.1 相反数(Vector Negate)
9.1.1 arm_negate_f32
9.1.2 arm_negate_q31
9.1.3 arm_negate_q15
9.1.4 arm_negate_q7
9.1.5 实例讲解
9.2 偏移(Vector Offset)
9.2.1 arm_offset_f32
9.2.2 arm_offset_q31
9.2.3 arm_offset_q15
9.2.4 arm_offset_q7
9.2.5 实例讲解
9.3 位移(Vector Shift)
9.3.1 arm_shift_q31
9.3.2 arm_shift_q15
9.3.3 arm_shift_q7
9.3.4 实例讲解
9.4 减法(Vector Sub)
9.4.1 arm_sub_f32
9.4.2 arm_sub_q31
9.4.3 arm_sub_q15
9.4.4 arm_sub_q7
9.4.5 实例讲解
9.5 比例因子(Vector Scale)
9.5.1 arm_scale_f32
9.5.2 arm_scale_q31
9.5.3 arm_scale_q15
9.5.4 arm_scale_q7
9.5.5 实例讲解
9.6 BasicMathFunctions的重要说明
9.7 总结
第10章 FastMathFunctions的使用
10.1 三角函数Cosine
10.1.1 arm_cos_f32
10.1.2 arm_cos_q31
10.1.3 arm_cos_q15
10.2 三角函数Sine
10.2.1 arm_sine_f32
10.2.2 arm_sin_q31
10.2.3 arm_sin_q15
10.3 平方根sqrt
10.3.1 arm_sqrt_f32
10.3.2 arm_sqrt_q31
10.3.3 arm_sqrt_q15
10.4 实例讲解(Matlab验证)
10.5 总结
第11章 StatisticsMathFunctions的使用(一)
11.1 最大值Maximum
11.1.1 arm_max_f32
11.1.2 arm_max_q31
11.1.3 arm_max_q15
11.1.4 arm_max_q7
11.1.5 实例讲解
11.2 最小值Minimum
11.2.1 arm_min_f32
11.2.2 arm_ min _q31
11.2.3 arm_ min _q15
11.2.4 arm_ min _q7
11.2.5 实例讲解
11.3 平均值Mean
11.3.1 arm_mean_f32
11.3.2 arm_ mean _q31
11.3.3 arm_ mean _q15
11.3.4 arm_ mean _q7
11.3.5 实例讲解
11.4 功率Power
11.4.1 arm_power_f32
11.4.2 arm_power_q31
11.4.3 arm_power_q15
11.4.4 arm_power_q7
11.4.5 实例讲解
11.5 总结
第12章 StatisticsMathFunctions的使用(二)
12.1 标准偏差Standard deviation
12.1.1 arm_std_f32
12.1.2 arm_std_q31
12.1.3 arm_std_q15
12.1.4 实例讲解
12.2 均方根RMS
12.2.1 arm_rms_f32
12.2.2 arm_rms_q31
12.2.3 arm_rms_q15
12.2.4 实例讲解
12.3 方差Variance
12.3.1 arm_var_f32
12.3.2 arm_var_q31
12.3.3 arm_var_q15
12.3.4 实例讲解
12.4 总结
第13章 SupportFunctions的使用(一)
13.1 数据拷贝Copy
13.1.1 arm_copy_f32
13.1.2 arm_copy_q31
13.1.3 arm_copy_q15
13.1.4 arm_copy_q7
13.1.5 实例讲解
13.2 数据填充Fill
13.2.1 arm_fill_f32
13.2.2 arm_fill_q31
13.2.3 arm_fill_q15
13.2.4 arm_fill_q7
13.2.5 实例讲解
13.3 浮点数转定点数Float to Fix
13.3.1 arm_float_to_q31
13.3.2 arm_float_to_q15
13.3.3 arm_float_to_q7
13.3.4 实例讲解
13.4 总结
第14章 SupportFunctions的使用(二)
14.1 定点数Q7转换
14.1.1 arm_q7_to_float
14.1.2 arm_q7_to_q31
14.1.3 arm_q7_to_q15
14.1.4 实例讲解
14.2 定点数Q15转换
14.2.1 arm_q15_to_float
14.2.2 arm_q15_to_q31
14.2.3 arm_q15_to_q7
14.2.4 实例讲解
14.3 定点数Q31转换
14.3.1 arm_q31_to_float
14.3.2 arm_q31_to_q15
14.3.3 arm_q31_to_q7
14.3.4 实例讲解
14.4 总结
第15章 ControllerFunctions的使用(PID控制)
15.1 PID介绍
15.1.1 概述
15.1.2 基本用途
15.1.3 现实意义
15.1.4 系统分类
15.1.5 调节方法
15.1.6 原理特点
15.1.7 参数整定
15.1.8 预制调整
15.2 PID形象解释
15.3 CMSIS的PID库
15.4 浮点数PID库
15.4.1 arm_pid_f32
15.4.2 arm_pid_init_f32
15.4.3 arm_pid_reset_f32
15.5 定点数Q31格式PID库
15.5.1 arm_pid_q31
15.5.2 arm_pid_init_q31
15.5.3 arm_pid_reset_q31
15.6 定点数Q15格式PID库
15.6.1 arm_pid_q15
15.6.2 arm_pid_init_q15
15.6.3 arm_pid_reset_q15
15.7 实例讲解
15.8 总结
第16章 ControllerFunctions的使用(二)
16.1 浮点数SIN和COS
16.1.1 arm_sin_cos_f32
16.1.2 实例讲解
16.2 定点数SIN和COS
16.2.1 arm_sin_cos_q31
16.2.2 实例讲解
16.3 Clarke 正变换和逆变换
16.4 Park 正变换和逆变换
16.5 总结
第17章 ComplexMathFunctions的使用(一)
17.1 复数共轭运算 ComplexConj
17.1.1 arm_cmplx_conj_f32
17.1.2 arm_cmplx_conj_q31
17.1.3 arm_cmplx_conj_q15
17.1.4 实例讲解
17.2 复数点乘 ComplexDotProduct
17.2.1 arm_cmplx_dot_prod_f32
17.2.2 arm_cmplx_dot_prod_q31
17.2.3 arm_cmplx_dot_prod_q15
17.2.4 实例讲解
17.3 复数求模 ComplexMag
17.3.1 arm_cmplx_mag_f32
17.3.2 arm_cmplx_mag_q31
17.3.3 arm_cmplx_mag_q15
17.3.4 实例讲解
17.4 总结
第18章 ComplexMathFunctions的使用(二)
18.1 复数模平方 ComplexMagSquared
18.1.1 arm_cmplx_mag_squared_f32
18.1.2 arm_cmplx_mag_squared_q31
18.1.3 arm_cmplx_mag_squared_q15
18.1.4 实例讲解
18.2 复数乘法 ComplexMultComplex
18.2.1 arm_cmplx_mult_cmplx_f32
18.2.2 arm_ cmplx_mult_cmplx_q31
18.2.3 arm_cmplx_mult_cmplx_q15
18.2.4 实例讲解
18.3 复数乘实数 ComplexMultComplex
18.3.1 arm_cmplx_mult_cmplx_f32
18.3.2 arm_ cmplx_mult_cmplx_q31
18.3.3 arm_cmplx_mult_cmplx_q15
18.3.4 实例讲解
18.4 总结
第19章 MatrixFunctions的使用(一)
19.1 矩阵初始化 MatInit
19.1.1 arm_mat_init_f32
19.1.2 arm_mat_init_q31
19.1.3 arm_mat_init_q15
19.1.4 实例讲解
19.2 矩阵加法 MatAdd
19.2.1 arm_mat_add_f32
19.2.2 arm_mat_add_q31
19.2.3 arm_mat_add_q15
19.2.4 实例讲解
19.3 逆矩阵 MatInverse
19.3.1 arm_mat_inverse_f32
19.3.2 实例讲解
19.4 矩阵减法 MatSub
19.4.1 arm_mat_sub_f32
19.4.2 arm_mat_add_q31
19.4.3 arm_mat_add_q15
19.4.4 实例讲解
19.5 总结
第20章 MatrixFunctions的使用(二)
20.1 矩阵放缩 MatScale
20.1.1 arm_mat_scale_f32
20.1.2 arm_mat_scale_q31
20.1.3 arm_mat_scale_q15
20.1.4 实例讲解
20.2 矩阵乘法 MatMult
20.2.1 arm_mat_mult_f32
20.2.2 arm_mat_mult_q31
20.2.3 arm_mat_mult_q15
20.2.4 arm_mat_mult_fast_q31
20.2.5 arm_mat_mult_fast_q15
20.2.6 实例讲解
20.3 转置矩阵 MatTrans
20.3.1 arm_mat_trans_f32
20.3.2 arm_mat_trans_q31
20.3.3 arm_mat_trans_q15
20.3.4 实例讲解
20.4 总结
第21章 InterpolationFunctions的使用
21.1 线性插值 Linear Interpolation
21.1.1 arm_linear_interp_f32
21.1.2 arm_linear_interp_q31
21.1.3 arm_linear_interp_q15
21.1.4 arm_linear_interp_q7
21.1.5 实例讲解
21.2 双线性插值 Bilinear Interpolation
21.2.1 arm_bilinear_interp_f32
21.2.2 arm_bilinear_interp_q31
21.2.3 arm_bilinear_interp_q15
21.2.4 arm_linear_interp_q7
21.3 总结
第22章 math_help中函数的使用
22.1 函数讲解
22.1.1 函数目录
22.1.2 arm_snr_f32
22.1.3 arm_float_to_q12_20
22.1.4 arm_provide_guard_bits_q15
22.1.5 arm_provide_guard_bits_q31
22.1.6 arm_float_to_q14
22.1.7 arm_float_to_q30
22.1.8 arm_calc_guard_bits
22.1.9 arm_apply_guard_bits
22.1.10 arm_calc_2pow
22.1.11 arm_compare_fixed_q15
22.1.12 arm_compare_fixed_q15
22.2 总结
第23章 傅里叶变换
23.1 傅里叶人物简介
23.2 傅里叶变换概念
23.3 傅里叶的特殊变换形式
23.3.1 连续傅里叶变换
23.3.2 傅里叶级数
23.3.3 离散时间傅里叶变换
23.3.4 离散傅里叶变换
23.3.5 傅里叶变换家族
23.4 傅里叶变换相关知识(重要)
23.4.1 傅里叶变换的提出
23.4.2 傅里叶变换分类
23.4.3 傅里叶变换的意义
23.4.4 图像傅里叶变换
23.5 总结
第24章 快速傅里叶变换原理(FFT)
24.1 FFT的由来
24.2 直接计算DFT的问题及改进路径
24.2.1 问题的提出
24.2.2 DFT的运算量
24.3 改善DFT运算效率的基本途径
24.4 按时间抽选的基2-FFT算法
24.4.1 算法原理
24.4.2 算法步骤
24.4.3 FFT算法和直接计算DFT运算量的比较
24.5 按频率抽选的基2-FFT算法
24.6 总结
第25章 FFT变换结果的物理意义
25.1 FFT变换结果的物理意义
25.1.1 理论阐释
25.1.2 理论计算和Matlab实际计算结果对比
25.2 FFT变换的频谱泄露问题
25.3 总结
第26章 FFT的示波器应用
26.1 为什么需要FFT
26.1.1 傅里叶变换的物理意义
26.2 FFT变换是如何进行的
26.3 FFT变换前后有何种对应关系
26.4 使用示波器进行 FFT 的方法和需要注意的问题
26.5 力科示波器和Tek示波器的FFT计算方法的比较
26.6 栅栏现象
26.6.1 频率分辨率与时基设置(TimeBase)
26.6.2 栅栏效应与频率分辨率
26.7 窗函数对于FFT结果的影响
26.8 窗函数选择指南
26.9 总结
第27章 FFT的Matlab实现
27.1 FFT函数
27.1.1 语法
27.1.2 定义
27.1.3 描述
27.1.4 FFT实例一:幅频响应
27.1.5 FFT实例二:相频响应
27.2 IFFT函数
27.2.1 语法
27.2.2 描述
27.2.3 IFFT实例
27.3 FFTSHIFT函数
27.4 总结
第28章 ST官方汇编FFT库应用
28.1 汇编FFT库说明
28.1.1 描述
28.1.2 汇编库的移植
28.2 函数cr4_fft_1024_stm32的使用
28.3 函数cr4_fft_256_stm32的使用
28.4 函数cr4_fft_64_stm32的使用
28.5 汇编FFT的相频响应求解
28.6 总结
第29章 ST官方汇编FFT库实现IFFT
29.1 利用FFT库实现IFFT的思路
29.2 Matlab实现验证
29.3 总结
第30章 复数FFT的实现
30.1 复数FFT
30.1.1 描述
30.1.2 浮点
30.1.3 定点Q31和Q15
30.1.4 arm_cfft_f32
30.2 复数FFT—基2算法
30.2.1 arm_cfft_radix2_f32
30.2.2 arm_cfft_radix2_q31
30.2.3 arm_cfft_radix2_q15
30.3 复数FFT—基4算法
30.3.1 arm_cfft_radix4_f32
30.3.2 arm_cfft_radix4_q31
30.3.3 arm_cfft_radix4_q15
30.4 总结
第31章 复数FFT的逆变换实现
31.1 复数FFT的逆变换实现
31.1.1 arm_cfft_f32逆变换
31.2 总结
第32章 实数FFT的实现
32.1 实数FFT
32.1.1 描述
32.2 实数FFT
32.2.1 arm_rfft_fast_f32
32.2.2 arm_rfft_q15
32.2.3 arm_rfft_q31
32.3 总结
第33章 实数FFT的逆变换实现
33.1 实数FFT的逆变换实现
33.1.1 arm_rfft_fast_f32逆变换
33.2 总结
第34章 滤波器基础知识
34.1 滤波器介绍
34.1.1 滤波器的发展引言
34.1.2 滤波器的分类
34.1.3 有源滤波器
34.1.4 开关电容滤波器(SCR)
34.1.5 几种新型数字滤波器(DF)
34.1.6 其它新型滤波器
34.2 数字滤波器
34.2.1 数字滤波器和模拟滤波器区别
34.2.2 数字滤波器特性
34.2.3 经典滤波器和数字滤波器
34.2.4 IIR滤波器和FIR滤波器
34.3 总结
第35章 FIR有限冲击响应滤波器设计
35.1 基本概念
35.1.1 什么是数字滤波器
35.1.2 数字滤波器的工作原理
35.1.3 数字滤波器的分类
35.1.4 滤波器的技术要求
35.1.5 滤波器的基本运算
35.1.6 数字滤波器的表述方法
35.2 FIR数字滤波器的基本网络结构
35.2.1 直接型结构
35.2.2 级联型结构
35.2.3 快速卷积型结构
35.2.4 线性相位型结构
35.2.5 频率抽样型结构
35.3 FIR数字滤波器的设计方法
35.4 总结
第36章 FIR滤波器的Matlab设计
36.1 窗函数
36.2 fir1函数
36.2.1 fir1函数介绍
36.2.2 fir1设计低通滤波器实例
36.2.3 fir1设计高通滤波器实例
36.2.4 fir1设计带通滤波器实例
36.2.5 fir1设计带阻滤波器实例
36.2.6 切比雪夫窗口函数设计带通滤波器实例
36.3 fir2函数
36.3.1 fir2函数介绍
36.3.2 fir2设计低通滤波器
36.4 总结
第37章 FIR滤波器的实现
37.1 FIR滤波器介绍
37.2 Matlab工具箱fdatool生成C头文件
37.3 FIR低通滤波器设计
37.3.1 函数arm_fir_f32说明
37.3.2 fdatool获取低通滤波器系数
37.3.3 低通滤波器实现
37.4 FIR高通滤波器设计
37.4.1 fdatool获取高通滤波器系数
37.4.2 高通滤波器实现
37.5 FIR带通滤波器设计
37.5.1 fdatool获取带通滤波器系数
37.5.2 带通滤波器实现
37.6 FIR带阻滤波器设计
37.6.1 fdatool获取带阻滤波器系数
37.6.2 带阻滤波器实现
37.7 切比雪夫窗口设计带通滤波器
37.7.1 fdatool获取滤波器系数
37.7.2 带通滤波器实现
37.8 FIR滤波后的群延迟
37.9 总结
第38章 IIR无限冲击响应滤波器设计
38.1 基本概念
38.2 IIR数字滤波器的基本网络结构
38.2.1 直接I型
38.2.2 直接II型
38.2.3 级联型
38.2.4 并联型
38.3 IIR数字滤波器的设计方法
38.4 总结
第39章 IIR滤波器的Matlab设计
39.1 巴特沃斯滤波器的设计
39.1.1 butter函数
39.1.2 buttord函数
39.1.3 巴特沃斯低通滤波器设计
39.1.4 巴特沃斯高通滤波器设计
39.1.5 巴特沃斯带通滤波器设计
39.1.6 巴特沃斯带阻滤波器设计
39.2 切比雪夫滤波器的设计
39.2.1 cheby1函数
39.2.2 cheby1ord函数
39.2.3 cheby2函数
39.2.4 cheby2ord函数
39.2.5 切比雪夫I型低通滤波器设计
39.2.6 切比雪夫I型高通滤波器设计
39.2.7 切比雪夫I型带通滤波器设计
39.2.8 切比雪夫I型带阻滤波器设计
39.3 椭圆滤波器的设计
39.3.1 ellip函数
39.3.2 ellipord函数
39.3.3 椭圆滤波器设计
39.4 总结
第40章 IIR滤波器的实现
40.1 IIR滤波器介绍
40.2 Matlab工具箱fdatool生成IIR滤波器系数
40.3 IIR低通滤波器设计
40.3.1 函数arm_biquad_cascade_df1_f32说明
40.3.2 fdatool获取低通滤波器系数
40.3.3 低通滤波器实现
40.4 IIR高通滤波器设计
40.4.1 fdatool获取高通滤波器系数
40.4.2 高通滤波器实现
40.5 IIR带通滤波器设计
40.5.1 fdatool获取低通滤波器系数
40.5.2 带通滤波器实现
40.6 IIR带阻滤波器设计
40.6.1 fdatool获取带阻滤波器系数
40.6.2 带阻滤波器实现
40.7 总结
第41章 实际应用中数字滤波器的选择
41.1 数字滤波器的选择
41.2 总结
第42章 DSP库函数执行时间测试
42.1 测试平台和测试条件
42.2 IIR滤波函数执行时间测试
42.3 FIR滤波函数执行时间测试
42.4 复数FFT函数执行时间测试(单精度浮点)
42.5 复数FFT函数执行时间测试(基2算法Q31)
42.6 复数FFT函数执行时间测试(基2算法Q15)
42.7 复数FFT函数执行时间测试(基4算法Q31)
42.8 复数FFT函数执行时间测试(基4算法Q15)
42.9 实数FFT函数执行时间测试(单精度浮点)
42.10 实数FFT函数执行时间测试(定点Q31)
42.11 实数FFT函数执行时间测试(定点Q15)
42.12 ST的FFT库函数执行时间测试
第43章 示波器基础知识
43.1 什么是示波器
43.2 示波器的发展史
43.2.1 模拟示波器
43.2.2 数字示波器
43.2.3 数字荧光示波器(DPO)
43.2.4 高灵敏度示波器
43.2.5 虚拟示波器
43.3 示波器基本概念
43.3.1 波的组成
43.3.2 波的基本参数
43.3.3 数字示波器串行处理
43.3.4 带宽
43.3.5 带宽与最高频率准则
43.3.6 采样率
43.3.7 实时采样率
43.3.8 等效采样率
43.3.9 平均采样
43.3.10 峰值检测
43.3.11 采样率低的影响
43.3.12 存储深度
43.3.13 波形刷新率
43.4 触发系统
43.4.1 基本概念
43.4.2 触发位置
43.4.3 触发模式
43.4.4 触发耦合
43.4.5 脉宽触发
43.4.6 触发释抑
43.5 李沙育图形
43.6 窗函数选择
43.7 总结
第44章 示波器操作说明及其介绍
44.1 示波器使用前注意事项
44.1.1 ADC和DAC的参考电压接到3.3V的地方
44.1.2 ADC和DAC的引脚说明
44.1.3 触摸4点校准
44.2 示波器的按键操作说明
44.3 按键操作说明
44.4 示波器功能介绍
44.5 5种波形显示效果
44.6 2048点浮点FFT计算的幅频显示
44.7 水平测量和垂直测量功能
44.8 普通触发以及采集波形的浏览功能
44.9 80阶Fir低通滤波设计
44.10 波形参考位置调节
44.11 FFT幅频显示和测量值窗口的隐藏
44.12 幅值调节
44.13 低频采样率采集高频信号的显示效果
44.14 总结
第45章 示波器设计—系统框架
45.1 uCOS-III任务分配
45.1.1 AppTaskStart—启动任务
45.1.2 AppTaskGUIUpdate—界面截图任务
45.1.3 AppTaskGUI—GUI任务
45.1.4 AppTaskGUIRefresh—Led闪烁任务
45.1.5 其余任务
45.2 示波器核心任务
45.2.1 MainTask.c—GUI主任务文件
45.2.2 MainTask.h—所有DSO相关文件的头文件
45.2.3 App_SysFunction.c—界面截图
45.2.4 DSO_Init.c—初始化
45.2.5 DSO_MeasureDlg.c—测量对话框
45.2.6 DSO_InspectorDlg.c—对话框
45.2.7 DSO_AcquireDlg.c—对话框
45.2.8 DSO_TriggerDlg.c—对话框
45.2.9 DSO_MathDlg.c—Fir低通滤波器设置对话框
45.2.10 DSO_SettingsDlg.c—设置对话框
45.2.11 DSO_DacDlg.c—对话框
45.2.12 DSO_ReturnDlg.c—对话框
45.2.13 DSO_DrawBakFrame.c—绘制波形区的虚线方格
45.2.14 DSO_DrawCursorH.c—水平测量游标
45.2.15 DSO_DrawCursorV.c—垂直测量游标
45.2.16 DSO_AmplititudeWindow.c—幅值窗口
45.2.17 DSO_ScaleWindow.c—时基窗口
45.2.18 DSO_StatusWindow.c—测量值窗口
45.2.19 DSO_FirFilter_Step1KHz—Fir低通滤波
45.2.20 DSO_FirFilter_Step10KHz—Fir低通滤波
45.2.21 DSO_FirFilter_Step100KHz—Fir低通滤波
45.3 DAC实现方波的输出
45.4 ADC实现数据的采集
45.5 总结
第46章 文档更新记录
安安富富莱莱电电子子 UUMM440033 wwwwww..aarrmmffllyy..ccoomm SSTTMM3322--VV55 开开发发板板系系统统篇篇手手册册 安安富富莱莱SSTTMM3322--VV55开开发发板板 数数字字信信号号处处理理教教程程 文档版本:V1.0 安安富富莱莱电电子子 WWWWWW..AARRMMFFLLYY..CCOOMM 22001155年年0011月月1155日日 版版本本::11..00 第第 11 页页 共共 660088 页页
安安富富莱莱电电子子 UUMM440033 wwwwww..aarrmmffllyy..ccoomm SSTTMM3322--VV55 开开发发板板系系统统篇篇手手册册 声声 明明 本本文文档档的的版版权权归归武武汉汉安安富富莱莱电电子子有有限限公公司司所所有有。。任任何何公公司司或或者者个个人人 未未经经许许可可,,不不得得将将本本文文档档用用于于商商业业目目的的。。  本本文文档档由由安安富富莱莱电电子子原原创创,,非非我我们们原原创创的的资资料料已已经经在在章章节节的的开开头头进进 行行申申明明((特特别别是是 FFFFTT 部部分分))。。  教教程程中中使使用用的的 DDSSPP 库库是是来来自自 AARRMM 公公司司。。  教教程程参参考考资资料料如如下下::  CCoorrtteexx--MM44 权权威威指指南南。。  数数字字信信号号处处理理理理论论、、算算法法与与实实现现第第二二版版((作作者者::胡胡广广书书))。。  信信号号与与系系统统第第二二版版((作作者者::奥奥本本海海姆姆))。。  MMaattllaabb 的的 hheellpp 文文档档。。  力力科科示示波波器器基基础础应应用用系系列列文文档档。。  百百度度百百科科,,wwiikkii 百百科科。。  网网络络资资源源。。  SSTT 官官方方相相关关文文档档。。 22001155年年0011月月1155日日 版版本本::11..00 第第 22 页页 共共 660088 页页
安安富富莱莱电电子子 UUMM440033 wwwwww..aarrmmffllyy..ccoomm SSTTMM3322--VV55 开开发发板板系系统统篇篇手手册册 第第11章章 数数字字信信号号处处理理介介绍绍 本期教程开始带领大家学习 DSP 教程,学习前首相要搞明白一个概念,DSP 有两层含义,一个是 DSP 芯片也就是 Digital Signal Processor,另一个是 Digital Signal Processing,也就是我们常说的数字信 号处理技术。本教程主要讲的是后者。 1.1 DSP 入门前背景知识 1.2 ARM 官方提供的 CMSIS-DSP 库 1.3 总结 11..11 DDSSPP入入门门前前背背景景知知识识 特别说明:本节的背景知识写的时间距今有些早,但是讲解的非常好,建议初学 DSP 的一定要读一 下,同时感谢奉献这个背景知识的作者。有兴趣的可以查阅相关资料了解一下当前数字信号处理的前沿研 究。 数字信号处理(DigitalSignal Processing,简称 DSP)是一门涉及许多学科而又广泛应用于许多领 域的新兴学科。20 世纪 60 年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并 得到迅速的发展。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。 数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、 压缩、识别等处理,以得到符合人们需要的信号形式。 数字信号处理是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的。数字信号处理在理 论上的发展推动了数字信号处理应用的发展。反过来,数字信号处理的应用又促进了数字信号处理理论的 提高。而数字信号处理的实现则是理论和应用之间的桥梁。 数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。例如,在数学领域,微积分、 概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通 信理论、故障诊断等也密切相关。近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字 信号处理密不可分。可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己 成为一系列新兴学科的理论基础。 11..11..11 数数字字信信号号处处理理的的实实现现方方法法一一般般有有以以下下几几种种 1. 在通用的计算机(如 PC 机)上用软件(如 Fortran、C 语言)实现; 2. 在通用计算机系统中加上专用的加速处理机实现; 3. 用通用的单片机(如 MCS-51、96 系列等)实现,这种方法可用于一些不太复杂的数字信号处理,如 数字控制等; 22001155年年0011月月1155日日 版版本本::11..00 第第 33 页页 共共 660088 页页
安安富富莱莱电电子子 UUMM440033 wwwwww..aarrmmffllyy..ccoomm SSTTMM3322--VV55 开开发发板板系系统统篇篇手手册册 4. 用通用的可编程 DSP 芯片实现。与单片机相比,DSP 芯片具有更加适合于数字信号处理的软件和硬件 资源,可用于 复杂的数字信号处理算法; 5. 用专用的 DSP 芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用 DSP 芯片很难实现, 例如专用于 FFT、数字滤波、卷积、相关等算法的 DSP 芯片,这种芯片将相应的信号处理算法在芯 片内部用硬件实现,无需进行编程。 在上述几种方法中,第 1 种方法的缺点是速度较慢,一般可用于 DSP 算法的模拟;第 2 种和第 5 种 方法专用性强,应用受到很大的限制,第 2 种方法也不便于系统的独立运行;第 3 种方法只适用于实现简 单的 DSP 算法;只有第 4 种方法才使数字信号处理的应用打开了新的局面。 虽然数字信号处理的理论发展迅速,但在 20 世纪 80 年代以前,由于实现方法的限制,数字信号处理 的理论还得不到广泛的应用。直到 20 世纪 70 年代末 80 年代初世界上第一片单片可编程 DSP 芯片的诞 生,才将理论研究结果广泛应用到低成本的实际系统中,并且推动了新的理论和应用领域的发展。可以毫 不夸张地说,DSP 芯片的诞生及发展对近 30 年来通信、计算机、控制等领域的技术发展起到十分重要的 作用。 11..11..22 输输入入信信号号的的形形式式 在 DSP 系统中,输入信号可以有各种各样的形式。例如,它可以是麦克风输出的语音信号或是电话 线来的已调数据信号,可以是编码后在数字链路上传输或存储在计算机里的摄像机图像信号等。 输入信号首先进行带限滤波和抽样,然后进行 A/D(Analog toDigital)变换将信号变换成数字比特 流。根据奈奎斯特抽样定理,为保证信息不丢失,抽样频率至少必须是输入带限信号最高频率的 2 倍。 DSP 芯片的输入是 A/D 变换后得到的以抽样形式表示的数字信号,DSP 芯片对输入的数字信号进行 某种形式的处理,如进行一系列的乘累加操作(MAC)。数字处理是 DSP 的关键,这与其他系统(如电 话交换系统)有很大的不同,在交换系统中,处理器的作用是进行路由选择,它并不对输入数据进行修改。 因此虽然两者都是实时系统,但两者的实时约束条件却有很大的不同。最后,经过处理后的数字样值再经 D/A(Digital toAnalog)变换转换为模拟样值,之后再进行内插和平滑滤波就可得到连续的模拟波形。 必须指出的是,上面给出的 DSP 系统模型是一个典型模型,但并不是所有的 DSP 系统都必须具有模 型中的所有部件。如语音识别系统在输出端并不是连续的波形,而是识别结果,如数字、文字等;有些输 入信号本身就是数字信号(如 CD:Compact Disk),因此就不必进行模数变换了。 11..11..33 数数字字信信号号处处理理系系统统 (1) 接口方便。DSP 系统与其他以现代数字技术为基础的系统或设备都是相互兼容的,与这样的系统 接口以实现某种功能要比模拟系统与这些系统接口要容易得多; (2) 编程方便。DSP 系统中的可编程 DSP 芯片可使设计人员在开发过程中灵活方便地对软件进行修改 和升级; (3) 稳定性好。DSP 系统以数字处理为基础,受环境温度以及噪声的影响较小,可靠性高; (4) 精度高。16 位数字系统可以达到 10^(-5)的精度; 22001155年年0011月月1155日日 版版本本::11..00 第第 44 页页 共共 660088 页页
安安富富莱莱电电子子 UUMM440033 wwwwww..aarrmmffllyy..ccoomm SSTTMM3322--VV55 开开发发板板系系统统篇篇手手册册 (5) 可重复性好。模拟系统的性能受元器件参数性能变化比较大,而数字系统基本不受影响,因此数 字系统便于测试、调试和大规模生产; (6) 集成方便。DSP 系统中的数字部件有高度的规范性,便于大规模集成。 当然,数字信号处理也存在一定的缺点。例如,对于简单的信号处理任务,如与模拟交换线的电话接 口,若采用 DSP 则使成本增加。DSP 系统中的高速时钟可能带来高频干扰和电磁泄漏等问题,而且 DSP 系统消耗的功率也较大。此外,D SP 技术更新的速度快,数学知识要求多,开发和调试工具还不尽完善。 虽然 DSP 系统存在着一些缺点,但其突出的优点已经使之在通信、语音、图像、雷达、生物医学、工业 控制、仪器仪表等许多领域得到越来越广泛的应用。 11..11..44 DDSSPP系系统统的的设设计计方方法法 总的来说,DSP 系统的设计还没有非常好的正规设计方法。 在设计 DSP 系统之前,首先必须根据应用系统的目标确定系统的性能指标、信号处理的要求,通常 可用数据流程图、数学_运算序列、正式的符号或自然语言来描述。 第二步是根据系统的要求进行高级语言的模拟。一般来说,为了实现系统的最终目标,需要对输入的 信号进行适当的处理,而处理方法的不同会导致不同的系统性能,要得到最佳的系统性能,就必须在这一 步确定最佳的处理方法,即数字信号处理的算法(Algorithm),因此这一步也称算法模拟阶段。例如, 语音压缩编码算法就是要在确定的压缩比条件下,获得最佳的合成语音。算法模拟所用的输入数据是实际 信号经采集而获得的,通常以计算机文件的形式存储为数据文件。如语音压缩编码算法模拟时所用的语音 信号就是实际采集而获得并存储为计算机文件形式的语音数据文件。有些算法模拟时所用的输入数据并不 一定要是实际采集的信号数据,只要能够验证算法的可行性,输入假设的数据也是可以的。 在完成第二步之后,接下来就可以设计实时 DSP 系统,实时 DSP 系统的设计包括硬件设计和软件设 计两个方面。硬件设计首先要根据系统运算量的大小、对运算精度的要求、系统成本限制以及体积、功耗 等要求选择合适的 DSP 芯片。然后设计 DSP 芯片的外围电路及其他电路。软件设计和编程主要根据系统 要求和所选的 DSP 芯片编写相应的 DSP 汇编程序,若系统运算量不大且有高级语言编译器支持,也可用 高级语言(如 C 语言)编程。由于现有的高级语言编译器的效率还比不上手工编写汇编语言的效率,因此 在实际应用系统中常常采用高级语言和汇编语言的混合编程方法,即在算法运算量大的地方,用手工编写 的方法编写汇编语言,而运算量不大的地方则采用高级语言。采用这种方法,既可缩短软件开发的周期, 提高程序的可读性和可移植性,又能满足系统实时运算的要求。 DSP 硬件和软件设计完成后,就需要进行硬件和软件的调试。软件的调试一般借助于 DSP 开发工具, 如软件模拟器、DSP 开发系统或仿真器等。调试 DSP 算法时一般采用比较实时结果与模拟结果的方法, 如果实时程序和模拟程序的输入相同,则两者的输出应该一致。应用系统的其他软件可以根据实际情况进 行调试。硬件调试一般采用硬件仿真器进行调试,如果没有相应的硬件仿真器,且硬件系统不是十分复杂, 也可以借助于一般的工具进行调试。 系统的软件和硬件分别调试完成后,就可以将软件脱离开发系统而直接在应用系统上运行。当然,DSP 系统的开发,特别是软件开发是一个需要反复进行的过程,虽然通过算法模拟基本上可以知道实时系统的 22001155年年0011月月1155日日 版版本本::11..00 第第 55 页页 共共 660088 页页
安安富富莱莱电电子子 UUMM440033 wwwwww..aarrmmffllyy..ccoomm SSTTMM3322--VV55 开开发发板板系系统统篇篇手手册册 性能,但实际上模拟环境不可能做到与实时系统环境完全一致,而且将模拟算法移植到实时系统时必须考 虑算法是否能够实时运行的问题。如果算法运算量太大不能在硬件上实时运行,则必须重新修改或简化算 法。 11..11..55 DDSSPP芯芯片片的的特特点点 DSP 芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器,其主要应 用是实时快速地实现各种数字信号处理算法。 根据数字信号处理的要求,DSP 芯片一般具有如下主要特点: (1) 在一个指令周期内可完成一次乘法和一次加法; (2) 程序和数据空间分开,可以同时访问指令和数据; (3) 片内具有快速 RAM,通常可通过独立的数据总线在两块中同时访问; (4) 具有低开销或无开销循环及跳转的硬件支持; (5) 快速的中断处理和硬件 I/O 支持; (6) 具有在单周期内操作的多个硬件地址产生器; (7) 可以并行执行多个操作; (8) 支持流水线操作,使取指、译码和执行等操作可以重叠执行。 当然,与通用微处理器相比,DSP 芯片的其他通用功能相对较弱些。 11..11..66 DDSSPP芯芯片片的的发发展展 世界上第一个单片 DSP 芯片应当是 1978 年 AMI 公司发布的 S2811,1979 年美国 Intel 公司发布 的商用可编程器件 2920 是 DSP 芯片的一个主要里程碑。这两种芯片内部都没有现代 DSP 芯片所必须有 的单周期乘法器。1980 年,日本 NEC 公司推出的 μP D7720 是第一个具有乘法器的商用 DSP 芯片。 在这之后,最成功的 DSP 芯片当数美国德州仪器公司(Texas Instruments,简称 TI)的一系列产 品。TI 公司在 1982 年成功推出其 第一代 DSP 芯片 TMS32010 及其系列产品 TMS32011、TMS320C10/C14/C15/C16/C17 等 第二代 DSP 芯片 TMS32020、TMS320C25/C26/C28。 第三代 DSP 芯片 TMS320C30/C31/C32。 第四代 DSP 芯片 TMS320C40/C44。 第五代 DSP 芯片 TMS320C5X/C54X,第二代 DSP 芯片的改进型 TMS320C2XX,集多片 DSP 芯 片于一体的高性能 DSP 芯片 TMS320C8X 以及目前速度最快的 第六代 DSP 芯片 TMS320C62X/C67X 等。TI 将常用的 DSP 芯片归纳为三大系列,即:TMS320C2000 系列(包括 TMS320C2X/C2XX)、TMS320C5000系列(包括 TMS320C5X/C54X/C55X)、TMS320C6000 系列(TMS320C62X/C67X)。如今,TI 公司的一系列 DSP 产品已经成为当今世界上最有影响的 DSP 芯 片。TI 公司也成为世界上最大的 DSP 芯片供应商,其 DSP 市场份额占全世界份额近 50%。 22001155年年0011月月1155日日 版版本本::11..00 第第 66 页页 共共 660088 页页
安安富富莱莱电电子子 UUMM440033 wwwwww..aarrmmffllyy..ccoomm SSTTMM3322--VV55 开开发发板板系系统统篇篇手手册册 第一个采用 CMOS 工艺生产浮点 DSP 芯片的是日本的 Hitachi 公司,它于 1982 年推出了浮点 DSP 芯片。1983 年 日本 Fujitsu 公司推出的 MB8764,其指令周期为 120ns,且具有双内部总线,从而使 处理吞吐量发生了一个大的飞跃。而第一个高性能浮点 DSP 芯片应是 AT&T 公司于 1984 年推出的 DSP32。 与其他公司相比,Motorola 公司在推出 DSP 芯片方面相对较晚。1986 年,该公司推出了定点处理 器 MC56001。1990 年,推出了与 IEEE 浮点格式兼容的浮点 DSP 芯片 MC96002。 美国模拟器件公司(AnalogDevices,简称 AD)在 DSP 芯片市场上也占有一定的份额,相继推出了 一系列具有自己特点的 DSP 芯片,其定点 DSP 芯片有 ADSP2101/2103/2105、ASDP2111/2115、 ADSP2161/2162/2164 以及 ADSP2171/2181,浮点 DSP 芯片有 ADSP21000/21020、 ADSP21060/21062 等。自 1980 年以来,DSP 芯片得到了突飞猛进的发展,DSP 芯片的应用越来越广 泛。从运算速度来看,MAC(一次乘法和一次加法)时间已经从20 世纪80 年代初的400ns(如 TMS32010) 降低到 10ns 以下(如 TMS320C54X、TMS320C62X/67X 等),处理能力提高了几十倍。DSP 芯片内 部关键的乘法器部件从 1980 年的占模片区(diearea)的 40%左右下降到 5%以下,片内 RAM 数量增加 一个数量级以上。从制造工艺来看,1980 年采用 4μm 的 N 沟道 MOS(NMOS)工艺,而现在则普遍 采用亚微米(Micron)CMOS 工艺。DSP 芯片的引脚数量从 1980 年的最多 64 个增加到现在的 200 个 以上,引脚数量的增加,意味着结构灵活性的增加,如外部存储器的扩展和处理器间的通信等。此外,DSP 芯片的发展使 DSP 系统的成本、体积、重量和功耗都有很大程度的下降。 11..11..77 DDSSPP芯芯片片的的选选择择 设计 DSP 应用系统,选择 DSP 芯片是非常重要的一个环节。只有选定了 DSP 芯片,才能进一步设 计其外围电路及系统的其他电路。总的来说,DSP 芯片的选择应根据实际的应用系统需要而确定。不同的 DSP 应用系统由于应用场合、应用目的等不尽相同,对 DSP 芯片的选择也是不同的。一般来说,选择 DSP 芯片时应考虑到如下诸多因素。 1. DSP 芯片的运算速度。 运算速度是 DSP 芯片的一个最重要的性能指标,也是选择 DSP 芯片时所需要考虑的一个主要因素。 DSP 芯片的运算速度可以用以下几种性能指标来衡量: (1) 指令周期:即执行一条指令所需的时间,通常以 ns(纳秒)为单位。如 TMS320LC549-80 在主频为 80MHz 时的指令周期为 12.5ns; (2) MAC 时间:即一次乘法加上一次加法的时间。大部分 DSP 芯片可在一个指令周期内完成一次乘法和 加法操作,如 TMS320LC549-80 的 MAC 时间就是 12.5ns; (3) FFT 执行时间:即运行一个 N 点 FFT 程序所需的时间。由于 FFT 运算涉及的运算在数字信号处理中很 有代表性,因此 FFT 运算时间常作为衡量 DSP 芯片运算能力的一个指标; (4) MIPS:即每秒执行百万条指令。如 TMS320LC549-80 的处理能力为 80 MIPS,即每秒可执行八千万 条指令; (5)MOPS:即每秒执行百万次操作。如 TMS320C40 的运算能力为 275 MOPS; 22001155年年0011月月1155日日 版版本本::11..00 第第 77 页页 共共 660088 页页
安安富富莱莱电电子子 UUMM440033 wwwwww..aarrmmffllyy..ccoomm SSTTMM3322--VV55 开开发发板板系系统统篇篇手手册册 (6) MFLOPS:即每秒执行百万次浮点操作。如 TMS320C31 在主频为 40MHz 时的处理能力为 40MFLOPS (7)BOPS:即每秒执行十亿次操作。如 TMS320C80 的处理能力为 2 BOPS。 2.DSP 芯片的价格。 DSP 芯片的价格也是选择 DSP 芯片所需考虑的一个重要因素。如果采用价格昂贵的 DSP 芯片,即使 性能再高,其应用范围肯定会受到一定的限制,尤其是民用产品。因此根据实际系统的应用情况,需确定 一个价格适中的 DSP 芯片。当然,由于 DSP 芯片发展迅速,DSP 芯片的价格往往下降较快,因此在开发 阶段选用某种价格稍贵的 DSP 芯片,等到系统开发完毕,其价格可能已经下降一半甚至更多。 3.DSP 芯片的硬件资源。 不同的 DSP 芯片所提供的硬件资源是不相同的,如片内 RAM、ROM 的数量,外部可扩展的程序和 数据空间,总线接口,I/O 接口等。即使是同一系列的 DSP 芯片(如 TI 的 TMS320C54X 系列),系列 中不同 DSP 芯片也具有不同的内部硬件资源,可以适应不同的需要。 4.DSP 芯片的运算精度。 一般的定点 DSP 芯片的字长为 16 位,如 TMS320 系列。但有的公司的定点芯片为 24 位,如 Motorola 公司的 MC56001 等。浮点芯片的字长一般为 32 位,累加器为 40 位。 5.DSP 芯片的开发工具。 在 DSP 系统的开发过程中,开发工具是必不可少的。如果没有开发工具的支持,要想开发一个复杂 的 DSP 系统几乎是不可能的。如果有功能强大的开发工具的支持,如 C 语言支持,则开发的时间就会大 大缩短。所以,在选择 DSP 芯片的同时必须注意其开发工具的支持情况,包括软件和硬件的开发工具 6.DSP 芯片的功耗。 在某些 DSP 应用场合,功耗也是一个需要特别注意的问题。如便携式的 DSP 设备、手持设备、野外 应用的 DSP 设备等都对功耗有特殊的要求。目前,3.3V 供电的低功耗高速 DSP 芯片已大量使用。 7.其他。 除了上述因素外,选择 DSP 芯片还应考虑到封装的形式、质量标准、供货情况、生命周期等。有的 DSP 芯片可能有 DIP、PGA、PLCC、PQFP 等多种封装形式。有些 DSP 系统可能最终要求的是工业级或 军用级标准,在选择时就需要注意到所选的芯片是否有工业级或军用级的同类产品。如果所设计的 DSP 系统不仅仅是一个实验系统,而是需要批量生产并可能有几年甚至十几年的生命周期,那么需要考虑所选 的 DSP 芯片供货情况如何,是否也有同样甚至更长的生命周期等。 在上述诸多因素中,一般而言,定点 DSP 芯片的价格较便宜,功耗较低,但运算精度稍低。而浮点 DSP 芯片的优点是运算精度高,且 C 语言编程调试方便,但价格稍贵,功耗也较大。例如 TI 的 TMS320C2XX/C54X 系列属于定点 DSP 芯片,低功耗和低成本是其主要的特点。TMS320C3X/C4X/C67X 属于浮点 DSP 芯片,运算精度高,用 C 语言编程方便,开发周期短,但同时其价格和功耗也相对较高。 DSP 应用系统的运算量是确定选用处理能力为多大的 DSP 芯片的基础。运算量小则可以选用处理能 力不是很强的 DSP 芯片,从而可以降低系统成本。相反,运算量大的 DSP 系统则必须选用处理能力强的 DSP 芯片,如果 DSP 芯片的处理能力达不到系统要求,则必须用多个 DSP 芯片并行处理。 22001155年年0011月月1155日日 版版本本::11..00 第第 88 页页 共共 660088 页页
分享到:
收藏