《武汉工程大学学报》  2008年03期 97-100   出版日期:2008-03-31   ISSN:1674-2869   CN:42-1779/TQ
基于线阵CCD的IIR算法设计与实现



0引言在纸张印刷和纺织印染行业,常用到卷印方式.由于机械运转不稳和印制材料张力变化不均的原因,卷印过程会出现“跑偏”现象,必须进行纠偏控制.纠偏控制主要通过对纸张、布匹等原材料的边或线信号进行精确定位来实现,本课题对卷印过程线信号的采样通过TCD1209D图像传感器实现.图象传感器可以提高人眼的视觉范围,使人们看见肉眼无法看到的微观世界和宏观世界,已在工业、农业、国防等领域得到广泛应用[1].由于图象传感器的测量速度快,输出数据量大,并且容易受干扰,这就需要一种有效的滤波算法,使系统能在较短的时间内滤掉干扰信号,为后续的数据处理做好准备,满足高速系统的运行要求[2].常用的数字滤波器有FIR和IIR两大类型,其中,FIR Filter为有限长单位脉冲响应滤波器,其传递函数为H(z)=∑N-1n=0h(n)z-n(1)
式(1)中,h(n)是一个有限长序列[3]. IIR Filter为无限长单位脉冲响应滤波器,其传递函数为
H(z)=∑Ni=0aiz-11-∑Ni=0biz-1(2)与FIR相比,IIR具有很多优点:可以用较低的阶数获得很高的频率选择性;占用存储单元少经济性好;滤波效率高;在相同门级规模和相同时钟频率下可以提供更好的带外衰减特性等[3].本课题设计了一个IIR数字滤波器,用于实现对线阵CCDTCD1209D输出信号的滤波.线阵CCD可以将入射到CCD光敏面上的按空间位置分布的光强信息,转换为按时间顺序串行输出的视频信号,所以线阵CCD可以用来精确检测物体的边缘或线信号,以实现对物体的精确定位.TCD1209D为典型的二相单沟道型线阵CCD传感器,该器件是一种高灵敏度、低暗电流、2048像元的二相线性CCD,工作电压为12 V,它只有一个转移栅和一个模拟移位寄存器,目的是为了降低器件的像敏单元不均匀度和扩大动态范围.该器件的光敏阵列由2075个光电二极管组成,其中27个光电二极管被遮蔽,中间的2048个光电二极管为有效的光敏单元[4].图1为 TCD1209D对卷印过程线信号进行采样后的输出结果, 该结果是通过模数转换器将TCD1209D输出信号进行采样,然后将采样的离散信号用图形表示得到的.其中线信号为中间的尖峰脉冲,这样线信号在空间上的定位变成了图(1)中脉冲信号在时间上的定位.由图1可知,中间的尖峰脉冲的相对位置为需要的有效信号,但是由于噪声太大,使得系统对信号的处理很复杂,严重时系统会把噪声信号视为有效信号.为了滤除噪声,必须增加低通滤波器.图1TCD1209D采样的原始数据
Fig.1Original sampling data of TCD1209D1IIR算法设计1.1滤波器类型的确定IIR数字滤波器有四种设计方法:微分差分变换法、脉冲响应不变法、双线性变换法、匹配z变换法,工程上常用的是前面两种方法[3].脉冲响应不变法的设计步骤是:先由已知系统传输函数h(s)计算出系统冲激响应h(t),然后再对h(t)进行等间隔取样得到h(n)=h(nT),最后由h(n)得到数字滤波器的系统响应h(z).脉冲响应不变法非常直观,其算法宗旨是保证所设计的IIR滤波器的脉冲响应和模拟滤波器的冲激响应在采样点上完全一致.脉冲响应不变法的另一个特点是频率坐标的变换是线性的(ω=ΩT),这为计算带来方便.由于脉冲响应不变法有频谱周期延拓效应,因此存在频谱混淆现象.为了克服脉冲响应不变法可能产生的频谱混淆,设计者提出了双线性变换法.由于双线性变换法依靠双线性变换式建立s平面和z平面的单值映射关系,因此不存在频谱混淆的问题.
s=k(z-1)/(z+1)(3)
式(3)中k=1或2/T.从式(3)中可以看出:s平面和z平面的频率是非线性关系,这使得通带截止频率、过渡带的边缘频率的相对位置都会发生非线性畸变,消除频率畸变的方法是采用预畸校正.用双线性变换法设计数字滤波器的预畸校正步骤是:先将数字滤波器的各临界频率经过频率预畸,求得相应参考模拟滤波器的各临界频率,然后设计参考模拟滤波器的传递参数,最后通过双线性变换式求得数字滤波器的传递函数,这样通过双线性变换,正好将这些频率点映射到所需要的位置上.传统的模拟滤波器类型和特点[3]如下:贝塞尔滤波器:近似线形位移,微小的群时延失真.巴特沃滤波器:平滑的通带/阻带增益响应.适度的群时延变化.第3期赵振华,等:基于线阵CCD的IIR算法设计与实现
武汉工程大学学报第30卷
切比雪夫滤波器:增益纹波限制于通带,响应中阻带衰减平滑.椭圆滤波器:纹波同时存在于通带和阻带.对给定的任务,提供最低阶数的滤波器设计.由于本系统需要尽可能平滑的通带/阻带增益响应,所以选用巴特沃滤波器.1.2确定滤波器阶数的原则数字滤波器的阶数选取由过渡带最陡峭的程度决定,可以通过过渡带宽度(Hz)与采样频率的比值来衡量.在实际应用中,采样频率对所要求的滤波器阶数的影响十分重要.如果在截止频率相对采样频率很小时,一个普通的模拟滤波器特性要求用一个超高阶的数字滤波器来实现.但是在实际应用中,由于受CPU自身的运行速度和存储空间的限制,要求滤波器的阶数尽可能的低.1.3滤波器阶数和系数的计算设计滤波器的原则应是在保证有效信号不失真的前提下,尽可能使干扰信号得到最大的衰减.通过对图1的分析可知,设计的滤波器通带边缘频率和阻带边缘频率分别为fp1=10 000 Hz和fs1=12 000 Hz,采样频率为25 000 kHz,阻带边缘衰减为-20logδs,由此可算出阻带边缘增益δs.首先需要把由Hz表示的待求边缘频率转换成弧度表示的数字频率,计算式如下[5]:Ωp1=2π·(fp1/fs)
Ωs1=2π·(fs1/fs)另外需要计算扭曲模拟频率以避免双线形变换带来的失真,计算式如下:wp1=2fs·tan(Ωp1/2)
ws1=2fs·tan(Ωs1/2)最后确定滤波器的阶数[5]:
n≥log(1/δs2-1)2log(ws1/wp1)<1因为n的值小于1,所以所设计的滤波器为一阶滤波器.一阶模拟巴特沃斯滤波器的传递函数为
h(s)=wp1(s+wp1)代入相关数值可算得所求的滤波器传递函数为
h(s)=157.1(s+157.1)由双线性变换定义H(s)=2fs·(z-1)(z+1)得到数字滤波器的传递函数为
h(z)=0.1245·(1+z-1)1-09001z-1所以,差分方程为
y[n]=0.9001y[n-1]+0.1245x[n]+0.1245x[n-1]1.4IIR滤波器的相移由于IIR滤波器自身的缺陷,它不像FIR滤波器一样具有理想的线性相位响应,原始信号通过IIR滤波器后会产生一定程度的相移,而且在奇数阶的情况下,还有可能会使系统产生振荡.为了消除相移和振荡,本课题采用了零相位数字滤波算法,即:先正向滤波,再反向滤波,最后加权平均.结果证明,使用这种算法可以很好的消除相移,另外还能使输出结果更加平滑,更精确的体现原始信号.IIR滤波器的设计流程如图2所示.图2IIR滤波器设计流程
Fig.2Design process of IIR filters 2IIR算法的实现由于滤波算法比较复杂,需要进行多次的乘除法运算,而在具体的应用中,系统要求完成滤波算法的时间要尽可能短,以满足高速系统的运行要求.带有硬件乘法器的DSP芯片TMS320F2407可以满足这一要求.TMS320F2407为TI公司生产的C2000系列16位定点DSP集成电路,该系列最大的特点是具有片内FLASH RAM,免除了程序容量不大的用户在使用中需要扩展程序存储器的困扰,简化了硬件设计,提高了系统抗干扰能力[6].采用TMS320F240实现的IIR滤波器硬件结构如图3所示.由于系统对采样速度和精度的要求较高,所以设计中没有使用TMS320F2407的内部AD,而是将TCD1209D的输出信号经过系统扩展的12位高速A/DAD7892转换后再送入TMS320F2407中.考虑到采样数据的存储量很大,系统扩展了一片容量为1Mbit串行 芯片,专门用来存放采样数据.为了满足TMS320F2407需要多种电源供电和各电源上电顺序不同以及A/D采样时序的要求,并考虑到系统硬件的简洁和可靠,这里采用了一片Altrera公司的MAX7000S系列的EPM7128SLC8410型可编程逻辑电路(CPLD)完成对TMS320F2407的复位和上电控制以及对AD采样时序的控制.图3IIR算法实现的硬件结构
Fig.3The hardware structure of IIR filtersIIR滤波器的原始代码如下:void iir(void){int *f = ((int *)0x009000);//定义原始数据区int *m = ((int *)0x009530);int *g = ((int *)0x009A60); int i;f[OFFSET]=dat[OFFSET];for(i=OFFSET;i<VALIDPIXEL;i++){m[i]=0;}for (i=OFFSET+1;i<VALIDPIXEL;i++){ f[i]=(11*dat[i-1]+11*dat[i]+90*f[i-1])/100; //正向滤波}for(i=OFFSET;i<VALIDPIXEL-1;
i++){g[VALIDPIXEL-2-i]=(11*dat[VALIDPIXEL-1-i]+11*dat[VALIDPIXEL-2-i]+90*g[VALIDPIXEL-1-i])/100;//反向滤波}f[OFFSET]=dat[OFFSET];g[VALIDPIXEL-1]=
dat[VALIDPIXEL-1];for(i=OFFSET;i<VALIDPIXEL;i++){f[i]=f[i]/2;g[i]=g[i]/2;m[i]=f[i]/2+g[i]/2;//加权平均}f[OFFSET]=dat[OFFSET];for (i=OFFSET+1;i<VALIDPIXEL;
i++){ f[i]=(m[i-1]-f[i-1])*W;}}3结果分析经过IIR滤波处理后的结果如图4所示,其中(a)为原始信号,(b)为原始信号和正向滤波,(c)为原始信号和反向滤波,(d)为经过加权平均算法处理的信号和原始信号.图4处理结果比较
Fig.4Comparison of the results通过对图4的分析可知:单向滤波可以很好的抑制干扰信号,为下一步数据处理提供了有利条件.但是单向滤波会产生相移现象,造成有效信号的失真.克服相移的主要方法是在滤波中加入加权平均算法,但这样做会削弱有效信号的尖峰值.因此在实际应用中,应该综合考虑这些影响因素,根据需要处理的信号特点、性质和使用要求进行滤波器设计,以得到最好的滤波效果.4结语根据处理结果比较可知,本系统充分发挥了IIR数字滤波器的优点,并通过加权平均算法克制了IIR滤波器的相移,采用带硬件乘法器的DSP芯片TMS320F2407,能实时、准确的实现目标的精确定位,具有很好的使用价值.