多采样率信号处理在FIR数字滤波器中的应用

作者&投稿:俟看 (若有异议请与网页底部的电邮联系)
IIR数字滤波器与FIR数字滤波器的定义?~

无限脉冲响应滤波器是数位滤波器的一种,简称IIR数位滤波器(infinite impulse response filter)。由于无限脉冲响应滤波器中存在反馈回路,因此对于脉冲输入信号的响应是无限延续的。

有限脉冲响应滤波器是数字滤波器的一种,简称FIR数字滤波器(finite impulse response filter)。这类滤波器对于脉冲输入信号的响应最终趋向于0,因此是有限的,而得名。它是相对于无限脉冲响应滤波器(IIR)而言。

有限脉冲响应滤波器(FIR filter)的优点:
1. 脉冲响应(impulse response)为有限长:造成当输入数位讯号为有限长的时候,输出数位讯号也为有限长。
2. 比无限脉冲响应滤波器(IIR filter)较容易最佳化(optimize)。
3. 线性相位(linear phase):造成h(n)\,是偶对称(even)或奇对称(odd)且有限长。
4. 一定是稳定的(stable):因为Z转换(Z transform)后所有的极点(pole)都在单位圆内。

有限脉冲响应滤波器(FIR filter)的缺点:
设计方式较无限脉冲响应滤波器(IIR filter)不容易。

无限脉冲响应滤波器(IIR filter)的优点:
较容易设计以及实现。

无限脉冲响应滤波器(IIR filter)的缺点:
1. 脉冲响应(impulse response)为无限长:造成当输入数位讯号为有限长的时候,输出数位讯号会变成无限长。
2. 比有限脉冲响应滤波器(FIR filter)较不易最佳化(optimize)。
3. 不一定是稳定的(stable):因为Z转换(Z transform)后所有的极点(pole)不一定都在单位圆内。

reference:w开头的被baidu屏蔽的某网站

具体设计指标如下:
通带截止频率=0.75*pi
阻带截止频率=pi
通带衰减不大于2db
阻带衰减不小于40db
N=42
采样频率=16000Hz

程序:
Wp=0.75*pi;Ws=pi;ap=2;as=40;Fs=16000;Nn=42;T=1/Fs;
wp=2/T*tan(Wp/2); ws=2/T*tan(Ws/2); %技术指标
[N,Wn]=buttord(wp,ws,ap,as,'s'); %计算阶数
[z,p,k]=buttap(N); %计算模拟滤波器原型
[Bap,Aap]=zp2tf(z,p,k); %求出转换中的所需要的零点和极点
[b,a]=lp2lp(Bap,Aap,Wn); %转换为模拟滤波器系数
freqs(b,a);

您的查询字词都已标明如下:什么是dsp 语音 (点击查询词,可以跳到它在文中首次出现的位置)
(百度和网页http://kookl.blogchina.com/3267295.html" http://kookl.blogchina.com/3267295.html的作者无关,不对其内容负责。百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面。)

--------------------------------------------------------------------------------
草不枯Thinking:Java中static用法- -| 回首页 | 2005年索引 | - -我一定是疯了DSP是什么 - -
Tag: DSP是什么

DSP是什么

| 数字信号处理 | 数字信号处理器 | DSP处理器与通用处理器的比较 |

Digital Signal Processing 数字信号处理

作为一个案例研究,我们来考虑数字领域里最通常的功能:滤波。简单地说,滤波就是对信号进行处理,以改善其特性。例如,滤波可以从信号里清除噪声或静电干扰,从而改善其信噪比。为什么要用微处理器,而不是模拟器件来对信号做滤波呢?我们来看看其优越性:
模拟滤波器(或者更一般地说,模拟电路)的性能要取决于温度等环境因素。而数字滤波器则基本上不受环境的影响。
数字滤波易于在非常小的宽容度内进行复制,因为其性能并不取决于性能已偏离正常值的器件的组合。
一个模拟滤波器一旦制造出来,其特性(例如通带频率范围)是不容易改变的。使用微处理器来实现数字滤波器,就可以通过对其重新编程来改变滤波的特性。

信号处理方式的比较

比较因素 模拟方式 数字方式
修改设计的灵活性 修改硬件设计,或调整硬件参数 改变软件设置
精度 元器件精度 A/D的位数和计算机字长,算法
可靠性和可重复性 受环境温度、湿度、噪声、 不受这些因素的影响
电磁场等的干扰和影响大
大规模集成 尽管已有一些模拟集成电路, 但品种较少、集成度不高、价格较高DSP器件体积小、功能强、功耗小、一致性好、使用方便、性能/价格比高
实时性 除开电路引入的延时外,处理是实时的 由计算机的处理速度决定
高频信号的处理 可以处理包括微波毫米波乃至光波信号 按照奈准则的要求,受S/H、A/D和 处理速度的限制

Digital Signal Processor 数字信号处理器

微处理器(Microprocessor)的分类
通用处理器(GPP)
采用冯.诺依曼结构,程序和数据的存储空间合二而一
8-bit Apple(6502),NEC PC-8000(Z80)
8086/286/386/486/Pentium/Pentium II/ Pentium III
PowerPc 64-bit CPU(SUN Sparc,DEC Alpha, HP)
CISC 复杂指令计算机, RISC 精简指令计算机
采取各种方法提高计算速度,提高时钟频率,高速总线,多级Cashe,协处理器等
Single Chip Computer/ Micro Controller Unit(MCU)
除开通用CPU所具有的ALU和CU,还有存储器(RAM/ROM)寄存器,时钟,计数器,定时器,串/并口,有的还有A/D,D/A
INTEL MCS/48/51/96(98)
MOTOROLA HCS05/011
DSP
采用哈佛结构,程序和数据分开存储
采用一系列措施保证数字信号的处理速度,如对FFT的专门优化
MCU与DSP的简单比较
MCU DSP
低档 高档 低档 高档
指令周期(ns) 600 40 50 5
乘加时间(ns) 1900 80 50 5
US$/MIPS 1.5 0.5 0.15 0.1

DSP处理器与通用处理器的比较
考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。

类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件与通用处理器(GPP)的分流:

1 对密集的乘法运算的支持

GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。而DSP处理器使用专门的硬件来实现单周期乘法。DSP处理器还增加了累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为结果bits的额外bits来避免溢出。
同时,为了充分体现专门的乘法-累加硬件的好处,几乎所有的DSP的指令集都包含有显式的MAC指令。

2 存储器结构

传统上,GPP使用冯.诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,做一次乘法会发生4次存储器访问,用掉至少四个指令周期。

大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存贮器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的MAC指令。

还有一个问题,即现在典型的高性能GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,两者还是有重要的区别。

GPP使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)。与此相反,DSP使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中。程序员在写程序时,必须保证处理器能够有效地使用其双总线。

此外,DSP处理器几乎都不具备数据高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。

3 零开销循环

如果了解到DSP算法的一个共同的特点,即大多数的处理时间是花在执行较小的循环上,也就容易理解,为什么大多数的DSP都有专门的硬件,用于零开销循环。所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、条件转移到循环的顶部、将循环计数器减1。

与此相反,GPP的循环使用软件来实现。某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果。

4 定点计算

大多数DSP使用定点计算,而不是使用浮点。虽然DSP的应用必须十分注意数字的精确,用浮点来做应该容易的多,但是对DSP来说,廉价也是非常重要的。定点机器比起相应的浮点机器来要便宜(而且更快)。为了不使用浮点机器而又保证数字的准确,DSP处理器在指令集和硬件方面都支持饱和计算、舍入和移位。

5 专门的寻址方式

DSP处理器往往都支持专门的寻址模式,它们对通常的信号处理操作和算法是很有用的。例如,模块(循环)寻址(对实现数字滤波器延时线很有用)、位倒序寻址(对FFT很有用)。这些非常专门的寻址模式在GPP中是不常使用的,只有用软件来实现。

6 执行时间的预测

大多数的DSP应用(如蜂窝电话和调制解调器)都是严格的实时应用,所有的处理必须在指定的时间内完成。这就要求程序员准确地确定每个样本需要多少处理时间,或者,至少要知道,在最坏的情况下,需要多少时间。

如果打算用低成本的GPP去完成实时信号处理的任务,执行时间的预测大概不会成为什么问题,应为低成本GPP具有相对直接的结构,比较容易预测执行时间。然而,大多数实时DSP应用所要求的处理能力是低成本GPP所不能提供的。

这时候,DSP对高性能GPP的优势在于,即便是使用了高速缓存的DSP,哪些指令会放进去也是由程序员(而不是处理器)来决定的,因此很容易判断指令是从高速缓存还是从存储器中读取。DSP一般不使用动态特性,如转移预测和推理执行等。因此,由一段给定的代码来预测所要求的执行时间是完全直截了当的。从而使程序员得以确定芯片的性能限制。

7 定点DSP指令集

定点DSP指令集是按两个目标来设计的:

使处理器能够在每个指令周期内完成多个操作,从而提高每个指令周期的计算效率。
将存贮DSP程序的存储器空间减到最小(由于存储器对整个系统的成本影响甚大,该问题在对成本敏感的DSP应用中尤为重要)。
为了实现这些目标,DSP处理器的指令集通常都允许程序员在一个指令内说明若干个并行的操作。例如,在一条指令包含了MAC操作,即同时的一个或两个数据移动。在典型的例子里,一条指令就包含了计算FIR滤波器的一节所需要的所有操作。这种高效率付出的代价是,其指令集既不直观,也不容易使用(与GPP的指令集相比)。

GPP的程序通常并不在意处理器的指令集是否容易使用,因为他们一般使用象C或C 等高级语言。而对于DSP的程序员来说,不幸的是主要的DSP应用程序都是用汇编语言写的(至少部分是汇编语言优化的)。这里有两个理由:首先,大多数广泛使用的高级语言,例如C,并不适合于描述典型的DSP算法。其次,DSP结构的复杂性,如多存储器空间、多总线、不规则的指令集、高度专门化的硬件等,使得难于为其编写高效率的编译器。

即便用编译器将C源代码编译成为DSP的汇编代码,优化的任务仍然很重。典型的DSP应用都具有大量计算的要求,并有严格的开销限制,使得程序的优化必不可少(至少是对程序的最关键部分)。因此,考虑选用DSP的一个关键因素是,是否存在足够的能够较好地适应DSP处理器指令集的程序员。

8 开发工具的要求

因为DSP应用要求高度优化的代码,大多数DSP厂商都提供一些开发工具,以帮助程序员完成其优化工作。例如,大多数厂商都提供处理器的仿真工具,以准确地仿真每个指令周期内处理器的活动。无论对于确保实时操作还是代码的优化,这些都是很有用的工具。

GPP厂商通常并不提供这样的工具,主要是因为GPP程序员通常并不需要详细到这一层的信息。GPP缺乏精确到指令周期的仿真工具,是DSP应用开发者所面临的的大问题:由于几乎不可能预测高性能GPP对于给定任务所需要的周期数,从而无法说明如何去改善代码的性能。

DSP硬件结构的特点和软件的特点
硬件结构的特点

1 Harvard结构

程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,从而提高速度,目前的水平已达到90亿次浮点运算/秒(9000MFLOPS)

2 采用流水作业(pipline)

3 独立的硬件乘法器

乘法指令在单周期内完成,优化卷积、数字滤波、FFT、相关、矩阵运算等算法中的大量重复乘法

4 循环寻址(Circular addressing),位倒序(bit-reversed)等特殊指令

使FFT、卷积等运算中的寻址、排序及计算速度大大提高。1024点FFT的时间已小于1μs

5 独立的DMA总线和控制器

有一组或多组独立的DMA总线,与CPU的程序、数据总线并行工作,在不影响CPU工作的条件下,DMA速度已达800Mbyte/s以上

6 多处理器接口

使多个处理器可以很方便的并行或串行工作以提高处理速度

7 JTAG(Joint Test Action Group)标准测试接口(IEEE 1149标准接口)

便于对DSP作片上的在线仿真和多DSP条件下的调试

软件的特点
1 立即数寻址

2 直接寻址

TI公司的TMS320系列芯片将数据存储器分为512页,每页128字。设置一个数据页指针DP(Data Pointer),用9-bit指向一个数据页,再加上一个7-bit的页内偏移地址,形成16-bit的数据地址。这样有利于大大加快寻址速度。

3 间接寻址

8个辅助寄存器(AR0--AR7),由一个辅助寄存器指针(ARP 3-bit)来指定一个辅助寄存器算术单元(ARAU)作16-bit无符号数运算,决定一个新的地址,装入辅助寄存器中的一个

AR0--AR7的内容相当灵活,可以装入立即数,加上立即数,减去立即数;也可以从数据存储器装入地址;还可以作以下的变址寻址:

将该AR的内容加1或减1,再寻址(循环常用)
将该AR的内容加上或减去AR0的内容,再寻址
将该AR的内容逆向进位加上或减去AR0的内容,再寻址

由于采用反向进位,得以实现位倒序寻址

原序 原地址 位倒序后地址 位倒序
0 000 000 0
1 001 100 4
2 010 010 2
3 011 110 6
4 100 001 1
5 101 101 5
6 110 011 3
7 111 111 7
例:MAC X0,Y0,A X:(R0) ,X0 Y:(R4) N4,Y0
这条指令命令DSP56300:

将寄存器X0和Y0中的数相乘
结果加到Acc A中
将寄存器R0所指的X存储器地址中的值装入寄存器X0
将寄存器R4所指的Y存储器地址中的值装入寄存器Y0 R0的值加1
寄存器N4的值加给R4

可以看到,运算后的次序符合FFT的蝶形运算的要求

采用循环寻址实现零开销的循环,大大增进了如卷积、相关、矩阵运算、FIR等算法的实现速度

4 独特的乘法指令

DSP开发工具
1 代码生成工具

C 优化编译器

汇编语言工具
汇编器(Assembler)
连接器(Linker)
归档器(Archiver)
交叉引用列表器(Cross-Reference Lister)
2 系统集成及调试环境与工具(以TI为例)

调试器接口(C/Assembly source debugger)

为嵌入式系统的开发提供了丰富的功能与灵活性。该调试器是下面要讨论的软仿真器、评估模块、在线仿真器等的标准接口。

该调试器可以运行在PC或SPARC等平台上,对用C 或汇编语言写的程序提供完全的控制。其代码分析功能通过快速确认最费时的程序段,提示应该将开发时间集中在什么地方

软仿真器(Simulator)
TMS320软件仿真器是一个软件程序,使用主机的处理器和存储器来仿真TMS320 DSP的微处理器和微计算机模式,从而进行软件开发和非实时的程序验证。在PC机上,典型的仿真速度为每秒几百条指令

DSP入门套件(DSK,DSP Starter Kit)
为初学者设计和生产的DSK是一种用以评价DSP平台的廉价的开发工具。在PC机的DOS或Windows下,用户可以使用DSK来作DSP的实验,进行诸如控制系统、语音处理等应用;也可以用来编写和运行实时源代码,并对其作评估;还可以用来调试用户自己的系统

银杏开发、实验系统(DES,Dsp Expirement System)
银杏DES含有TMS320C542-40及相关接口,还特别内置了信号源,附带虚拟示波器和频谱仪软件。采用这套系统使用户对外设的依赖降到最低,仅仅需要一张卡和一套软件就可以进行DSP的开发或实验。

标准评估模块(EVM)
TMS320的评估模块(EVM)是廉价的开发板,用于器件评估、标准程序检查、以及有限的系统调试。EVM是一个PC插件,包括目标处理器、一个小容量的存储器、和有限的外设。EVM可以用来实时运行代码,并与外部系统接口

TMS320硬件仿真器(Emulators)

扩展开发系统(XDS,extended development system)是功能强大的全速仿真器,用以作系统级的集成与调试。

扫描式仿真(Scan-Based Emulator)是一种独特的、非插入式的系统仿真、集成、调试方法。使用这种方法,程序可以从片内或片外的目标存储器实时执行,在任何时钟速度下都不会引入额外的等待状态

3 实时操作系统

对于简单的DSP任务,用前面介绍的开发工具已能满足开发任务的需要,往往不需要操作系统就可以进行。但当DSP的任务增加和任务的复杂性提高,例如对实时性要求很高的多DSP并行操作的多任务系统,可能就需要某种操作系统来管理系统的资源,安排多任务的执行和任务间的信息交换等

DSP的操作系统SPOX
SPOX是专为DSP系统设计和软件开发而设计的实时多任务操作系统。它提供一组由C语言调用的功能,与所开发的硬件平台无关,从而将DSP的实时应用部分从许多低层的硬件细节中隔离出来。它作为DSP实时应用开发的一个集成环境,完成从新的算法概念出发,直到把应用软件装入产品硬件的整个开发任务

DSP芯片介绍
1 什么是DSP芯片
DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP 指令,可以用来快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:

(1) 在一个指令周期内可完成一次乘法和一次加法。

(2) 程序和数据空间分开,可以同时访问指令和数据。

(3) 片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。

(4) 具有低开销或无开销循环及跳转的硬件支持。

(5) 快速的中断处理和硬件I/O支持。

(6) 具有在单周期内操作的多个硬件地址产生器。

(7) 可以并行执行多个操作。

(8) 支持流水线操作,使取指、译码和执行等操作可以重叠执行。

与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

2 DSP芯片的发展

世界上第一个单片DSP芯片是1978年AMI公司宣布的S2811,1979年美国Iintel公司发布的商用可编程期间2920是DSP芯片的一个主要里程碑。这两种芯片内部都没有现代DSP芯片所必须的单周期芯片。 1980年。日本NEC公司推出的μPD7720是第一个具有乘法器的商用DSP 芯片。第一个采用CMOS工艺生产浮点DSP芯片的是日本的Hitachi 公司,它于1982年推出了浮点DSP芯片。1983年,日本的Fujitsu公司推出的MB8764,其指令周期为120ns ,且具有双内部总线,从而处理的吞吐量发生了一个大的飞跃。而第一个高性能的浮点DSP芯片应是AT

您的查询字词都已标明如下:什么是dsp 语音 (点击查询词,可以跳到它在文中首次出现的位置)
(百度和网页http://kookl.blogchina.com/3267295.html" http://kookl.blogchina.com/3267295.html的作者无关,不对其内容负责。百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面。)

--------------------------------------------------------------------------------
草不枯Thinking:Java中static用法- -| 回首页 | 2005年索引 | - -我一定是疯了DSP是什么 - -
Tag: DSP是什么

DSP是什么

| 数字信号处理 | 数字信号处理器 | DSP处理器与通用处理器的比较 |

Digital Signal Processing 数字信号处理

作为一个案例研究,我们来考虑数字领域里最通常的功能:滤波。简单地说,滤波就是对信号进行处理,以改善其特性。例如,滤波可以从信号里清除噪声或静电干扰,从而改善其信噪比。为什么要用微处理器,而不是模拟器件来对信号做滤波呢?我们来看看其优越性:
模拟滤波器(或者更一般地说,模拟电路)的性能要取决于温度等环境因素。而数字滤波器则基本上不受环境的影响。
数字滤波易于在非常小的宽容度内进行复制,因为其性能并不取决于性能已偏离正常值的器件的组合。
一个模拟滤波器一旦制造出来,其特性(例如通带频率范围)是不容易改变的。使用微处理器来实现数字滤波器,就可以通过对其重新编程来改变滤波的特性。

信号处理方式的比较

比较因素 模拟方式 数字方式
修改设计的灵活性 修改硬件设计,或调整硬件参数 改变软件设置
精度 元器件精度 A/D的位数和计算机字长,算法
可靠性和可重复性 受环境温度、湿度、噪声、 不受这些因素的影响
电磁场等的干扰和影响大
大规模集成 尽管已有一些模拟集成电路, 但品种较少、集成度不高、价格较高DSP器件体积小、功能强、功耗小、一致性好、使用方便、性能/价格比高
实时性 除开电路引入的延时外,处理是实时的 由计算机的处理速度决定
高频信号的处理 可以处理包括微波毫米波乃至光波信号 按照奈准则的要求,受S/H、A/D和 处理速度的限制

Digital Signal Processor 数字信号处理器

微处理器(Microprocessor)的分类
通用处理器(GPP)
采用冯.诺依曼结构,程序和数据的存储空间合二而一
8-bit Apple(6502),NEC PC-8000(Z80)
8086/286/386/486/Pentium/Pentium II/ Pentium III
PowerPc 64-bit CPU(SUN Sparc,DEC Alpha, HP)
CISC 复杂指令计算机, RISC 精简指令计算机
采取各种方法提高计算速度,提高时钟频率,高速总线,多级Cashe,协处理器等
Single Chip Computer/ Micro Controller Unit(MCU)
除开通用CPU所具有的ALU和CU,还有存储器(RAM/ROM)寄存器,时钟,计数器,定时器,串/并口,有的还有A/D,D/A
INTEL MCS/48/51/96(98)
MOTOROLA HCS05/011
DSP
采用哈佛结构,程序和数据分开存储
采用一系列措施保证数字信号的处理速度,如对FFT的专门优化
MCU与DSP的简单比较
MCU DSP
低档 高档 低档 高档
指令周期(ns) 600 40 50 5
乘加时间(ns) 1900 80 50 5
US$/MIPS 1.5 0.5 0.15 0.1

DSP处理器与通用处理器的比较
考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。

类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件与通用处理器(GPP)的分流:

1 对密集的乘法运算的支持

GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。而DSP处理器使用专门的硬件来实现单周期乘法。DSP处理器还增加了累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为结果bits的额外bits来避免溢出。
同时,为了充分体现专门的乘法-累加硬件的好处,几乎所有的DSP的指令集都包含有显式的MAC指令。

2 存储器结构

传统上,GPP使用冯.诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,做一次乘法会发生4次存储器访问,用掉至少四个指令周期。

大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存贮器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的MAC指令。

还有一个问题,即现在典型的高性能GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,两者还是有重要的区别。

GPP使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)。与此相反,DSP使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中。程序员在写程序时,必须保证处理器能够有效地使用其双总线。

此外,DSP处理器几乎都不具备数据高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。

3 零开销循环

如果了解到DSP算法的一个共同的特点,即大多数的处理时间是花在执行较小的循环上,也就容易理解,为什么大多数的DSP都有专门的硬件,用于零开销循环。所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、条件转移到循环的顶部、将循环计数器减1。

与此相反,GPP的循环使用软件来实现。某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果。

4 定点计算

大多数DSP使用定点计算,而不是使用浮点。虽然DSP的应用必须十分注意数字的精确,用浮点来做应该容易的多,但是对DSP来说,廉价也是非常重要的。定点机器比起相应的浮点机器来要便宜(而且更快)。为了不使用浮点机器而又保证数字的准确,DSP处理器在指令集和硬件方面都支持饱和计算、舍入和移位。

5 专门的寻址方式

DSP处理器往往都支持专门的寻址模式,它们对通常的信号处理操作和算法是很有用的。例如,模块(循环)寻址(对实现数字滤波器延时线很有用)、位倒序寻址(对FFT很有用)。这些非常专门的寻址模式在GPP中是不常使用的,只有用软件来实现。

6 执行时间的预测

大多数的DSP应用(如蜂窝电话和调制解调器)都是严格的实时应用,所有的处理必须在指定的时间内完成。这就要求程序员准确地确定每个样本需要多少处理时间,或者,至少要知道,在最坏的情况下,需要多少时间。

如果打算用低成本的GPP去完成实时信号处理的任务,执行时间的预测大概不会成为什么问题,应为低成本GPP具有相对直接的结构,比较容易预测执行时间。然而,大多数实时DSP应用所要求的处理能力是低成本GPP所不能提供的。

这时候,DSP对高性能GPP的优势在于,即便是使用了高速缓存的DSP,哪些指令会放进去也是由程序员(而不是处理器)来决定的,因此很容易判断指令是从高速缓存还是从存储器中读取。DSP一般不使用动态特性,如转移预测和推理执行等。因此,由一段给定的代码来预测所要求的执行时间是完全直截了当的。从而使程序员得以确定芯片的性能限制。

7 定点DSP指令集

定点DSP指令集是按两个目标来设计的:

使处理器能够在每个指令周期内完成多个操作,从而提高每个指令周期的计算效率。
将存贮DSP程序的存储器空间减到最小(由于存储器对整个系统的成本影响甚大,该问题在对成本敏感的DSP应用中尤为重要)。
为了实现这些目标,DSP处理器的指令集通常都允许程序员在一个指令内说明若干个并行的操作。例如,在一条指令包含了MAC操作,即同时的一个或两个数据移动。在典型的例子里,一条指令就包含了计算FIR滤波器的一节所需要的所有操作。这种高效率付出的代价是,其指令集既不直观,也不容易使用(与GPP的指令集相比)。

GPP的程序通常并不在意处理器的指令集是否容易使用,因为他们一般使用象C或C 等高级语言。而对于DSP的程序员来说,不幸的是主要的DSP应用程序都是用汇编语言写的(至少部分是汇编语言优化的)。这里有两个理由:首先,大多数广泛使用的高级语言,例如C,并不适合于描述典型的DSP算法。其次,DSP结构的复杂性,如多存储器空间、多总线、不规则的指令集、高度专门化的硬件等,使得难于为其编写高效率的编译器。

即便用编译器将C源代码编译成为DSP的汇编代码,优化的任务仍然很重。典型的DSP应用都具有大量计算的要求,并有严格的开销限制,使得程序的优化必不可少(至少是对程序的最关键部分)。因此,考虑选用DSP的一个关键因素是,是否存在足够的能够较好地适应DSP处理器指令集的程序员。

8 开发工具的要求

因为DSP应用要求高度优化的代码,大多数DSP厂商都提供一些开发工具,以帮助程序员完成其优化工作。例如,大多数厂商都提供处理器的仿真工具,以准确地仿真每个指令周期内处理器的活动。无论对于确保实时操作还是代码的优化,这些都是很有用的工具。

GPP厂商通常并不提供这样的工具,主要是因为GPP程序员通常并不需要详细到这一层的信息。GPP缺乏精确到指令周期的仿真工具,是DSP应用开发者所面临的的大问题:由于几乎不可能预测高性能GPP对于给定任务所需要的周期数,从而无法说明如何去改善代码的性能。

DSP硬件结构的特点和软件的特点
硬件结构的特点

1 Harvard结构

程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,从而提高速度,目前的水平已达到90亿次浮点运算/秒(9000MFLOPS)

2 采用流水作业(pipline)

3 独立的硬件乘法器

乘法指令在单周期内完成,优化卷积、数字滤波、FFT、相关、矩阵运算等算法中的大量重复乘法

4 循环寻址(Circular addressing),位倒序(bit-reversed)等特殊指令

使FFT、卷积等运算中的寻址、排序及计算速度大大提高。1024点FFT的时间已小于1μs

5 独立的DMA总线和控制器

有一组或多组独立的DMA总线,与CPU的程序、数据总线并行工作,在不影响CPU工作的条件下,DMA速度已达800Mbyte/s以上

6 多处理器接口

使多个处理器可以很方便的并行或串行工作以提高处理速度

7 JTAG(Joint Test Action Group)标准测试接口(IEEE 1149标准接口)

便于对DSP作片上的在线仿真和多DSP条件下的调试

软件的特点
1 立即数寻址

2 直接寻址

TI公司的TMS320系列芯片将数据存储器分为512页,每页128字。设置一个数据页指针DP(Data Pointer),用9-bit指向一个数据页,再加上一个7-bit的页内偏移地址,形成16-bit的数据地址。这样有利于大大加快寻址速度。

3 间接寻址

8个辅助寄存器(AR0--AR7),由一个辅助寄存器指针(ARP 3-bit)来指定一个辅助寄存器算术单元(ARAU)作16-bit无符号数运算,决定一个新的地址,装入辅助寄存器中的一个

AR0--AR7的内容相当灵活,可以装入立即数,加上立即数,减去立即数;也可以从数据存储器装入地址;还可以作以下的变址寻址:

将该AR的内容加1或减1,再寻址(循环常用)
将该AR的内容加上或减去AR0的内容,再寻址
将该AR的内容逆向进位加上或减去AR0的内容,再寻址

由于采用反向进位,得以实现位倒序寻址

原序 原地址 位倒序后地址 位倒序
0 000 000 0
1 001 100 4
2 010 010 2
3 011 110 6
4 100 001 1
5 101 101 5
6 110 011 3
7 111 111 7
例:MAC X0,Y0,A X:(R0) ,X0 Y:(R4) N4,Y0
这条指令命令DSP56300:

将寄存器X0和Y0中的数相乘
结果加到Acc A中
将寄存器R0所指的X存储器地址中的值装入寄存器X0
将寄存器R4所指的Y存储器地址中的值装入寄存器Y0 R0的值加1
寄存器N4的值加给R4

可以看到,运算后的次序符合FFT的蝶形运算的要求

采用循环寻址实现零开销的循环,大大增进了如卷积、相关、矩阵运算、FIR等算法的实现速度

4 独特的乘法指令

DSP开发工具
1 代码生成工具

C 优化编译器

汇编语言工具
汇编器(Assembler)
连接器(Linker)
归档器(Archiver)
交叉引用列表器(Cross-Reference Lister)
2 系统集成及调试环境与工具(以TI为例)

调试器接口(C/Assembly source debugger)

为嵌入式系统的开发提供了丰富的功能与灵活性。该调试器是下面要讨论的软仿真器、评估模块、在线仿真器等的标准接口。

该调试器可以运行在PC或SPARC等平台上,对用C 或汇编语言写的程序提供完全的控制。其代码分析功能通过快速确认最费时的程序段,提示应该将开发时间集中在什么地方

软仿真器(Simulator)
TMS320软件仿真器是一个软件程序,使用主机的处理器和存储器来仿真TMS320 DSP的微处理器和微计算机模式,从而进行软件开发和非实时的程序验证。在PC机上,典型的仿真速度为每秒几百条指令

DSP入门套件(DSK,DSP Starter Kit)
为初学者设计和生产的DSK是一种用以评价DSP平台的廉价的开发工具。在PC机的DOS或Windows下,用户可以使用DSK来作DSP的实验,进行诸如控制系统、语音处理等应用;也可以用来编写和运行实时源代码,并对其作评估;还可以用来调试用户自己的系统

银杏开发、实验系统(DES,Dsp Expirement System)
银杏DES含有TMS320C542-40及相关接口,还特别内置了信号源,附带虚拟示波器和频谱仪软件。采用这套系统使用户对外设的依赖降到最低,仅仅需要一张卡和一套软件就可以进行DSP的开发或实验。

标准评估模块(EVM)
TMS320的评估模块(EVM)是廉价的开发板,用于器件评估、标准程序检查、以及有限的系统调试。EVM是一个PC插件,包括目标处理器、一个小容量的存储器、和有限的外设。EVM可以用来实时运行代码,并与外部系统接口

TMS320硬件仿真器(Emulators)

扩展开发系统(XDS,extended development system)是功能强大的全速仿真器,用以作系统级的集成与调试。

扫描式仿真(Scan-Based Emulator)是一种独特的、非插入式的系统仿真、集成、调试方法。使用这种方法,程序可以从片内或片外的目标存储器实时执行,在任何时钟速度下都不会引入额外的等待状态

3 实时操作系统

对于简单的DSP任务,用前面介绍的开发工具已能满足开发任务的需要,往往不需要操作系统就可以进行。但当DSP的任务增加和任务的复杂性提高,例如对实时性要求很高的多DSP并行操作的多任务系统,可能就需要某种操作系统来管理系统的资源,安排多任务的执行和任务间的信息交换等

DSP的操作系统SPOX
SPOX是专为DSP系统设计和软件开发而设计的实时多任务操作系统。它提供一组由C语言调用的功能,与所开发的硬件平台无关,从而将DSP的实时应用部分从许多低层的硬件细节中隔离出来。它作为DSP实时应用开发的一个集成环境,完成从新的算法概念出发,直到把应用软件装入产品硬件的整个开发任务

DSP芯片介绍
1 什么是DSP芯片
DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP 指令,可以用来快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:

(1) 在一个指令周期内可完成一次乘法和一次加法。

(2) 程序和数据空间分开,可以同时访问指令和数据。

(3) 片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。

(4) 具有低开销或无开销循环及跳转的硬件支持。

(5) 快速的中断处理和硬件I/O支持。

(6) 具有在单周期内操作的多个硬件地址产生器。

(7) 可以并行执行多个操作。

(8) 支持流水线操作,使取指、译码和执行等操作可以重叠执行。

与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

2 DSP芯片的发展

世界上第一个单片DSP芯片是1978年AMI公司宣布的S2811,1979年美国Iintel公司发布的商用可编程期间2920是DSP芯片的一个主要里程碑。这两种芯片内部都没有现代DSP芯片所必须的单周期芯片。 1980年。日本NEC公司推出的μPD7720是第一个具有乘法器的商用DSP 芯片。第一个采用CMOS工艺生产浮点DSP芯片的是日本的Hitachi 公司,它于1982年推出了浮点DSP芯片。1983年,日本的Fujitsu公司推出的MB8764,其指令周期为120ns ,且具有双内部总线,从而处理的吞吐量发生了一个大的飞跃。而第一个高性能的浮点DSP芯片应是AT


FFT怎样处理音频数字信号的
当然是数字信号咯,假如音频信号的采样率为8K ,进行 256点的FFT变换后到频域,实际上将0-8K的音频信号在频域上分成了256份

“SR”作为“采样率”的英文缩写,其在数据采集系统中的重要性如何?_百 ...
英语缩写"SR"在技术领域中广泛代表"Sampling Rate",即中文的“采样率”。采样率是数据采集和信号处理中至关重要的参数,它决定了系统对信号频率响应的能力以及抗干扰性能。在数据采集系统中,高采样率、分辨率和抗干扰能力的需求日益增长,尤其是在处理模拟信号时,如软件无线电系统中的采样率转换问题,就...

雷达信号处理基础-采样理论
上面的式子中,如果我们考虑角频率单位的话,则需要再乘以2π,也就是说,我们取得采样频率Fs需要大于信号x(u)的频域带宽,即 通过这个关系,可以确定脉冲回波的采样率,以及多普勒处理的采样率,相控阵天线阵元的间距等等。下面举个例子,给出信号x(u)在频域的结果,考虑其带宽为βf,带限于± βf\/2...

软件无线电系列——多率信号处理之抽取
抽取过程的关键在于低通滤波后采样。例如,如果目标信号在零频附近,其他信号可通过滤波消除,采样速率随之降低,同时保持信号完整性。这种将高采样率信号降至低采样率的过程,称为多率信号处理中的抽取。抽取技术包括低通信号的整数倍抽取,即每D个数据抽取一个,形成新序列。若原始信号频谱过大,可能产生...

数字信号处理中的各种频率
你只需要关心n=0到7以内的频谱就足够了,因为,原来信号的最高模拟频率是32kHz。 这里可以有两个结论:在数字信号处理时,经常需要对数据进行抽取或者内插处理.抽取之后的频率展宽了n倍,内插之后的频率压缩了n倍,从而需要在变采样率之后添加 抗混叠滤波器 .但是实际上信号的频率在抽取\/内插的前后并...

清华大学 数字信号处理怎么样
学习离散信号的变换,离散变换的快速算法,信号的频谱分析,FIR和IIR滤波器的结构和设计,多采样率信号处理,有限长效应。自适应处理初步。不是很重的课,学的东西比较多,也比较实用

采样频率需要大于信号最高频率的多少倍才能完整保留信息?
它赋予了我们一个至关重要的准则:只要采样率足够,我们就能通过有限带宽的连续信号,捕获并保留住所有蕴含的信息。这个原理在现代通信、音频处理和数字信号处理的各个角落中,发挥着不可估量的作用。采样定理,不仅是一则技术准则,更是信号世界向数字化进军的灯塔。掌握它,你就掌握了通往数字信号处理世界...

为什么老示波器没有采样率这个参数
老示波器没有采样率这个参数的原因主要有以下几点:1. 技术限制:老示波器采用的是模拟信号处理技术,无法进行数字信号的采样和处理,因此无法定义采样率这个参数。2. 功能限制:老示波器的设计初衷是用来观察波形的形状和幅度,而不是对信号的细节进行精确的测量和分析。3. 用户需求:在老示波器问世的时代...

软件无线电之126:数字信号处理采样库函数
4. y = resample(x, p, q, b):直接提供滤波器系数向量b进行重采样。5. [y, b] = resample(x, p, q):返回滤波器系数向量b。接下来是upsample函数,用于将采样率提高整数倍,先插值后滤波:y = upsample(x, n)或y = upsample(x, n, phase),前者在样本间插入(n - 1)个零,后者...

matlab中什么是降采样和降采样率
降采样和降采样率在MATLAB中的含义 在MATLAB中,降采样是一种数字信号处理技术,用于减少信号的采样频率。而降采样率则是指原始采样频率与降采样后的采样频率之间的比率。降采样的详细解释 1. 降采样的概念:降采样,也称为下采样或亚抽样,是在不丢失信息的前提下减少数据的一种方法。在信号处理中,...

庄河市18434445388: 简述 频率采样法设计FIR数字滤波器的步骤! -
郸婉贝林: 第一步:确定希望逼近的理想滤波器的频率响应 第二步:在频域内对进行N点等间隔采样,利用频率采样设计公式求频率采样值Hd(k),采样间隔△ω=2π/N=O.1 π,这样在通带内共有3个采样点,分别是k=0,1,2.利用频率采样设计式(10)和式...

庄河市18434445388: 采用数字信号处理方法对测试信号进行分析前,必须对所获取的模拟信号进行哪些预处理工作? -
郸婉贝林: 通过采样(离散化——时域预处——fft(傅立叶变换)——频域分析,处理(滤波等)——ifft(傅里叶逆变换)变为数字信号.

庄河市18434445388: 如何用频率抽样法设计一个FIR线性相位数字低通滤波器 -
郸婉贝林: 幅频特性要求(通带截止频率ωp=0.5π,通带最大衰减αp=0.5 dB,阻带截止 频率ωs=0.6π,阻带最小衰减αs=50 dB)取得DLPF的X(K); %wp=0.2pi,ws=0.3pi,Rp=0.25dB,As=50dB %T1=0.5925,T2=0.1099 M=60;alpha=(M-1)/2;l=0:M-1;wl=(2*pi/M)*l;...

庄河市18434445388: IIR数字滤波器的区别 -
郸婉贝林: IIR数字滤波器与FIR数字滤波器的区别 2.1、单位响应 IIR滤波器的单位脉冲响应为无限长,网络中有反馈回路.FIR(Finite Impulse Response)滤波器的单位脉冲响应是有限长的,一般网络中没有反馈回路. FIR滤波器的系统函数一般是一个有理分...

庄河市18434445388: 什么是FIR系统,IIR系统 -
郸婉贝林: 数字滤波器分为两类IIR和FIR.FIR和IIR的滤波原理都是进行卷积,说白了就是对数入信号进行某种计算.FIR用处就在于对数字信号进行必要的处理,得到所需的输出信号.

庄河市18434445388: 信号处理降采样问题 -
郸婉贝林: 用高采样率采样可能的目的有两个,1、本来配合模拟的抗混淆滤波器用低采样率就可以满足要求,但为了不用模拟的抗混淆滤波器,就必须用高采样率采样,然后用数字滤波器起到模拟抗混淆滤波的作用,之后再用低采样率采样做频谱分析等处理;2、采用频率细化技术时,也要先用高采样率采样,之后进行频谱分析时再按细化需要做重采样.

庄河市18434445388: 数字信号处理中经典滤波器包括哪些滤波器? 谢谢了 -
郸婉贝林: IIR数字滤波器 FIR数字滤波器

庄河市18434445388: 数字信号处理,h(n) 实序列FIR滤波器,求H(k) -
郸婉贝林: 这要看你其他的条件 FIR滤波器具有严格的线性相位,而其具有线性相位的条件是 偶对称:h(n) = h(N-1-n) 奇对称:h(n) = -h(N-1-n) 且h(n)为实数

庄河市18434445388: matlab中用频率采样法设计FIR数字滤波器的时候用什么语句验证通带波动和阻带衰减是否符合要求?在线等 -
郸婉贝林: Rp = -min(db(1:fix(wp1/dw)+1)) % 实际的通带波动 As = -round(max(db(fix(ws1/dw)+1:501))) % 最小阻带衰减

庄河市18434445388: 这句话中FIR是什么意思 -
郸婉贝林: FIR是有限冲激响应(Finite Impulse Response)的简称. FIR滤波器是在数字信号处理(DSP)中经常使用的两种基本的滤波器之一,另一个为IIR滤波器.IIR滤波器是无限冲激响应滤波器.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网