基于波形存储型红外学习的数据压缩方法
2014-08-23曾炼成周小云
曾炼成,周小云
(湖南农业大学信息科学技术学院,湖南 长沙 410128)
0 引言
基于物联网的智能家居的目标之一是通过网络统一控制带红外遥控功能的家用电器。红外遥控电器设备(电视、空调、机顶盒等)各自采用不同编码类型和互不干扰的独立红外遥控器,而学习型红外遥控器则可以统一控制智能家居中的家用电器。
学习型遥控器有协议识别型和波形存储型2类。由于家电类型、生产厂家的不同,红外遥控波形协议规定的用户码与数据码各种各样,协议识别难以实现全面学习,通常只针对特定遥控器学习[1]。而波形存储型专注于波形的脉冲序列记录与重现,不受红外遥控波形编码协议限制[2-3]。本文通过研究波形存储型红外学习及其数据压缩方法,使之满足物联网条件下的统一控制的高效红外遥控功能。
波形存储型的数据来自测量脉冲宽度,初始数据离散分布且占用内存量较大,需要进行识别和编码压缩。文献[4]同时记录脉冲宽度和脉冲间距离,对波形数据进行矢量量化编码,采用聚类方法建立脉宽种类表和索引表,对数据进行压缩。文献[5]采用12 μs为采样周期计量脉冲宽度和脉冲间距离,采用模糊模式识别算法来对红外信号数据进行分类和数据压缩。上述2种方法均将信息位抽象成二维数组,聚类之后建立脉宽种类表和索引表。本文利用红外遥控波形总是高电平与低电平相间的特性,将矢量量化的二维数组分解成2个独立的一维数组,得到更短的脉宽种类表和索引表;同时创新性地提出:由多个出现概率大的短脉冲连续排布组合得到出现概率小的长脉冲,使数据编码只需面向出现概率大的样本,实现更高的数据压缩比。
1 学习型红外遥控
1.1 统一控制红外遥控系统
如图1所示为基于物联网统一控制的红外遥控系统,包括远端控制和学习型遥控器2部分。学习型遥控器通过学习外部遥控器的波形,将红外波形数据编码压缩经无线传输模块传输到远端控制部分,存储在远端数据库,在物联网中供多用户共享;远端控制的执行则发送相应的红外波形数据由学习型红外遥控器还原红外遥控波形,实现对家电的红外遥控。
图1 统一控制的红外遥控系统
1.2 红外遥控数据格式
红外遥控数据构成上通常包含引导码和数据码2部分[7-10]。引导码是启动接收器的识别流程的长脉冲;数据码是一串经过红外载波波形编码的二进制数据,通过脉宽或相位变化表示,是遥控码主体,分为数据码脉冲宽度调制(PWM)和脉冲位置调制(PPM)2种格式类型[11-13]。
图2(a)所示为红外遥控PWM格式,波形高电平表示发射红外载波,波形低电平表示不发射载波信号,以发射红外载波的不同占空比表示数据“0”和“1”。发射红外载波的时间固定,通过改变不发射载波的时间来改变占空比。以使用NEC UPD6121的电视遥控器为例,引导码为载波发射9 ms,不发射4.5 ms,数据位“0”为载波发射 0.56 ms,不发射 0.56 ms;数据位“1”为发射载波0.56 ms,不发射载波1.68 ms。
图2 红外遥控信号格式
图2(b)所示为红外遥控PPM格式,数据位“0”和“1”发射载波和不发射载波占据相同长度,区别在于顺序不同。红外遥控的飞利浦RC-5协议是典型的PPM格式。
由图2可以得出,无论是PWM格式还是PPM格式,红外遥控信号的数据码部分高电平和低电平脉冲宽度类型均不多于2种,引导部分为1个或2个长脉冲。对数据码的高电平和低电平脉冲进行编码压缩只需要2个脉宽种类。
1.3 红外信号学习与调制
红外发射信号是基带信号经过载波(38 kHz)调制的,采用载波周期为单位来量化发射红外载波的时长(脉冲宽度)兼顾了数据量和精度的要求。图3(a)所示为红外遥控信号的学习,采用定时器以38 kHz周期性对红外信号采样,可连续测量出信号的脉宽。
图3 红外遥控信号的学习与调制
图3(b)所示为红外遥控信号的软件调制,38 kHz跳变与红外波形脉宽数据进行逻辑与运算,得到红外发射载波调制信号。由此红外学习的脉宽数据还原成红外遥控波形,采用软件方式可以降低硬件的系统复杂度。
2 红外学习数据编码压缩
2.1 红外学习数据
红外学习中,采用定时器以38 kHz周期性对红外信号采样,可连续测量出信号的脉宽,得到波型的初始脉宽数字序列:{N0,N1,N2,…,Ns-1}。
为了区分红外信号的高/低电平,采用最高位来标识电平,其余位数的值表示电平宽度,即进行如下运算:
式(1)中0x8000表示为最高为1,转换后序列为:{T0,T1,T2,…,Ts-1}。
2.2 脉宽数据聚类
数据聚类适合于静态数据的分析,聚类是把相似的对象通过静态分类的方法分成不同的组别或子集,使同一个子集中的成员对象都有相似的一些属性[14-15]。
红外遥控信号波形脉宽是以38 kHz定时时钟计次得到一维脉宽数字序列,红外遥控脉冲宽度一方面取决于脉冲编码的信息位不同,另一方面由于检测时钟时基抖动、外部干扰,相同信息位的脉宽数据呈高斯分布。数据集合{T0,T1,T2,…,Ts-1}的数据分布如图4所示,高/低电平脉冲区中,分布在左侧的是样本数较多且脉宽较窄的数据码,右侧则是引导码,数量少且脉宽较宽。
图4 红外学习脉宽数据分布
红外学习脉宽数据聚类中,聚类成员是电平的脉宽Ti,进行基于距离函数聚类。
具体的算法如下:
(1)对数据集合{T0,T1,T2,…,Ts-1}进行排序;
(2)计算相邻数据的距离,根据分布状况确定阈值,阈值大于高斯分布;
(3)当相邻数据间距离大于阈值,认为分属于不同的子集;
(4)计算子集的均值作为聚类的中心值;(5)记录高/低电平子集的中心值。
2.3 脉宽数据编码压缩
无论红外遥控信号的PWM格式还是PPM格式,红外遥控编码信息存在大量的2种宽度相同的短脉冲。短脉冲出现概率远大于引导区的长脉冲。根据编码原则,对于概率大的样本以短字长的编码才能有较高的压缩率;对于小概率的样本可以长字长的直接编码方式(如Huffman编码),也可以是间接方式编码。
红外学习脉冲信号分高电平和低电平分开处理,对出现概率大、冗余度高的短脉冲利用先验知识采用静态字典编码,获得尽可能短的编码;对于出现概率小、冗余度低的长脉冲采用短脉冲连续排布表达,即实现以短编码串连来间接编码小概率样本。
字典编码(Dictionary Encoding)是一种无损的数据压缩技术,通过建立字典索引表,以索引来取代重复出现的字典条目来实现数据压缩。字典编码分为静态字典编码和动态字典编码。
静态字典编码是对信源的结构有足够的先验知识时,利用先验知识构造字典。静态字典编码依据先验知识构造固定长度的字典索引。在红外学习数据静态字典编码中,以高电平和低电平区的数据码子集的聚类中心值来建立索引长度为4,编码长度为2 bit的静态字典,表1所示为结合具体波形的静态字典,将出现概率大的16 bit脉宽数据压缩到2 bit编码。
3 编码测试与分析
3.1 红外学习遥控器实物测试
图5所示为红外学习遥控器测试实物,由STM32F103微处理器、1个红外接收管、2个并行的红外发射管、按键、电池以及以无线连接上位机的蓝牙模块等组成,长按电路板上的按键或者通过上位机发送指令开启学习功能,学习所得到的数据存储在本地并同时上传到上位机,按键发送存储数据或上位机发送编码数据还原遥控波形。
图5 红外学习遥控器实物图
图6 红外遥控信号脉冲波形
为了红外学习数据编码压缩及还原波形的有效性,除了采用学习遥控器即时学习,存储本地后还原波形实测电器,还通过逻辑分析仪分别采集学习和还原波形比对。图6所示为通过LA1016逻辑分析仪获取的红外遥控器一次按键后红外接收管的信号波形(为直观显示波形已做反相处理),一次引导(同步码)后的多个PPM(脉冲位置调制)脉冲。
3.2 红外学习数据的编码压缩及分析
红外遥控信号经38 kHz计时时钟量化的数字序列,采用十六进制短整型记录,以最高位为来标识低/高电平脉冲,高电平脉冲的计数值最高位为1。图6所示学习波形的脉宽数据数组:
初始脉宽数组(2)按高/低电平分开数字序列排序,依据距离值分组,同一组序列的均值作为4组索引的固定长度索引表,如表1所示。
表1 红外遥控脉冲压缩静态字典
采用表1静态对初始脉宽数组(2)进行编码,短脉冲直接用静态字典编码,长脉冲采样连续短脉冲排布而成,如第一个高电平长脉冲(脉宽为0xD2),由3个高电平脉冲(脉宽为0x4A)连续组成,一维数组序列的编码二进制值为:
对应十六进制编码:
静态字典和对应十六进制编码最后组成编码数组:
对比初始脉宽数组(2)和编码压缩后数组,量化数字序列(2)包含84字节,而编码数组(5)包含15字节,故压缩率为:84/15=5.6。
3.3 红外学习功能测试
红外学习功能是否有效取决于学习和还原2个过程均正确,即首先正确学习红外信号生成产生数据,经编码压缩存储起来,然后将压缩编码数据还原出正确的遥控波形。采取2种方法做功能测试,分别验证单只学习遥控器本地存储波形还原和多只学习遥控器数据共享下波形还原的有效性。
测试1 单只红外学习遥控器本地存储测试,采用即时学习红外波形,数据压缩保存在单片机本地存储,每次按动按键,本地存储数据被还原出波形,能正确遥控电器。
测试2 多只红外学习遥控器共享数据测试,即一只红外学习遥控器学习波形,压缩编码数据经无线(蓝牙)上传到上位机,上位机存储编码数据,并转发给其他红外学习遥控器,其他红外学习遥控器还原的波形也能正确遥控电器。
4 结束语
本文着眼于物联网条件下的统一控制红外遥控系统,采用不受波形编码格式以及协议类型限制的波形存储红外学习方式,以红外载波频率量化脉宽,实现了红外波形到一维数组的转换,经过聚类分析并利用先验知识构建索引长度为4的静态字典,对出现概率大的短脉冲进行2 bit编码,出现概率小的引导码长脉冲以多个短脉冲串联间接编码,数据压缩率高,实际测试红外学习编码压缩及还原波形一致,满足物联网条件下的红外波形数据的传输、存储和共享的要求。
由于红外遥控波形协议规定的波形存在规律性的重复,结合实际测试的结果来看,红外学习数据经编码后同样有着规律性的重复,这种重复性表明编码数据存在进一步压缩的潜力。
:
[1]程小辉,康燕萍.可识别载波的红外遥控自学习模块研究与设计[J].电子技术应用,2013,39(2):121-124.
[2]郑伟,谢利理,张震.一种具有自学习功能的智能红外遥控器设计[J].计算机测量与控制,2007,15(12):1758-1759,1800.
[3]陈祖爵,王建毅.智能型红外遥控器的设计[J].微计算机信息,2008,24(2):305-307.
[4]李冬梅,高文焕.通用学习式红外遥控器中数据压缩与识别算法[J].清华大学学报:自然科学版,2000,40(7):85-88.
[5]徐志,陈冲,林武.基于模糊模式识别算法的学习型红外遥控器的编码压缩[J].福州大学学报:自然科学版,2008,36(9):61-64.
[6]林武,何明华,徐志.一类学习型红外遥控器电路设计关键技术分析[J].南昌大学学报:工学版,2008,30(9):279-282,306.
[7]顾晓红.学习型遥控器中的码型识别[J].电子与封装,2009,9(10):42-45.
[8]姚文详,宋岩.ARM Cortex-M3权威指南[M].北京:北京航空航天大学出版社,2009:102-123.
[9]何乃味.单片机定时器捕获模式解码红外遥控器的方法[J].现代电子技术,2012,35(18):11-13.
[10]黄海阳,吴锤红.一种基于单片机的红外遥控信号解码新方法[J].单片机与嵌入式系统应用,2012,12(7):30-33.
[11]叶林俊.单片机I/O口的红外遥控软件调制技术[J].单片机与嵌入式系统应用,2011,11(12):22-24.
[12]常涛,雪琦.基于FPGA的红外遥控信号接收模块的设计[J].电子元器件应用,2011,13(5):44-46.
[13]张毅,李晋.基于射频的学习型红外线遥控器设计[J].计算机时代,2011(2):45-47.
[14]孙吉贵,刘杰,赵连宇.聚类算法研究[J].软件学报,2008,19(1):48-61.
[15]任景彪,尹绍宏.一种有效的k-means聚类初始中心选取方法[J].计算机与现代化,2010(7):84-86.