DSP、嵌入式、软件试题_第1页
DSP、嵌入式、软件试题_第2页
DSP、嵌入式、软件试题_第3页
DSP、嵌入式、软件试题_第4页
DSP、嵌入式、软件试题_第5页
已阅读5页,还剩43页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.5khz的正弦波,采样频率40khz,取16个周期,问一共多少个点(N)?然后对采样数据

做N点dft,问dft后其中有非零值的点是哪些

2.给出一个H(「jw)=1-Z0*e7-jw),其中Z0为不在单位圆上的零点证明其群延迟

为Re(Z0*e"(-jw)/(Z0*e~(-jw)-1))

3.给出一个m*n的矩阵A,满足什么fullrank然后证明一个方程的解是一条我看不懂的

式子的最小值...ToT

4.求扔两个色子得到7的概率...没了--到现场看几乎都是研究生...?==看来我也就

能去玩玩而已...

DSP、嵌入式、软件试题

2006-10-1613:22

1、请用方框图描述一个你熟悉的实用数字信号处理系统,并做简要的分析;如

果没有,也可以自己设计一个简单的数字信号处理系统,并描述其功能及用途。

(仕兰微面试题

R)

2、数字滤波器的分类和结构特点。(仕兰微面试题目)

3、TTR.FTR滤波器的异同°(新太硬件面题)

4、拉氏变换与Z变换公式等类似东西,随便翻翻书把

如.h(n)=-a*h(nT)+b*8(n)a.求h(n)的z变换;b.问该系统是否为稳定系统;

c.写出FIR数字滤波器的差分方程;(未知)

5、DSP和通用处理器在结构上有什么不同,请简要画出你熟悉的一种DSP结构

图。(信威dsp软件面试题)

6、说说定点DSP和浮点DSP的定义(或者说出他们的区别)(信威dsp软件面

试题)

7、说说你对循环寻址和位反序寻址的理解.(信威dsp软件面试题)

8、请写出[-8,7]的二进制补码,和二进制偏置码。用Q15表示出0.5和一

0.5.(信威

dsp软件面试题)

9、DSP的结构(哈佛结构);(未知)

10、嵌入式处理器类型(如ARM),操作系统种类(Vxworks,ucos,winCE,linux),

操作系统方面偏CS方向了,在CS篇里面讲了;(未知)

11、有一个LDO芯片将用于对手机供电,需要你对他进行评估,你将如何设计你

的测试项目?

12、某程序在一个嵌入式系统(200MCPU,50MSDRAM)中已经最优化了,换到

零一个系统(300MCPU,50MSDRAM)中是否还需要优化?(Intel)

13、请简要描述HUFFMAN编码的基本原理及其基本的实现方法。(仕兰微面试题

目)

14、说出0SI七层网络协议中的四层(任意四层)。(仕兰微面试题目)

15、A)(仕兰微面试题目)

#include

voidtestf(int*p)

*p+=l;

)

main()

(

int*n,m[2];

n=m;

m[O]=l;

testf(n);

printf(''Datavalueis%d”,*n);

B)

#include

voidtestf(int**p)

*p+=l;

main()

{int*n,m[2];

n=m;

testf(&n);

printf(Datavalueis%d〃,*n);

}

下面的结果是程序A还是程序B的?

Datavalueis8

那么另一段程序的结果是什么?

16、那种排序方法最快?(华为面试题)

17、写出两个排序算法,问哪个好?(威盛)

18>编一个简单的求n!的程序。(Infineon笔试试题)

19、用一种编程语言写n!的算法。(威盛VIA2003.11.06上海笔试试题)

20、用C语言写一个递归算法求N!;(华为面试题)

21、给一个C的函数,关于字符串和数组,找出错误;(华为面试题)

22、防火墙是怎么实现的?(华为面试题)

23、你对哪方面编程熟悉?(华为面试题)

24、冒泡排序的原理。(新太硬件面题)

25、操作系统的功能。(新太硬件面题)

26、学过的计算机语言及开发的系统。(新太硬件面题)

27、一个农夫发现围成正方形的围栏比长方形的节省4个木桩但是面积一样.羊

的数目和正方形围栏的桩子的个数一样但是小于36,问有多少羊?(威盛)

28、C语言实现统计某个cell在某.v文件调用的次数(这个题目真bt)(威盛

VIA

2003.11.06上海笔试试题)

29、用C语言写一段控制手机中马达振子的驱动程序。(威胜)

30、用perl或TCL/Tk实现一段字符串识别和比较的程序。(未知)

31、给出一个堆栈的结构,求中断后显示结果,主要是考堆栈压入返回地址存放

在低端地址还是高端。(未知)

32、一些DOS命令,如显示文件,拷贝,删除。(未知)

33、设计一个类,使得该类任何形式的派生类无论怎么定义和实现,都无法产生

任何对象实例。(IBM)

34、Whatispre-emption?(Intel)

35、Whatisthestateofaprocessifaresourceisnotavailable?(Intel)

36、三个floata,b,c;问值(a+b)+c==(b+a)+c,(a+b)+c==(a+c)+bo(Intel)

37、把一个链表反向填空。(lucent)

38>x4+a*x3+x2+c*x+d最少需要做儿次乘法?(Dcphi)

1)DSP和通用处理器在结构上有什么不同,请简要画出你熟悉

的一种DSP结构图

2)说说定点DSP和浮点DSP的定义(或者说出他们的区别)

3)说说你对循环寻址和位反序寻址的理解

4)请写出【-8,7]的二进剖补码,和二进制偏置码。

用Q15表示出0.5和-0.5

DSP的题。

下面是,是我还记得的些题。欢迎大家多交流,补充。请不要向外转载

parti(必答题20题,以下没有按原来顺序写)

1.

冯诺依曼结构和哈佛结构的区别。

2.用16位有符号数表示0.7,并写出过程

3.

香农定理,过采样,及为什么要过采样,降采样,为什么要降采样。

4.

FIR与IIR的区别。

5.

littleendian与bigendian的区别。

6:

realtimeOS与通用OS的区别

7:写出双向链表的插入,和删除操作。

8:TASK与task的区别

9,通信系统的组成。什么是信源,信道编码??作用

10:中断程序应该注意什么??如果一个中断要持续很长时间,应该怎么做??

11.静态变量怎么使用??

12:

动态分配变量和糅放函数使用时应注意什么??如果,有一个模块中的一校部分需要频繁的

**,应该

怎么优化??

13:编写ULTRADrive和PC之间通信的程序。怎样实现自动速率调整。。

览439次,评论0次,投票0次)

都是英文的题目

1o设计一个4输入的7段LED驱动器,并写出testbench

2»解释什么叫phasenoise和jitter,怎样尽量减小jitter

解释什么叫skew,怎样尽量减小skew

3。选作其一

1)解释什么是cpu的实模式,什么是保护模式

2)解释什么是ADC的INL和DNL5a880faf6f©应届生求职网

YingJicShcng.COM©c350adc2a4

4O英文作文,你最喜欢什么课?你学到了什么?为什么?200words

a)什么是Setup和Holdup时间?

建立时间(setuptime)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时

间不够,数据将不能在这个时钟上升沿被打入触发器:保持时间(holdtime)是指在触发器的时钟信号上

升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发糊。

b)什么是竞争与冒险现象?怎样判断?如何消除?

信号在FPGA器件内部通过连战和逻世单元时,都有一定的延时.延时的大小与连嫉的长短和逻辑单元

的数目有关,同时还受器件的制造T.艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定

的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输

出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为"毛刺"。如果一个

组合逻辑电路中有“毛刺”出现,就说明该电路存在“冒险”。用D触发器,格雷码计数器,同步电路等优秀

的设计方案可以消除。

c)请画出用D触发器实现2倍分频的逻辑电路?

就是把D触发器的输出端加非门接到D端。

d)什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?

将几个0C门结构与非门输出并联,当每个0C门输出为高电平时,总输出才为高,这种连接方式称为线

与。

e)什么是同步逻辑和异步逻辑?

整个设计中只有一个全局时钟成为同步逻辑。

多时钟系统逻辑设计成为异步逻辑。

f)请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲

器)。

是不是结构图?

g)你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?

TTL,emos.不能直连

LVDS:LVDS(LowVoltageDifferentialSignal)即低电压差分信号,LVDS接口又称RS644总线接口,

是20世纪90年代才出现的一种数据传输和接口技术。

ECL:(EmitterCoupledLogic)即射极耦合逻辑,是带有射随输出结构的典型输入输出接口电路

CML:CML电平是所有高速数据接口中最简单的一种。其输入和输出是匹配好的,减少了外围器件,适

合于更高频段工作。

收薇此页到365K

G.729在DSP应用中代码优化研究

sailing发表于2006-9-316:07:48

摘要:对G.729编解码算法和TMS320c54x的原理进行了介绍,并介绍了如何

实现该算法和优化代码。

关键词:G.729;编码器;解码器;优化;TMS320C54X

ResearchofCodeOptimizationBasedonG.729forDSPApplication

LIUWeichao,LIFuhai

(CollegeofElectricalandInformationEngineering,HunanUniversity,Changsha,4100

82,China)

Abstract:ThispapercontainsthedescriptionofEncodeanddecodealgorithmf

ortheG.729andtheprincipleoftheTMS320C54x,andintroduceshowtorealizethe

algrithmandoptimizecode

Keywords:G.729:encoder:decoder;optimize:TMS320C54x

1G.729编解码算法简介

G.729是ITU组织于1995年正式批准的,命名为G.729建议。该建议采用

共朝结构[CD2]代数码激励线性预测(CSACELP)算法,其带宽约4kHz,工作速

率为8kb/s,M0S在4.0左右,语音质量同32kb/s的ADPCM相当。因此,G.

729被广泛应用于DSVD、数字卫星系统、电视会议、可视电话、IP电话及各种

多媒体通信系统中。

1.1编码器

编码器是基于码激励线性预测(CELP)编码模型的,采样率为8kHz,每1

0ms对应80个采样点为1帧。编码器原理如图1所示。

ffl1屈码m原以图screen,width-500){this,style.width=screen.

width-500);*border=0>

语音信号先进入预处理模块,信号经过高通滤波和信号幅度衰减后,再作为

后续模块分析的信号。每10ms帧将进行一次LP分析以计算出LP滤波器参数,

这些参数被转换为LSP参数,并利用预测式两级矢量量化将其量化为18bo激

励信号应用分析合成(ABS)搜索算法进行选择。在该算法中,依据感觉加权失

真测度使原始与重建语音信号间的误差最小。这是通过用感觉加权滤波器对误差

信号滤波来完成的,滤波器系数由未量化LP滤波器推得。感觉加权的数目通过

自适应以提高效果,使输入信号具有平坦的频响。

激励参数(固定和自适应码书参数)每5ms(40样点)子帧确定一次。量化和

未量化的LP滤波器系数应用到第二子帧,采用了插值LP滤波器系数(量化和未

量化的)。一个开环基音延迟每10ms帧基于感觉加权语音信号估算一次,然后

以下操作每子帧重复一次。使LP残差通过加权合成滤波器W(z)/A(z)滤波算得

目标信号X(n)。这些滤波器的初始状态,是通过对LP残差与激励间的误差进

行滤波来更新的。这与通常的方法即从加权语音信号中减去加权合成滤波器的零

输入响应是等价的。算得加权合成滤波器的冲击响应h(n),然后进行闭环基音分

析(以寻找自适应码书和增益),利用目标信号X(n)和冲击响应h(n),在开环

基音延迟值附近搜索,采用1/3精度的分数基音延迟,基音延迟再第一子帧编码

为8b,而在第二子帧采用5b编码。自适应码书贡献(经滤波)减去后,目标

信号X(n)变为X(n),这个新的目标信号X,(n)用在固定码书搜索中以搜索最

优激励。一个17b的代数码书用作固定码书激励。自适应和固定码书的增益用

7b进行矢量量化(MA预测应用到固定码书增益中)。最后,滤波器的记忆值由

已确定的激励信号来更新。

1.2解码器

译码器原理如图2所示。

width-500};*border=0>

首先,参数标号从接收到的比特流中提取。这些标号被译码,以获得对应一

个10ms语音帧的编码参数。这些参数是LSP系数,2个分数基音延迟,2个固

定码书矢量,2组自适应码书和固定码书增益。LSP系数在每一子帧中进行插值

并转化为LP滤波器系数,然后对每5ms子帧进行如下步骤操作:

①自适应码书和固定码书乘以各自增益后相加获得激励,

②用LP合成滤波器对激励进行滤波,获得重建语音。

③重建语音信号再通过一个后处理级,该后处理级包括一个基于长时和短时

合成滤波器的自适应后滤波器和一个能实现高通和比例缩放的滤波器。

2TMS320C54X性能简介

TMS320C54X是TT公司推出的高性能16b定点DSP。因高性能与低功耗使其

成为无线和有线通信系统的理想器件。C54x系列DSP采用改进哈佛结构,具有1

个程序存储器总线和3个数据存储器总线,17X17b乘法器,1个供非流水的M

AC(乘法/累加)使用的专用加法器,1个比较、选择、存储单元。为C54x配备

了双操作码指令集,他是该系列DSP操作灵活和高速度的基础。他的执行速率最

高可以达到120MIPSo

3代码编写及其优化

由于G.729算法非常复杂,而TMS320c54x的性能又非常有限,因此,实现

语音信息的实时处理必然要求尽可能优化代码和充分利用DSP的性能。通常编写

代码的方式有3种:用纯汇编语言编程、用纯C语言编程、混合编程。

3.1用纯汇编语言编程

TI公司提供了针对开发DSP的汇编语言,用户可以用他进行软件开发。此

种方式可以充分利用DSP芯片的硬件资源,其代码效率高,程序执行速度快。但

是用DSP芯片的汇编语言编写程序比较繁杂,而且软件的修改和升级较困难。

3.2用纯C语言编程

C语言的可读性、可修改性、可移植性和可重用性非常好。在用C语言进行

DSP软件开发时,一般先在PC机上或工作站上对算法进行仿真,仿真通过后再

将程序移植到DSP平台中"然而,由于G.729算法非常复杂,直接编写的C程序

通常无法实现对语音实时的处理。例如:实际测试表明,用C语言编程和手写汇

编语言编程之间的效率相差几倍甚至几十倍。因此,有必要对程序进行优化。优

化的方法通常有如下几种:

3.2.1快速算法

与直接算法相比,快速算法通常放弃了概念上的清晰度,转而追求程序上的

高效率,典型的例子如DCT与FFT。DCT(离散余弦变换)是另一种常用的正交

变换,以一个直接的32X32的DCT变换为例,共需做1024次乘法和992次加

法。而采用了Lee提出的快速DCT变换方法后,对于同样的输入条件,只需做3

84次乘法和432次加法。适当采用快速算法,可极大的提高代码运行效率。

3.2.2计算表格化

为了提高算法的运行效率,减少运行时计算的时间开销,应尽可能把一些运

行时计算的参数做成查找表或常数数值,从而将运行时的计算转化为编译时的

计算。这不仅适用于一些比较规整的参数表,对于一些比较耗时的计算(如浮

点除)也同样适用。

3.2.3数组指针化

在C语言程序中,对数组的寻址是非常耗时的,特别是对多维数组。因此,

在设计中首先降低数组的维数,再进一步使之指针化。

3.2.4减少判断转移

DSP多采用流水线法,如TMS320c54x就采用了6级流水线结构,频繁的转

移指令将使流水线难以发挥作用。另外,DSP的大多数指令为周期指令,但转移

指令通常要耗费较多的机器周期。因此,应该尽可能减少程序中的转移分支。事

实上,通过对程序流的分析,许多判断转移可以用简单的条件组合来实现。例如

将程序if(sum>32767)sum=32767优化成sum=min(sum,32767)。

3.3混合编程

混合编程就是将C语言和汇编语言结合起来,充分发挥两者的优点和DSP

性能的一种编程方法。混合编程主要有如下3种方法:

3.3.1独立编写C和汇编程序

这种方法在实际工程应用较多,首先分别独立编写C和汇编程序,然后将他

们加入到同一个工程文件中,再利用集成开发环境对他们进行编译链接,最后生

成可执行代码。通常FFT,FIR,IIR等的程序一般采用汇编语言编写,而主程序

则可采用C语言,这样只需在C程序中定义这些程序为外部调用即可。采用这种

方法必须遵循有关的调用规则,有了这些规则,C和汇编函数之间的接口就变得

很方便:C程序既可以调用汇编程序,也可以访问汇编程序中定义的变量;汇

编程序也可以调用C函数或访问C程序中定义的变量。但用户必须维护各汇编模

块入口和出口代码,计算传递的参数在堆栈中的偏移量,工作量稍大,但能做到对

程序的绝对控制。

3.3.2直接在C程序中嵌入汇编语句

在C程序中嵌入汇编语句的方法比较简单,只需在汇编语句的左右加上一个

引号,然后用小括弧将汇编语句括住,并在括弧前加上asm标识符即可,即asm

(“汇编语句”)。采用这种方法一方面可以在C程序中实现用C语言无法实现的

一些硬件控制功能,如修改中断控制寄存器、中断使能或屏蔽、读取状态寄存器

和中断标志寄存器等;另一方面,也可以用这种方法在C程序中的关键部分用汇

编语句代替C语言以优化程序。而采用这种方法的缺点是比较容易破坏C环境,

因为C编译器在编译嵌入了汇编语句的C程序时并不检查或分析所嵌入的汇编

语句。

采用这种方法需要注意:

①不要破坏C环境,因为C编译器并不检查和分析嵌入的汇编语句。

②插入跳转语句和标号会产生不可预测的结果。

③汇编语句不要改变C程序中变量的值。

④不要在汇编语句中加入汇编器选项而改变汇编环境。

3.3.3手工优化和修改C程序编译生成的汇编程序

采用这种方法通常需要对C编译器非常了解,而且在修改汇编程序时要避免

与程序的其他部分发生冲突。通常采用如下方法进行修改:在集成开发环境中选

择View菜单下的MixcdSource/ASM选项,可看到交*列表的汇编程序;在所生成

的语句中,每个C语句的下面就是C编译器对该C语句编译所生成的汇编语句,

通过查看交*列表的汇编程序,可.以对某些编译不是很优但却是比较关键的汇编

语句进行修改。注意,修改汇编语句时切勿破坏C环境。

4结语

由于G.729算法的复杂性,而TMS320c54x有限的性能,因此,通常采用纯

C语言编程是无法实现对语音的实时处理的。而采用纯汇编语言编程,虽然能

够达到实时的要求,但是其开发周期过长。在实际情况下,主要是采用混合编程,

主函数通常采用C程序编写,因为这样编译器会帮助初始化一些状态值,既准确

又耗时少,一些用来存储数据的结构体用C语言定义,因为用汇编定义时会非常

麻烦,对于那些耗时多、运算密集的模块则要用汇编编写,这样既能保证程序的

结构化和可读性,又能保证代码的高效。

参考文献

[1]TMS320C54xApplicationGuideTexasInstruments,1996

[2]TMS320C54xCodeComposerStudioTutorial.TexasInstrument,20

00

[3]戴明桢,周建江.TMS320c54xDSP结构、原理及应用匚M].北京:北京航

空航天大学出版社,2001

[4]DeitelHM,DeitelPJ.CHowtoProgramSecondEdition[M].Pren

ticeHall,1994

[5]ITUTRecommendationG.729.CodingofSpeechat8kb/s.UsingConju

gateStructureAlgebraicCodeexcitedLinearprediction(CSACELP),1996

io种软件滤波方法

sailing发表于2006-8-2017:12:54

下面奉献一匠人呕心沥血搜肠刮肚冥思苦想东拼西凑整理出来的10种软件滤波方法:

1、限幅滤波法(又称程序判断滤波法)

A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时判断:如果

本次值与上次值之差<=A,则本次值有效。如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值

代替本次值

B、优点:能有效克服因偶然因素引起的脉冲干扰。

C、缺点:无法抑制那种周期性的干扰,平滑度差。

2、中位值滤波法

A、方法:连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值。

B、优点:能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参数有良好的滤波

效果。

C、缺点:对流量、速度等快速变化的参数不宜。

3、算术平均滤波法

A、方法:连续取N个采样值进行算术平均运算。N值较大时:信号平滑度较高,但灵敏度较低;N值

较小时:信号平滑度较低,但灵敏度较高。N值的选取:般流量,N=12:压力:N=4

B、优点:适用于对一般具有随机干扰的信号进行滤波,这样信号的特点是有一个平均值,信号在某一

数值范围附近上下波动。

C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费RAM。

4、递推平均滤波法(又称滑动平均滤波法)

A、方法:把连续取N个采样值看成•个队列,队列的长度固定为N,每次采样到个新数据放入队尾,

并扔掉原来队首的一次数据.(先进先出原则),把队列中的N个数据进行算术平均运算,就可获得新的滤波

结果。N值的选取:流量,N=12;压力:N=4:液面,N=ri2:温度,N=P4

B、优点:对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。

C、缺点:灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采

样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM

5、中位值平均滤波法(乂称防脉冲干扰平均滤波法)

A、方法:相当于“中位值滤波法”+“算术平均滤波法”。连续采样N个数据,去掉一个最大值和一

个最小值,然后计算22个数据的算术平均值。N值的选取:3~14

B、优点:融合了两种淞波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样

值偏差。

C、缺点:测量速度较慢,和算术平均滤波法一样,比较浪费RAM。

6、限幅平均滤波法

A、方法:相当于“限幅滤波法”+“递推平均滤波法”,每次采样到的新数据先进行限幅处理,再送

入队列进行递推平均滤波处理。

B、优点:融合了两种滤波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样

值偏差。

C、缺点:比较浪费RAM。

7、一阶滞后滤波法

A、方法:取a=O~L本次滤波结果=(1-a)*本次采样值+a*上次滤波结果。

B、优点:对周期性干扰具有良好的抑制作用,适用于波动频率较高的场合。

C、缺点:相位滞后,灵敏度低,滞后程度取决于a值大小,不能消除源波频率高于采样频率的1/2

的干扰信号。

8、加权递推平均滤波法

A、方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权。通常是,越接近现时刻的数

据,权取得越大。给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低。

B、优点:适用于有较大纯滞后时间常数的对象和采样周期较短的系统。

C、缺点:对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号不能迅速反应系统当前所受干扰

的严重程度,滤波效果差。

9、消抖滤波法

A、方法:设置一个滤波计数器将每次采样值与当前有效值比较:如果采样值=当前有效值,则计数器

消零如果采样值。当前有效值,则计数瑞+1,并判断计数费是否>=上限N(溢出),如果计数册溢出,则将本

次值替换当前有效值,并滑计数器。

B、优点:对于变化缓慢的被测参数有较好的3虑波效果,可避免在临界值附近控制器的反复开/关跳动

或显示器上数值抖动。

C、缺点:对于快速变化的参数不宜,如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干

扰值当作有效值导入系统。

10.限幅消抖滤波法

A、方法:相当于“限幅波波法”+“消抖滤波法”先限幅,后消抖。

B、优点:继承了“限幅”和“消抖”的优点改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入

系统。

C、缺点:对于快速变化的参数不宜。

IIR数字漉波器

A.方法:确定信号带宽,滤之。Y(n)=al*Y(n-l)+a2*Y(n-2)+.+ak*Y(n-k)+bO*X(n)+

bl*X(n-l)+b2*X(n-2)+.+bk*X(n-k)..

B.优点:高通,低通,带通,带阻任意。设计简单(用matlab)

C.缺点:运算量大。

数字滤波常用方法(带程序)

sailing发表于2006-8-515:48:20

10种软件滤波方法的示例程序

OurWay发表于2005-9-222:24:00

10种软件滤波方法的示例程序(JKRL)

假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad();

1、限副滤波

/*A值可根据实际情况调整

value为有效值,newvalue为当前采样值

滤波程序返回有效的实际值*/

SdefineA10

charvalue;

charfilterO

(

charnewvalue;

new_value=get_ad();

if((newvalue-value>A)||(value-newvalue>A)

returnvalue;

returnnewvalue:

2、中位值滤波法

/*N值可根据实际情况调整

排序采用冒泡法*/

^defineN11

charfilter()

(

charvalue_buf[N];

charcount,i,j,temp;

for(count=0;count<N;count++)

(

value_buf[count]=get_ad();

delay();

)

for(j=0;j<N-l;j++)

for(i=0;i<N-j;i++)

if(valuebuf[i]>valuebuf[i+1])

(

temp=value_buf[i];

value_buf[i]=value.buf[i+1];

value_buf[i+1]=temp;

)

}

)

returnvalue_bufE(N-l)/2];

}

3、算术平均滤波法

#defineN12

charfilter()

(

intsum=0:

for(count=0;count<N;count++)

(

sum+=getad();

delay();

)

return(char)(sum/N);

}

4、递推平均滤波法(又称滑动平均滤波法)

defineN12

charvalue_buf[N]:

chari=0;

charfilter0

(

charcount;

intsum=0:

value_buf[i++]=get_ad();

if(i=N)i=0;

for(count=0:count<N,count++)

sum=value_buf[count]:

return(char)(sum/N);

}

5、中位值平均涌波法(又称防脉冲干扰平均滤波法)

^defineN12

charfilter()

(

charcount,i,j;

charvalue_buf[N];

intsum=0;

for(count=0:count<N;count++)

(

value_bufLcountJ=get_ad();

delay();

)

for(j=0;j<N-l;j++)

(

for(i=0:i<N-j;i++)

(

if(valuebuf[i]>valuebuf[i+1])

(

temp=value_buf[i];

value_buf[i]=value_buf[i+1];

value_buf[i+1]=temp;

)

}

)

for(count=l;count<N-l;count++)

sum+=value[count];

return(char)(sum/(N-2));

)

6、限幅平均滤波法

/*

*/

略参考子程序1、3

7、•阶滞后滤波法

/*为加快程序处理速度假定基数为100,a=0'100*/

Adelinea50

charvalue:

charfilter()

(

charnew_value;

new_value=get_ad();

return(100-a)"value+a*new_value;

)

8、加权递推平均滤波法

/*coe数组为加权系数表,存在程序存储区。*/

#defineN12

charcodecoe[N]={1,2,3,4,5,6,7,8,9,10,11,12);

charcodesum_co«-1+2+3+4+5+6+7+8+9+10+11+12,

charfilter()

(

charcount;

charvalue_buf[N];

intsum=0;

for(cour>t=0,count<N;count++)

(

valuebuf[count]=getad();

delay();

)

for(count=0,count<N;count++)

sum+=value_buf[count]*coe[count];

return(char)(sum/sum_coe);

)

9、消抖滤波法

^defineN12

charfilter0

(

charcount=0;

charnew_value;

new_value=get_ad();

while(value!=new_value);

(

count++;

if(count>=N)returnnew一value;

delay0;

new_value=get_ad();

)

returnvalue;

10、限幅消抖滤波法

/*

*/

略参考子程序1、9

微机控制系统的数字滤波算法

任克强',刘晖2

(1.南方冶金学院信息工程学院江西赣州341000;

2.南方冶金学院机电工程学院江西赣州341000)

摘要:分析了采用数字滤波消除随机干扰的优点,详细论述了微机控制系

统中常用的8种数字滤波算法,并讨论了各种数字滤波算法的适用范围。

关键词:数字滤波;控制系统;随机干扰;数字滤波算法

弓言

1I薪i机控制系统的模拟输入信号中,一般均含有各种噪声和干扰,他们来自

被测信号源本身、传感器、外界干扰等。为了进行准确测量和控制,必须消除被

测信号中的噪声和干扰。噪声有2大类:一类为周期性的,其典型代表为50Hz

的工频干扰,对于这类信号,采用积分时间等于20ms整倍数的双积分A/D转换

器,可有效地消除其影响;另一类为非周期的不规则随机信号,对于随机干扰,

可以用数字滤波方法予以削弱或滤除。所谓数字滤波,就是通过一定的计算或判

断程序减少干扰信号在有用信号中的比重,因此他实际上是一个程序滤波。

数字滤波器克服了模拟滤波器的许多不足,他与模拟滤波器相比有以下优

卢.

(1)数字滤波器是用软件实现的,不需要增加硬设备,区而可靠性高、稳定

性好,不存在阻抗匹配问题。

(2)模拟滤波器通常是各通道专用,而数字滤波器则可多通道共享,从而降

低了成本。

(3)数字滤波器可以对频率很低(如0.01Hz)的信号进行滤波,而模拟滤波

器由于受电容容量的限制,频率不可能太低。

(4)数字滤波器可以根据信号的不同,采用不同的滤波方法或滤波参数,具

有灵活、方便、功能强的特点。

2常用数字滤波算法

数字滤波器是将一组输入数字序列进行一定的运算而转换成另一组输出数

字序列的装置。设数字滤波器的输入为X(n),输出为Y(n),则输入序列和输出

序列之间的关系可用差分方程式表示为:

-K)-£%y(n—K)(1)

K-o\

其中:输入信号X(n)可以是模拟信号经采样和A/D变换后得到的数字序列,也

可以是计算机的输出信号。具有上述关系的数字滤波器的当前输出与现在的和过

去的输入、过去的输出有关。由这样的差分方程式组成的滤波器称为递归型数字

滤波器。如果将上述差分方程式中bK取0,则可得:

=^aKX(n-K)⑵

说明输出只和现在的输入和过去的输入有关。这种类型的滤波器称为非递归

型数字滤波器。

参数出、氏的选择不同,可以实现低通、高通、带通、带阻等不同的数字滤

波器。

2.1算术平均值滤波

算术平均值滤波是要寻找一个Y,使该值与各采样值X(K)(K=l〜N)之间误差

的平方和为最小,即:

E==min[*(丫—X(K))2](3)

K-JK-l

由一元函数求极限原理褥:

y==£x(K)(4)

这时,可满足式(3)。式(4)便是算术平均值滤波的算法。

设第二次测量的测量值包含信号成分Si和噪声成分G,则进行N次测量的

信号成分之和为:

・s($)

噪声的强度是用均方根来衡量的,当噪声为随机信号时,进行N次测量的噪

声强度之和为:

式⑸和式(6)中,S、C分别表示进行N次测量后信号和噪声的平均幅度。

这样对N次测量进行算术平均后的信噪比为:

其中,S/C是求算术平均值前的信噪比。因此采用算术平均值后,使信噪比提

高了三倍。

算术平均值法适用于对一般具有随机干扰的信号进行滤波,这种信号的特点

是有一个平均值,信号在某一数值范围附近作上下波动,此归仅取一个采样值作

依据显然是不准确的,如压力、流量、液平面等信号的测量。但对脉冲性干扰的

平滑作用尚不理想,因此他不适用于脉冲性干扰比较严重的场合。由式(7)可知,

算术平均值法对信号的平滑滤波程度完全取决于N。当N较大时,平滑度高,但

灵敏度低,即外界信号的变化对测量计算结果Y的影响小;当N较小时,平滑度

低,但灵敏度高。应视具体情况选取N,以便既少占用计算时间,又达到最好的

效果,如对一般流量测量,可取N=8〜16,对压力等测量,可取N=4。

2.2加权平均值滤波

算术平均值法对每次采样值给出相同的加权系数,B|J1/NO但有些场合为

了改进滤波效果,提高系统对当前所受干扰的灵敏度,需要增加新采样值在平均

值中的比重,即将各采样值取不同的比例,然后再相加,此方法称为加权平均值

法。一个N项加权平均式为:

Y=(8)

K-I

其中,G,G,・・・.C,均为常数且应满足下式:

[0<Cl<C,<-<Cx

<(9)

lC|+G+…+CN=1

常数G,G,…,G的选我是多种多样的,其中常用的是加权系数法,即:

A=IM

c.=r"A

CN=<•

其中•△■】+e-+c"+…+£-<"-叫r为控制对象的

纯滞后时间.

加权平均值法适用于系统纯滞后时间常数T较大、采样周期较短的过程,他

给不同的相对采样时间得到的采样值以不同的权系数,以便能迅速反应系统当前

所受干扰的严重程度。但采用加权平均值法需要测试不同过程的纯滞后时间T,

同时要不断计算各权系数,增加了计算量,降低了控制速度,因而他的实际应用

不如算术平均值法广泛。

2.3滑动平均值滤波

以上平均滤波算法有一个共同点,即每计算1次有效采样值必须连续采样N

次。对于采样速度较慢或要求数据计算速率较高的实时系统,这些方法是无法使

用的。例如A/D数据,数据采样速率为每秒10次,而要求每秒输入4次数据时,

则N不能大于2o滑动平均值法只采样1次,将本次采样值和以前的N-1次采

样值一起求平均,得到当前的有效采样值。

滑动平均值法把N个采样数据看成一个队列,对列的长度固定为N,每进行

一次新的采样,把采样结果放入队尾,而扔掉原来队首的一个数据,这样在队列

中始终有N个“最新”的数据。计算滤波值时,只要把队列中的N个数据进行平

均,就可得到新的滤波值。

滑动平均值法对周期性干扰有良好的抑制作用,平滑度高,灵敏度低;但对

偶然出现的脉冲性干扰的抑制作用差,不易消除由于脉冲干扰引起的采样值的偏

差。因此他不适用于脉冲干扰比较严重的场合,而适用于高频振荡系统。通过观

察不同N值下滑动平均的输出响应来选取N值,以便既少占用时间,又能达到最

好的滤波效果。其工程经验值为:流量N取12,压力N取4,液面N取4〜12,

温度N取1〜4。

2.4中值滤波

中值滤波是对某一被测参数连续采样N次(一般N取奇数),然后把N次采样

值从小到大,或从大到小排队,再取其中间值作为本次采样值。

中值滤波对于去掉偶然因素引起的波动或采样器不稳定而造成的误差所引

起的脉冲干扰比较有效,对温度、液位等变化缓慢的被测参数采用此法能收到良

好的滤波效果,但对流量、速度等快速变化的参数一般不易采用。

2.5防脉冲干扰平均值滤波

在脉冲干扰比较严重的场合,若采用一般的平均值法,则干扰将“平均”到

计算结果中去,故平均值法不易消除由于脉冲干扰而引起的采样值偏差。防脉冲

干扰平均值法先对N个数据进行比较,去掉其中的最大值和最小值,然后计算余

下的N-2个数据的算术平均值。即:

丫=(10)

其中.&X(2)《…&Xg.N>3.

在实际应用中,N可取任何值,但为了加快测量计算速度,N一般不能太大,

常取为4,即为四取二再取平均值法。他具有计算方便、速度快、存储量小等特

点,故得到了广泛应用。

2.6程序判断滤波

工程实践表明,许多物理量的变化都需要一定的时间,相邻两次采样值之间

的变化有一定的限度。程序判断滤波就是根据实践经验确定出相邻两次采样信号

之间可能出现的最大偏差AY,若超出此偏差值,则表明该输入信号是干扰信号,

应该去掉;若小于此偏差值,可将信号作为本次采样值。

当采样信号由于随机干扰,如大功率用电设备的启动或停止,造成电流的尖

峰干扰或误检测,以及变送器不稳定而引起的严重失真等,可采用程序判断法进

行滤波。

程序判断滤波根据滤波方法的不同,可分为限幅滤波和限速滤波2种。

2.6.1限幅滤波

限幅滤波把两次相邻的采样值相减,求出其增量(以绝对值表示),然后与两

次采样允许的最大差值(由被控对象的实际情况决定)AY进行比较,若小于或等

于AY,则取本次采样值;若大于AY,则仍取上次采样值作为本次采样值。即:

YH(11)

-y(K-i)i

限幅滤波主要用于变化比较缓慢的参数,如温度、物理位置等测量系统。具

体应用时,关键的问题是最大允差AY的选取,AY太大,各种干扰信号将“乘

虚而入”,使系统误差增大;AY太小,又会使某些有用信号被“拒之门外”,

使计算机采样效率变低。因此,门限值△Y的选取是非常重要的。通常可根据经

验数据获得,必要时也可由实验得出。

2.6.2限速滤波

限速滤波最多可用3次采样值来决定采样结果,设顺序采样时刻t2,t3

的采样值分别为Y(D,Y(2),Y(3),则

y⑵,ir(2)-r(i)i

y⑶.ir(3)-r(2)i-

Y=,--.iy(2)-r(i)i>△/<12)

且y⑶-y(2)i>△/

限速滤波较为折中,既照顾了采样的实时性,又顾及了采样值变化的连续性。

但这种方法也有明显的缺点:

(DAY的确定不够灵活、必须根据现场的情况不断更换新值;

(2)不能反映采样点数N>3时各采样值受干扰的情况,因而其应用受到一定

的限制。具体应用时,可用(|Y(l)-Y(2)|+|Y(2)-Y(3)|)/2作为AY,这样也可

基本保持限速滤波的特性,虽增加计算量,但灵活性提高了C

2.7低通滤波

将普通硬件RC低通滤波器的微分方程用差分方程来表示,便可以用软件算

法来模拟硬件滤波的功能。经推导,低通滤波算法如下:

Y(K)«a•X(K)•(1—•)•Y(K-1)(13)I

其中,X(K)为本次采样值;Y(KT)为上次的滤波输出值;a为滤波系数,其值通

常远小于1;Y(K)为本次滤波的输出值。

由式(13)可以看出,本次滤波的输出值主要取决于上次滤波的输出值(注意

不是上次的采样值,这和加权平均滤波是有本质区别的),本次采样值对滤波输

出的影响是比较小的,但多少有些修正作用。

这种算法模拟了具有较大惯性的低通滤波功能,当目标参数为变化很慢的物

理量时,效果很好,但他不能滤除高于1/2采样频率的干扰信号。除低通滤波

外,同样可用软件来模拟高通滤波和带通滤波。

2.8复合数字滤波

为了进一步提高滤波效果,有时可以把2种或2种以上不同滤波功能的数字

滤波器组合起来,组成复合数字滤波器,或称多级数字滤波器。

例如防脉冲干扰平均值滤波就是一种应用实例,由于这种滤波方法兼顾了中

值滤波和算术平均值滤波的优点,所以无论对缓慢变化的信号,还是对快速变化

的信号,都能获得较好的滤波效果。

此外,也可采用双重滤波的方法,即把采样值经过低通滤波后,再经过一次

高通滤波。这样,结果更接近理想值,这实际上相当于多级RC滤波器。

3结语

本文讨论了8种数字滤波算法,每种滤波算法都有其各自的特点,在实际应

用中,究竟选取哪一种数字滤波算法,应根据具体的测量参数合理的选用。不适

当地应用数字滤波,不仅达不到滤波效果,反而会降低控制品质,甚至失控,这

点必须予以注意。

参考文献

LU潘新民,王燕芳.微型计算机控制技术,北京:人民邮电出版社,1999

[2]张毅刚,彭喜源,等.MCS51单片机应用设计[M].哈尔滨:哈尔滨工业大学

出版社,1999

[3]王幸之,王雷,等.单片机应用系统抗干扰技术[M].北京:北京航空航天大

学出版社,2000________________________________________________________

收藏此页到365Kv

阅读全文(2250)回复(1)I引用通告(0)编辑

基于TMS320F2812的DSP控制器设计及应用

sailing发表于2006-7-2017:19:13

摘要:基于DSP芯片TMS320F2812的电机控制器设计,描述了其引导加载ROM、AD转换单元、传感器接口、

cpld等电机控制外设电路的技术关键。还简单介绍了其在调速系统中的应用。

关键词:电机控制;DSP;外设:传感器

在电机控制领域,TI公司推出了2000系列电机控制嵌入式DSP。其中的TMS32CF2812属于高端产品,适

合于工业控制、机床控制等高秸度应用.目前涉及到2000序列的芯片在电气传动中的应用的文献以侧重介

绍TMS320LF240X为主,介绍应用TMS320F(C)28x的比较少。TMS320F(028x比2dx系列的DSP具有更完备

的外用控制接口和更丰富的电机控制外设电路,其指令执行时间或完成一次动作的时间仅为6.67纳秒,流

水线采样最高速率60ns,交直转换通道12位AD达16个,PWM输出通道达12个[1]。片上资源可以足够

同时控制两台三相电机,使控制系统的价格大大降低而体积缩小、可靠性提高,可以在高度集成环境中实

现高性能的电机控制。本文将着重阐述作者基于TMS320F2812设计的DSP控制器的设计中的重点,并介绍

它在工业控制中的应用。

图1电机控制系统结构原理图

1引导加载ROM

引导加教是指器件复位时执行一段引导程序,一般用于从端口(异步串口、I/O口、或HPI主机接口)将E

PROM/FLASH等非易失性存储器中加载程序到高速RAM中允许。

1.1TMS320F2812的启动模式

TMS320F2812提供了儿种不同的启动模式,四个通用10引脚用于决定选择何种启动模式,如表所示:

GPI0F4GPI0F12GPI0F3GPI0F2

(SCnXDA)(MDXA)(SPISTEA)(SPICLK)模式选择

1XXXFlash地址

01XXSPI启动模式

0C11SCI启期真式

0C00Parallel启动模式

欢迎访问http://*w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论