您的位置: OpenADSP社区论坛 -> SHARC/TigerSHARC专区 -> 新手上路 -> SHARC的算法详解(一)数字信号基础知识
本帖共有182个阅读者
发表帖子 发表投票 回复主题
SHARC的算法详解(一)数字信号基础知识
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
SHARC的算法详解(一)数字信号基础知识
    数字化已成为现代信息技术的重要标志,是电子产品高品质的象征。数字信号处理具有灵活、精确、重复性好等优点,这些都是模拟信号处理方法所无法比拟的。

    数字信号处理包括以下两个方面的内容:

    1. 算法的研究
    
    算法的研究是指按照要求设计有限的确切的计算过程,这样的过程不仅可以实现所需的功能,还要将所需的运算量和存储空间控制在可以接受的范围内。数字信号处理(Digital Signal Processing,DSP)的任务是算法研究,一般在 Matlab 或 c 语言等软件平台上进行仿真。

    2. 数字信号处理的实现

    数字信号处理的实现是用硬件、软件或软硬件结合的方法来实现各种算法。目前各类数字产品中最常用的是软硬件结合的方法,即在通用的数字信号处理芯片(Digital Signal Processor,DSP)上通过软件来实现各种数字信号处理算法。

    数字信号处理及数字信号处理器的英文缩写均为 DSP,前者指算法,后者指器件,工程上DSP一般指的是后者,即数字信号处理器,我后面讲的也是默认这一说法。



我是OP...
等级:管理员 参考IP地址:*.*.*.*
2022/8/22 10:40:38
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
数字信号

    数字信号处理最基本的算法有两类:频谱分析、数字滤波。为了实现这两类算法,首先要了解什么是数字信号,图 1.1 是其示意图。专业数字音频信号处理中,常见的采样率:44.1kHz、48kHz、96kHz、192kHz,采样精度:16bit、24bit、32bit。采样率和采样精度越高,信号的失真就越小,但所需的存储空间也越大、所需计算的数据也越多,因此实际的工程应用中要根据实际情况合理选择采样率和采样精度。采样得到的数据其字长由采样精度确定,表示方法有两种:定点、浮点,在 DSP 的应用中经常遇到,下面作简要介绍。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2022/8/22 10:43:51
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
上传的图片
  202282210444137.jpg [ 96.80 KB 806×539 ] (缩略时请点击查看原图)

 




我是OP...
等级:管理员 参考IP地址:*.*.*.*
2022/8/22 10:44:59
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
1 、定点 数及其定标
  
  在定点 DSP 芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型数的最大表示范围取决于 DSP 芯片所给定的字长。显然,字长越长,所能表示的数的范围越大,精度也越高,现以 16 位字长为例。

  DSP 芯片的数以 2 的补码形式表示。每个 16 位数用一个符号位来表示数的正负,0 表示数值为正,1 则表示数值为负。其余 15 位表示数值的大小。

  因此二进制数 0010000000000011b → 8195 (十进制数)
  二进制数 1111111111111100b → -4 (十进制数)

  对 DSP 芯片而言,参与数值运算的数就是 16 位的整型数。但在许多情况下,数学运算过程中的数不一定都是整数。那么,DSP 芯片是如何处理小数的呢?应该说,DSP 芯片本身无能为力。那么是不是说 DSP 芯片就不能处理各种小数呢?当然不是。这其中的关键就是由程序员来确定一个数的小数点处于 16 位中的哪一位, 这就是数的定标。

  

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2022/8/22 10:47:37
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
二进制转换为十进制的计算方法如下:一个具有 n+ 1 位整数 m 位小数的二进制数表示为:

上传的图片
  202282210483311.jpg [ 36.82 KB 895×223 ] (缩略时请点击查看原图)

 




我是OP...
等级:管理员 参考IP地址:*.*.*.*
2022/8/22 10:48:40
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
  以上数据的下标 2、10 分别表示二进制、十进制。

  通过设定小数点在 16 位数中的不同位置,就可以表示不同大小和不同精度的小数了。数的定标有 Q 表示法和 S 表示法两种。同样一个 16 位数,若小数点设定的位置不同,它所表示的数也就不同。例如:

  16 进制数 2000H=8192,用 Q0 表示
  16 进制数 2000H=0.25,用 Q15 表示

  其中 Q0 表示小数的位数为 0,整数 15 位,符号 1 位;Q15 表示小数的位数是 15,整数 0位,符号 1 位。

  但对于 DSP 芯片来说,不管小数设在什么位置,处理方法是完全相同的,都是看成 16位的整数,真正的数据是什么就需要根据工程师设定的 Q 来计算。 从表 1 可以看出,不同的 Q 所表示的数不仅范围不同,而且精度也不相同。Q 越大,数值范围越小,但精度越高;

  相反,Q 越小,数值范围越大,但精度就越低。例如,Q0 的数值范围是-32768 到+32767,其精度为 1,而 Q15 的数值范围为-1 到 0.9999695,精度为 1/32768 = 0.00003051。因此,对定点数而言,数值范围与精度是一对矛盾,一个变量要想能够表示比较大的数值范围,必须以牺牲精度为代价;而想提高精度,则数的表示范围就相应地减小。在实际的定点算法中,为了达到最佳的性能,必须充分考虑到这一点。


上传的图片
  202282210502711.jpg [ 58.10 KB 440×657 ] (缩略时请点击查看原图)

 


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2022/8/22 10:50:32
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
6信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
内容很枯燥,不知道这一类的文章会不会有人感兴趣,有感兴趣我就继续。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2022/8/22 10:55:32
LucasFung(论坛新手)
LucasFung
头衔:社区公民
帮派:无帮无派
帖数:1
金钱:105
积分:1
注册时间:2021/2/10
7信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
OP,您好,其实这类文章对于像我这种没有接触过数字信号处理这门课的人,应该是有帮助的,建议结合一些实际的音频算法来讲解一下,会更容易入门。

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2023/1/18 14:48:43
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
8信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
那等上班后我有时间再写写看吧

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2023/1/29 22:24:10
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.153960 Call, 1 Queries, Processed in 0.015625 second(s),