《数字信号处理基础.ppt》由会员分享,可在线阅读,更多相关《数字信号处理基础.ppt(30页珍藏版)》请在三一办公上搜索。
1、实时数字信号处理系统的设计与实现,电子工程与光电技术学院电子工程教研室,1.1 引言 傅里叶变换(FT)是一种将信号从时域变换到频域的变换形式。它在声学、电信、电力系统、信号处理等领域有广泛的应用。希望在计算机上实现信号的频谱分析或其它工作,而计算机要求信号在时域和频域都是离散的,且都是有限长的。傅里叶变换(FT)仅能处理连续信号,DFT就是应这种需要而诞生的。它是傅里叶变换在离散域的表示形式。DFT的运算量是非常大的。在1965年首次提出快速傅里叶变换算法FFT之前,其应用领域一直难以拓展,是FFT的提出使DFT的实现变得接近实时,DFT的应用领域也得以迅速拓展。除了一些速度要求非常高的场合
2、之外,FFT算法基本上可以满足工业应用的要求。由于数字信号处理的其它运算都可以由DFT来实现,因此FFT算法是数字信号处理的重要基石。,1 数字信号处理基础,数字信号处理的最主要应用领域便是数字滤波。数字滤波器被认为是数字信号处理的另一块重要基石。数字滤波器与模拟滤波器比起来具有以下明显的优点:可以满足滤波器对幅度和相位特性的严格要求,精确度高;没有电压漂移、温度漂移及噪声等问题,基本不受环境影响,稳定性好;用DSP实现的滤波器具有高度的可编程性,灵活性非常好。正是由于数字滤波器的上述优点,使得数字滤波器广泛应用于雷达、语音处理、图像处理、模式识别、频谱分析、医学仪器等领域。根据不同的标准,数
3、字滤波器可以进行多种不同的分类。,总的来说,数字滤波器可以分为经典数字滤波器与现代数字滤波器。经典滤波器用于处理有用信号与噪声处在不同频带的系统,如 FIR,IIR;现代滤波器可以从含有噪声的数据记录中估计出信号的某些特征信号本身,也就是说,现代滤波器用于处理有用信号和噪声处在同一频带的数据处理场合。现代滤波器有维纳滤波器、卡尔曼滤波器、线性预测器、自适应滤波器等多种类型。下面简要地介绍DFT、FFT和数字滤波器的基本知识。DSP开发系统对 C语言的支持能力越来越强,可以将C,C,甚至部分MATLAB语言的算法直接移植到DSP芯片上运行;FPGA在这方面也取得重大进展。,1.2 DFT/FFT
4、的基本原理 其中,W为旋转因子。由此公式不难发现,求出一点X(k)需要N次复数乘法、Nl次复数加法。N点X(k)需要 N2次复数乘法、N(N1)次复数加法。当 N很大时,计算量非常可观。如 1024点复数DFT需要进行1048576次复数乘法运算。即使在计算速度飞速发展的今天,这在实时运算场合也是无法容忍的。利用旋转因子的对称性和周期性,发明了FFT算法,把复数乘法的运算量降低到了N/2lgN次。1024点复数序列FFT仅需做5120次复数乘法运算,其工作量仅为DFT的4.8。,常用FFT算法 六十年代提出时间抽取FFT算法以来,有关FFT的算法不断涌现。不过常用的算法还是基2时间抽取、基2频
5、率抽取、基4时间抽取和频率抽取以及分裂基算法。近年来,由于微电子技术的发展,硬件的快速发展使人们暂时忽略了软件或算法的改进。总的来说,由于上述算法比较简单,是最常用的FFT算法。,图1.2.1 基2时间抽取(DIT)FFT算法,图1.2.2 基2频率抽取(DIF)FFT算法,其它FFT算法及应用 1、基4、基8的FFT算法、混合基算法等;2、采用窗函数进行FFT的加权处理;3、实序列的FFT运算(频谱):用一个N点复数FFT运算两个N点实序列 FFT 一个N点复数FFT运算2N点实序列FFT 4、WFTA、ZFFT、CZT等;5、快速相关、快速卷积、重叠相加(保留)法等等;6、DFT/FFT等
6、效成窄带滤波器组。基本概念:连续时间信号、离散时间信号、数字信号、频谱泄漏、频谱宽度等。,1.3 FIR滤波器 基本原理 FIR滤波器的差分方程为:式中,x(n)输入序列,y(n)为输出序列,h(n)为滤波器系数,N是滤波器的阶数。对此式进行Z变换,整理后可得FIR滤波器的传递函数:,FIR的一般结构 在一般结构中,除了需要有N个乘法器外,还需要有一个N个相加的加法器,从运算效果来说,等效于在原来乘法器的基础上增加一个N位(X位+h位)的乘法器,当乘法器数目比较多时,增加的加法器运算量比乘法器运算量还要大,这不利于提高器件运算速度。,为此,将这种结构加以改良,构成另一种处理结构。这个结构是将一
7、个N个数的加法器变成为N个分散的两位数加法器,由于各个加法器之间通过寄存器相互隔离。如果将这个加法器同原来乘法器相互结合在一起,则运算结果等于在原来乘法器基础上被乘数多增加一位而已,不影响原来乘法器的快速算法实现。,FIR的转置型结构,FIR滤波器的优点 1 可以在幅度特性随意设计的同时,保证精确、严格的线性相位;2 由于FIR滤波器的单位脉冲响应h(n)是有限长序列,因此FIR滤波器没有不稳定的问题;3 由于FIR滤波器一般为非递归结构,因此在有限精度运算下,不会出现递归型结构中的极限震荡等不稳定现象,误差较小;4 利用系数对称性,可使运算量减少近一半;5 FIR滤波器可采用FFT算法实现,
8、从而提高运算效率。,1.3.3 FIR滤波器的设计方法 FIR滤波器的设计方法主要有窗函数法和频率抽样设计法。FIR滤波器设计中,重要的计算就是加窗。矩形窗最直接和简便,但主旁瓣比仅为13dB。因此实际设计中,一般采用其他窗函数,比较常用的窗函数有Hanning窗、Hamming窗、Blackman窗、Kaiser窗等。采用Hanning窗使能量集中在主瓣内,主旁瓣比为31dB,但主瓣的宽度增加了1倍。采用Hamming窗使99.9以上的能量集中在主瓣,主旁瓣比达43dB,主瓣的宽度也是矩形窗的2倍。Blackman窗进一步抑制旁瓣,使主旁瓣比达到58dB,但主瓣的宽度是矩形的3倍。上述三种窗
9、函数都是以增加主瓣宽度为代价换取一定程度的旁瓣抑制。而Kasier窗可以通过调整参数值来折中选择主瓣宽度和主旁瓣比,采用Kaiser窗设计FIR滤波器具有很大的灵活性。,1.3.4 FIR滤波器的MATLAB实现 在MATLAB中,提供了两种FIR滤波器设计方法。窗函数设计法(FIR1,缺省为Hamming窗)和任意形状设计法(FIR2)。1 设计低通滤波器(Hamming窗):BFIR1(N,Wn)其中,N为滤波器的阶数,Wn为归一化截止频率,0.0Wn1.0,1.0对应于半抽样速率。返回值B为一个Nl维矢量,即滤波器系数。BFIR1(N,Wn,high);BFIR1(N,Wn,stop)2
10、 采用其他窗函数设计低滤波器:其他窗函数如Boxcar、Hanning、Bartlett、Blackman、Kasier和Chebwin。例如采用Bartlett窗设计低通滤波器:BFIR1(N,Wn,Bartlett(N),1.4 IIR滤波器 1.4.1 基本原理 IIR滤波器差分方程的一般形式为:式中,x(n)、y(n)、h(n)和N的含义同前。IIR滤波器具有无限长的单位脉冲响应,在结构上存在反馈回路,即是递归型的。也就是说,IIR滤波器的输出不仅与输入有关,而且与过去的输出有关。IIR滤波器的传递函数:,IIR滤波器由于具有结构简单、运算量小的特点,因而得到了较广泛的应用。IIR滤波
11、器结构具有多种形式,归纳起来主要有以下几种:(l)直接I型(也称直接型);(2)直接II型(也称正准型);(3)级联型;(4)并联型;(5)格型(lattice)。直接I型结构需要2N级延迟单元,直接II型结构与直接I型结构相比节省了一半延迟,即需要N级延迟单元,是最常用的IIR滤波器结构之一。,级联型结构采用多个二阶基本节级联而成,每一个二阶基本节可采用直接II型结构实现,这种结构便于准确实现滤波器的零极点,也便于性能调整。1.4.2 IIR滤波器的设计方法 IIR滤波器的设计一般有以下两种方法:(1)先设计一个模拟滤波器,然后变换成满足预定指标的数字滤波器。由于模拟滤波器的设计方法很成熟,
12、有许多简单和现成的设计公式,设计参数已经表格化,因而这种方法比较方便;(2)计算机辅助设计法。这是一种最优化的设计方法,先确定一种最佳准则,然后求在此准则下滤波器系统函数的系数。,1.4.3 IIR滤波器的MATLAB实现 以Chebshev2型IIR低通滤波器为例说明用MATLAB设计IIR滤波器的方法。设滤波器的通带为0Wp,阻带为Ws 1.0,1.0对应于半抽样频率,要求通带内波动小于Rp dB,阻带内衰减大于Rs dB。则用MATLAB设计该滤波器的过程如下:1 调用函数cheb2ord(),确定滤波器的阶数和截止频率:N,Wncheb2ord(Wp,Ws,Rp,Rs)返回值N为满足要
13、求的Chebshev2型数字滤波器的最小阶数;2 调用函数cheby2()B,A=cheby2(N,RS,Wn)返回值B为一个N1维矢量,是分子多项式系数;A也是一个N1维矢量,为分母多项式系数。与FIR1类似,设计Chebshev2型IIR高通、带通和带阻的方法分别是:高通:B,A=chebg2(N,Rs,Wn,high)带通:B,Acheby2(N,Rs,Wn),Wn W1 W2 带阻:B,A=cheby2(N,Rs,Wn,stop),Wn W1 W2 除了cheby2以外,还有cheby1、butter等类型。,1.5 量化与有限字长 1.5.1 概述 FIR和IIR数字滤波器的一些特征
14、使它们相互之间能够区分,同时它们在执行时,需要进行一些专门考虑,包括相位特性、稳定性和系数量化影响。给定频率响应特性,典型高阶FIR滤波器可以转换成符合这些特性的IIR滤波器。但是,这并不意味着IIR滤波器可以应用到所有的情况。在一些应用中,把滤波器的线性相位特性作为重要考虑,此时应该采用FIR滤波器,因为只有FIR滤波器可以设计成线性相位。另一个重要考虑是滤波器的稳定性。因为FIR的单位脉冲响应是有限长度,所以FIR滤波器是固有稳定的(也就是说,一个有上下限的输入总是产生一个有上下限的输出)。而IIR滤波器可能稳定,也可能不稳定,主要依赖于滤波器极点位置。,数字滤波器设计总是假设在无限精度装
15、置上执行的。但是,因为所有处理器都是有限精度的,所以滤波器系数实际上近似于“理想”。这种近似引入滤波器系数的量化误差,导致滤波器频率响应与理想情况有偏移。因为窄带IIR的极点靠近单位圆,所以需要更长的字长。滤波器系数的量化误差最坏影响到极点位置移置单位圆之外,导致不稳定。滤波器系数的量化误差对滤波器稳定性影响程度依赖于滤波器的结构和执行硬件的字长。因为滤波器的零点和极点位置与执行硬件的字长有关,它们与无限精度装置的差异影响到滤波器的性能。在IIR滤波器中,级联式与平行式生成的每一对复数共轭极点是分离的。这导致每一对复数共轭极点对滤波器系数量化误差的影响是相互独立的。但是对直接式滤波器结构来说,
16、这个性能并不成立。因此,级联式与平行式IIR滤波器比直接式IIR应用更加广泛。,在数字滤波器实现中另一个问题是由于硬件有限字长造成的量化误差。随着下列有限字长的使用,误差源增加:输入输出信号量化;滤波器系数量化;不相关的四舍五入(或截断)噪声;相关的四舍五入(或截断)噪声;动态范围限制。用数字形式表示连续时间的瞬间值,由于输入输出信号量化引入误差。输入信号主要是A/D量化噪声,而输出信号主要是D/A量化噪声。在大多数系统中,输出D/A量化噪声是非常小的,输入A/D量化噪声是更加主要的因素。,在大多数执行程序中,滤波器系数初始值存在程序存储器中,然后移到二进制的小数点用最高比特位表示的数据存储器
17、中。这些系数表示成Q15格式。给出的系数范围是-1.00.999969,步进量为0.000031。输入也是Q15格式,因此,当两个Q15数字相乘时,结果是Q30格式数字。当Q30数字驻留在32位累加器时,二进制的小数点用第二最高比特位表示。因为假设滤波器的输出为Q15格式,所以Q3O格式的数要左移,并保留结果的最高比特位(16)。注意:保留累加器的中间值很重要,可能保留32比特位的精度。不相关的四舍五入(或截断)噪声是由乘法器产生的。尽管数字滤波器表示成有限字长,但是处理结果需要增加一些附加的比特来表示。例如,一个b比特的采样值,乘上一个b比特的系数,产生2b比特字长。在递归滤波器的实现中,第一次递归后,2b字长是需要的;第二次递归后,3b字长是需要的;等等,以此类推。,1.6 实时的概念 1.6.1 实时的定义 通用计算环境:算法、测试、模拟数据、实际数据;实时信号处理应用系统:算法的执行速度。,TxTj的复杂度运算速度,1.6.2 进程的结构1、数据流处理优点:随时更新、时延最小、存储单元最小;缺点:处理速度高。,2、块处理,优点:高的处理效率(比如FFT)、速度较低的处理器;缺点:时延大(最小时延)。两者可以转换!,3、矢量处理,