完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>
标签 > DSP技术
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛DSP技术图解的应用。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。
数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛DSP技术图解的应用。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。
数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。
数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。
数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。
实现方法
DSP的实现方法一般有以下几种:
(1) 在通用的计算机(如PC机)上用软件(如Fortran、C语言)实现;
(2) 在通用计算机系统中加上专用的加速处理机实现;
(3) 用通用的单片机(如MCS-51、96系列等)实现,这种方法可用于一些不太复杂的数字信号处理,如数字控制等;
(4) 用通用的可编程DSP实现。与单片机相比,DSP芯片具有更加适合于数字信号处理的软件和硬件资源,可用于 复杂的数字信号处理算法;
(5) 用专用的DSP芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用DSP芯片很难实现,例如专用于FFT、数字滤波、卷积、相关等算法的DSP芯片,这种芯片将相应的信号处理算法在芯片内部用硬件实现,无需进行编程。
在上述几种方法中,第1种方法的缺点是速度较慢,一般可用于DSP算法的模拟;第2种和第5种方法专用性强,应用受到很大的限制,第2种方法也不便于系统的独立运行;第3种方法只适用于实现简单的DSP算法;只有第4种方法才使数字信号处理的应用打开了新的局面。
特点
考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件与通用处理器(GPP)的分流:
对密集的乘法运算的支持
GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。而DSP处理器使用专门的硬件来实现单周期乘法。DSP处理器还增加了累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为结果bits的额外bits来避免溢出。同时,为了充分体现专门的乘法-累加硬件的好处,几乎所有的DSP的指令集都包含有显式的MAC指令。
存储器结构
传统上,GPP使用冯。诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,做一次乘法会发生4次存储器访问,用掉至少四个指令周期。大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存贮器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的MAC指令。还有一个问题,即现在典型的高性能GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,两者还是有重要的区别。GPP使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)。与此相反,DSP使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中。程序员在写程序时,必须保证处理器能够有效地使用其双总线。此外,DSP处理器几乎都不具备数据高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。
零开销循环
如果了解到DSP算法的一个共同的特点,即大多数的处理时间是花在执行较小的循环上,也就容易理解,为什么大多数的DSP都有专门的硬件,用于零开销循环。所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、条件转移到循环的顶部、将循环计数器减1。与此相反,GPP的循环使用软件来实现。某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果。
定点计算
大多数DSP使用定点计算,而不是使用浮点。虽然DSP的应用必须十分注意数字的精确,用浮点来做应该容易的多,但是对DSP来说,廉价也是非常重要的。定点机器比起相应的浮点机器来要便宜(而且更快)。为了不使用浮点机器而又保证数字的准确,DSP处理器在指令集和硬件方面都支持饱和计算、舍入和移位。
专门的寻址方式
DSP处理器往往都支持专门的寻址模式,它们对通常的信号处理操作和算法是很有用的。例如,模块(循环)寻址(对实现数字滤波器延时线很有用)、位倒序寻址(对FFT很有用)。这些非常专门的寻址模式在GPP中是不常使用的,只有用软件来实现。
执行时间的预测
大多数的DSP应用(如蜂窝电话和调制解调器)都是严格的实时应用,所有的处理必须在指定的时间内完成。这就要求程序员准确地确定每个样本需要多少处理时间,或者,至少要知道,在最坏的情况下,需要多少时间。如果打算用低成本的GPP去完成实时信号处理的任务,执行时间的预测大概不会成为什么问题,应为低成本GPP具有相对直接的结构,比较容易预测执行时间。然而,大多数实时DSP应用所要求的处理能力是低成本GPP所不能提供的。这时候,DSP对高性能GPP的优势在于,即便是使用了高速缓存的DSP,哪些指令会放进去也是由程序员(而不是处理器)来决定的,因此很容易判断指令是从高速缓存还是从存储器中读取。DSP一般不使用动态特性,如转移预测和推理执行等。因此,由一段给定的代码来预测所要求的执行时间是完全直截了当的。从而使程序员得以确定芯片的性能限制。
定点DSP指令集
定点DSP指令集是按两个目标来设计的:·使处理器能够在每个指令周期内完成多个操作,从而提高每个指令周期的计算效率。·将存贮DSP程序的存储器空间减到最小(由于存储器对整个系统的成本影响甚大,该问题在对成本敏感的DSP应用中尤为重要)。为了实现这些目标,DSP处理器的指令集通常都允许程序员在一个指令内说明若干个并行的操作。例如,在一条指令包含了MAC操作,即同时的一个或两个数据移动。在典型的例子里,一条指令就包含了计算FIR滤波器的一节所需要的所有操作。这种高效率付出的代价是,其指令集既不直观,也不容易使用(与GPP的指令集相比)。GPP的程序通常并不在意处理器的指令集是否容易使用,因为他们一般使用象C或C++等高级语言。而对于DSP的程序员来说,不幸的是主要的DSP应用程序都是用汇编语言写的(至少部分是汇编语言优化的)。这里有两个理由:首先,大多数广泛使用的高级语言,例如C,并不适合于描述典型的DSP算法。其次,DSP结构的复杂性,如多存储器空间、多总线、不规则的指令集、高度专门化的硬件等,使得难于为其编写高效率的编译器。即便用编译器将C源代码编译成为DSP的汇编代码,优化的任务仍然很重。典型的DSP应用都具有大量计算的要求,并有严格的开销限制,使得程序的优化必不可少(至少是对程序的最关键部分)。因此,考虑选用DSP的一个关键因素是,是否存在足够的能够较好地适应DSP处理器指令集的程序员。
开发工具的要求
因为DSP应用要求高度优化的代码,大多数DSP厂商都提供一些开发工具,以帮助程序员完成其优化工作。例如,大多数厂商都提供处理器的仿真工具,以准确地仿真每个指令周期内处理器的活动。无论对于确保实时操作还是代码的优化,这些都是很有用的工具。GPP厂商通常并不提供这样的工具,主要是因为GPP程序员通常并不需要详细到这一层的信息。GPP缺乏精确到指令周期的仿真工具,是DSP应用开发者所面临的的大问题:由于几乎不可能预测高性能GPP对于给定任务所需要的周期数,从而无法说明如何去改善代码的性能。
应用
现代社会对数据通信需求正向多样化、个人化方向发展。而无线数据通信作为向社会公众迅速、准确、安全、灵活、高效地提供数据交流的有力手段,其市场需求也日益迫切。正是在这种情况下,3G、4G通信才会不断地被推出,但是无论是3G还是4G,未来通信都将离不开DSP技术(数字信号处理器),DSP作为一种功能强大的特种微处理器,主要应用在数据、语音、视像信号的高速数学运算和实时处理方面,可以说DSP将在未来通信领域中起着举足轻重的作用。
为了确保未来的通信能在各种环境下自由高效地工作,这就要求组成未来通信的DSP要具有非常高的处理信号的运算速度,才能实现各种繁杂的计算、解压缩和编译码。而目前DSP按照功能的侧重点不一样,可以分为定点DSP和浮点DSP,定点DSP以成本低见长,浮点DSP以速度快见长。如果单一地使用一种类型的DSP,未来通信的潜能就不能得到最大程度的发挥。为了能将定点与浮点的优势集于一身,突破DSP技术上的瓶颈,人们又推出了一种高级多重处理结构--VLIW结构,该结构可以在不提高时钟速度的情况下,实现很强的数字信号处理能力,而且它能同时具备定点DSP和浮点DSP所有的优点。为了能推出一系列更高档的新技术平台,人们又开始注重DSP的内核技术的开发,因为DSP的内核就相当于计算机的CPU一样,被誉为DSP的心脏,大量的算法和操作都得通过它来完成,因此该内核结构的质量如何,将会直接影响整个DSP芯片的性能、 功耗和成本。
考虑到未来无线访问Internet因特网和开展多媒体业务的需要,现在美国的Sun公司又开始准备准将该公司的拳头产品--PersonalJava语言嵌入到DSP中,以便能进一步提高DSP在处理信号方面的自动化程度和智能化程度。当然,在以前DSP中也潜入了其他软件语言,例如高级C语言,但这种语言在处理网络资源以及多媒体信息方面无能为力;而PersonalJava是一种适合个人网络连接和应用的Java环境,基于该环境的个人通信系统可以从网络和Internet网上下载数据和图像。此外,人们还在研究开发符合MPEG-4无线解压缩标准DSP,该压缩标准将为未来通信传输各种多媒体信息提供了依据。
作为一个案例研究,我们来考虑数字领域里最通常的功能:滤波。简单地说,滤波就是对信号进行处理,以改善其特性。例如,滤波可以从信号里清除噪声或静电干扰,从而改善其信噪比。为什么要用微处理器,而不是模拟器件来对信号做滤波呢?我们来看看其优越性:
模拟滤波器(或者更一般地说,模拟电路)的性能要取决于温度等环境因素。而数字滤波器则基本上不受环境的影响。
数字滤波易于在非常小的宽容度内进行复制,因为其性能并不取决于性能已偏离正常值的器件的组合。
一个模拟滤波器一旦制造出来,其特性(例如通带频率范围)是不容易改变的。使用微处理器来实现数字滤波器,就可以通过对其重新编程来改变滤波的特性。
初学DSP
一、为什么要用DSP?
3G通信技术的发展,要求处理器的速度越来越高,体积越来越小,MCU的速度较慢;CPU体积大、功耗高;嵌入CPU的成本较高。DSP的发展正好能满足这一发展的要求,使其在许多速度要求较高、算法较复杂的场合取代MCU或其它处理器,而且综合成本有可能更低。
二、DSP是什么、能干嘛?
想了解这些,就得一个概念讲起,DSP首先是Digital Signal Processing(数字信号处理),然后才是Digital Singnal Processor(数字信号处理器)。具体关于DSP的介绍,请参考小弟的《三国杀之FPGA与ASIC、DSP全面大比拼!》,你能找到你想要的知识,也能找到学习DSP的动力。
三、DSP有没有前途(“钱途”)?
很多人都觉得做技术就是苦逼,哪来的什么前途,一定要转做技术管理或销售。以前我也这般认为,但现在越来越多的事实证明,这就是一个谬论,DSP相当有钱途!举两个例子:其一,某位DSP的资深AE,可以算是中国区该领域的专家,年薪不菲(60万以上),走遍世界,工作也很轻松;其二,某知名电信公司晋升年限一样的技术专家比同级的经理薪酬要高,如Expert(专家级)与管理大概50个人的经理相比,前者的薪酬要更高。
肯定有人说哪这么多高端人士,大家都是正常人类。好吧,那来个正常的数据,京沪深的DSP工程师起薪基本上是10K/月,就是1万现大洋,满意了吧。
四、DSP好不好学?
不管你喜不喜欢,学习DSP就必须得面对她:算法。算法是DSP的精华,可以说摆平了算法就搞定了80%,如果你又懂单片机编程,那么恭喜你有成为DSP专家的潜力。肯定有童鞋问算法到底好不好学呢?算法,听上去是很高深的东西,但其原理也不过就是一些加减乘而已,连除都很少。肯定有童鞋又问,加减乘不就是小学生的算术嘛?是的, DSP 的算法也许就比小学生的算术难一滴滴。听完这些,你肯定乐呵呵:DSP挺好学的嘛。
五、DSP该怎么学?
这是个大问题,这里涉及到选开发板、看书、做实验,下面咱们详细讲这几个问题:
1、如何DSP开发板?
咱们在讨论选开发板之前,得先解决要学哪种DSP。科普一下,DSP分为通用型DSP芯片和专用型DSP芯片,通用型DSP芯片适合普通的DSP应用,如TI,ADI等公司的DSP芯片属于通用型DSP芯片;专用DSP芯片是为特定的DSP运算而设计的,更适合特殊的运算,如数字滤波、卷积和FFT,如如Motorola公司的DSP56200。学习DSP是当然为了找工作挣钱的,那自然是要学TI的通用型DSP,为什么呢,因为TI 占有最大的市场份额(世界市场45%的份额),咱总不能学一个没有市场的DSP吧。
DSP是一门实践性很强的专业,要想快速精通,就必须有自己的操作平台。这样既可以增强动手能力,也可以节约很多时间。所以,对于初学者来说,选择一款性价比较高的开发板很重要。下面咱们就选开发板了,TI 公司现在主推四大系列DSP: 1)C2000 系列(定点、控制器):C20X,F20X,F24X,F24XX ,C28x,用于数字化控制领域;2)C5000 系列(定点、低功耗):C54X,C54XX,C55X,用于通信、便携式应用领域;3)C6000 系列:C62XX,C67XX,C64X,用于宽带网络和数字影像领域;4)OMAP 系列:TI专门为支持2.5G和3G手机应用需求而设计的处理器体系结构(DSP+MCU+MTC内存和流量控制器)。虽然有这么多型号的DSP,但作为初学者,我们当然要选择C2000 系列,而且要选择F2810/F2812,这是业界最强大的控制专用DSP,还有一个升级版:28335。开发板的主控芯片选取了,至于具体选哪个品牌的开发板,价格从几百到几千不等,具体看个人预算。
开发板选择有这么两个原则:1)适当的外设。最小系统板虽然便宜但不利于咱们学习(最小系统是给高手DIY的),没外设搞起来没有成就感,没几天就烦了,所以得有适当的外设;功能堆叠型开发板虽然功能丰富,但是贵,也不适合咱们初学。初学嘛,没创造什么效益,自然是以节约为主。有基本的外设就行了,最重要的是学习接口,比如SPI、SCI、CAN,不管你以后做什么项目都通过这些接口连接外围电路。2)例程。光有代码的例程不是好例程。例程一定要详细、模块化。
MediaTek Filogic 130A Wi-Fi 6 AIoT 边缘运算语音辨识方案
联发科技 MediaTek 全新无线连网系统单芯片 Filogic 130A ( MT7933 ),整合独立音讯数位讯号处理器 ( DSP ) ,可便捷...
设计了一种基于DSP的风电场电能质量检测装置。采用TMS320F28335作为处理器,通过FPGA来完成整个系统的逻辑控制;采用了工业控制中通用的CAN...
2018-12-19 标签:dspDSP技术TMS320F28335 1233 0
类别:DSP 2016-04-25 标签:DSP技术算法TMS320C54x
类别:DSP 2016-04-25 标签:DSP技术算法TMS320C54x
类别:DSP 2016-04-25 标签:DSP技术算法TMS320C54x
【经典回顾】基于AD9361+ ZYNQ软件无线电平台的设计与实现
本文讲解基于ADIAD9361模块AD-FMCOMMS3-EBZ和创龙科技Zynq-7045/7100评估板搭建AD9361RF(RadioFreque...
3. 利用DSP运算功能,克服路经效应。在与相位有关的射频识别检测系统中,如一般用双平衡混频器解调电路的系统,由路程差产生的相位差会使接收灵敏度产生周期...
石油测井中DSP采集系统详解 DSP:数字信号处理器是一种智能微处理器能够搞高效进行各种数字信号处理。 在石油测井中DSP不是一般在常温环境下的采集系统...
FPGA的并发可以在不同逻辑功能之间进行,而不局限于同时执行相同的功能。流水是通过将任务分段,段与段之间同时执行。
计算类芯片也称逻辑电路,是一种离散信号的传递和处理,以二进制为原理、实现数字信号逻辑运算和操作的电路, 它们在计算机、数字控制、通信、自动化和仪表等方面...
dsp技术在手机方面的应用_vivo X9s Plus的DSP技术有多强
vivo在之前的MWC 2017上海站的时候发布了全新DSP芯片影像优化拍照技术,这也是vivo首次在手机上加入这项技术。
2018-01-03 标签:dspdsp技术vivox9splus 6654 0
编辑推荐厂商产品技术软件/工具OS/语言教程专题
电机控制 | DSP | 氮化镓 | 功率放大器 | ChatGPT | 自动驾驶 | TI | 瑞萨电子 |
BLDC | PLC | 碳化硅 | 二极管 | OpenAI | 元宇宙 | 安森美 | ADI |
无刷电机 | FOC | IGBT | 逆变器 | 文心一言 | 5G | 英飞凌 | 罗姆 |
直流电机 | PID | MOSFET | 传感器 | 人工智能 | 物联网 | NXP | 赛灵思 |
步进电机 | SPWM | 充电桩 | IPM | 机器视觉 | 无人机 | 三菱电机 | ST |
伺服电机 | SVPWM | 光伏发电 | UPS | AR | 智能电网 | 国民技术 | Microchip |
开关电源 | 步进电机 | 无线充电 | LabVIEW | EMC | PLC | OLED | 单片机 |
5G | m2m | DSP | MCU | ASIC | CPU | ROM | DRAM |
NB-IoT | LoRa | Zigbee | NFC | 蓝牙 | RFID | Wi-Fi | SIGFOX |
Type-C | USB | 以太网 | 仿真器 | RISC | RAM | 寄存器 | GPU |
语音识别 | 万用表 | CPLD | 耦合 | 电路仿真 | 电容滤波 | 保护电路 | 看门狗 |
CAN | CSI | DSI | DVI | Ethernet | HDMI | I2C | RS-485 |
SDI | nas | DMA | HomeKit | 阈值电压 | UART | 机器学习 | TensorFlow |
Arduino | BeagleBone | 树莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 华秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |