李伟聪, 陈敏, 刘颖君, 邝禹聪(华南理工大学 广州学院,广州510800)
随着科技的进步,数字信号处理被应用到各行各业,同时高校开设的数字信号课堂要求也在不断提高,但传统的数字信号处理实验通常只能数据处理前后的频谱图,不能将数据用便于理解的方式展现出来,而且不能根据现实需求,快速地增加其他功能,使用过程中存在一定的局限性。通讯技术快速发展,微信、QQ等社交软件得到了广泛的使用,其中语音聊天功能更是受到了好评,语音的加密与解密成为语音聊天的关注点。因此,将传统的数字信号处理和日常中使用的语音解密结合,形成一套便于学生理解数字信号处理的实验系统。
近年来,随着虚拟仪器技术的发展和普及,越来越多人使用美国仪器公司的LabVIEW软件。LabVIEW软件以开发速度快,程序包容性强等特点深受用户的喜爱[1]。本设计是基于LabVIEW生产——消费者模式的语音解密实验系统设计,运用LabVIEW软件快速开发一套操作简单、理解深刻的语音解密实验系统。预计本系统可应用于学校、研究院所等学习机构。
本系统是基于LabVIEW的语音解密实验系统,对已经加密的语音进行频谱分析,并且将数据发送至语音解密实验系统的UI界面。并且采用事件生产——消费者结构,实现人机交互模式的设计[2]。同时增强系统的扩展性,降低系统的耦合程度,为系统添加、修改、删减功能提供可靠的结构保障。
消费者系统由解密实验和实验原理两部分组成,解密实验主要由经典滤波器和音频信号的频谱分析组成。实验原理主要由信号发生器、噪声发生器和经典滤波器组成。所生成的信号可以通过音频模块,将电信号转换为音频信号播放出来,从而将数字信号处理结果清晰地展现出来。
语音解密的UI界面将数据以频谱图的形式展现,通过对比加密前后频谱的差异,选用A到H组的滤波器对己加密的语音信号进行滤波处理,滤波后新的数据会更新至滤波后的频谱图,UI界面上A到H组的滤波器和对应的数据并生成报表。
LabVIEW是一种程序开发环境,类似于C和C#的开发环境,但是LabVIEW使用的是图形化编辑语言G语言编写程序。传统的文本编程语言根据指令的先后顺序决定程序的执行顺序,在LabVIEW编程中则是采用数据流的方式来传输数据[3]。为程序的并行运行提供可靠的语言基础。LabVIEW编程中存在3种范式(面向过程、面向事件、面向对象),6种基础模式(标准状态机、消息队列、生产-消费者(事件)、生产-消费者(数据)、用户界面事件处理、主/从结构),采用合理的编程模式会减小CPU的占用和提高程序的扩展性和稳定性。同时,LabVIEW提供多种外观与传统仪器类似的控件,实现用户界面的快速开发[4]。
1)实验系统模式。语音解密实验需要运算8个IIR无限脉冲响应滤波器、加密前后的音频信号进行快速傅里叶变换(FFT)需要占用大量的CPU资源,选择合适的范式和模式有利于提高实验系统运算速度。如果采用传统的循环或局部变量模式,会导致运算过程中卡顿或数据丢失,对实验结果造成影响。通过采用生产-消费者模式(事件)能够提高实验系统的稳定性,实现数据不卡顿丢失运算,达到运算结果能准确地以声音的形式输出。
2)生产-消费者模式(事件)。本语音解密实验系统采用的生产-消费者模式为3个while循环组成的并行结构,由一个生产者向2个消费者发送包含命令和数据的簇,并且指令簇以队列的形式发送,保证指令簇按顺序不丢失地发送给消费者。消费者循环设置出队列的超时毫秒设置为-1 ms,在没有接送到来自生产者循环的命令前,处于超时状态减少语音解密系统对CPU的占用率。生产者采用用户事件结构,从事件超时设置为-1,在没有与用户交互的状态下,语音解密系统处于超时。利用事件结构的数据节点,获取与用户交互的命令和数据写入指令簇中[5]。指令簇分别进入不同的队列中等待消费者进行运算。解密实验消费者和实验原理消费者接收处理数据互不干扰,实现实验系统的高效稳定的运行。
语音解密系统解密部分将已经加密的通用数字音频文件进行数字/模拟信号转换,对转换后的模拟加密信号快速傅里叶变换,并且以频谱图的形式展示出来,通过选用A~H组滤波器和调节滤波器的高、低截止频率,对音频信号进行滤波处理,处理后的数据在滤波后频谱图上显示,并且可以使用声音播放的形式来判断信号的还原程度,最后将解密实验系统的UI界面上的数据导入word报表,生成语音解密实验的实验报告。实验语音解密主要分为频谱分析和经典滤波器。
与传统的示波器界面设计不同,语音解密实验系统的UI界面采用LabVIEW提供的波形图[6],用户通过鼠标点击拖拽等操作可以对频谱图的纵坐标(幅值)、横坐标(频率)进行放大,或者通过修改纵横坐标上的数值对波形图上的波形进行缩放。
图1 解密实验操作界面
1)语音加密。语音加密模块获取PC上的通用数字音频文件(.wav),并且将量化的数字信号进行数字/模拟信号转换,将信号恢复成原来的模拟音频信号。根据人说话的声音的频率为30 Hz~3 kHz,人耳能感受到的音频信号频率为20 Hz~20 kHz,使用信号方式模块分别模拟不同频率,幅值相同的正弦信号,并且与模拟音频信号合成,实现对原有音频信号的低频段(30~150 Hz)、中低频段(150~500 Hz)、中高频段(50~5000 Hz)、高频段(5000~20000 Hz)进行覆盖和干扰,最终达到音频信号的加密效果[7]。加密后获取的模拟音频信号进行量化和编码后,重新储存PC上的通用数字音频文件(.wav)上,形成加密后的声音文件。
2)频谱分析。语音解密实验系统自动检索并加载PC上指定位置的加密通用数字音频文件。读取文件的数字音频信息并转换为模拟加密音频信号。频谱分析采用快速傅里叶变换(FFT),快速傅里叶变换(FFT)是离散傅里叶变换(DFT)的快速计算方法。傅里叶变换是将信号的时域转换为频域的表达方法。离散傅里叶变换和离散傅里叶逆变换,如下式:
频谱分析模块对已经完成加密的音频信号上使用Hanning窗,进行快速傅里叶变换频域分析,测量结果以峰值的形式展示,并且使用频谱图的形式将数据展示出来。
LabVIEW2015中为我们提供了十分便利的函数完成频谱分析,在LabVIEW的Express函数入口中选择信号分析模块[10],在信号分析模块中我们采用频谱测量。进入频谱测量中可以完成上述Hanning窗和测量结果以峰值表示的设置,实现了测量模块的快速开发和便捷的配置方式,使得频谱分析模块具有良好的扩展性。
3)滤波器。语音解密实验系统采用IIR无限脉冲响应滤波器[11],主要分为高通滤波器、低通滤波器、带通滤波器、带阻滤波器[12]:a.高通滤波器。允许高于高截止频率的信号通过,减弱低于高截止频率通过。b.低通滤波器。允许低于低截止频率的信号通过,减弱高于高截止频率通过。c.带通滤波器。允许一定频率范围的信号通过,减弱低于低截止频率和高于高截止频率的信号通过。d.带阻滤波器。减弱一定频率范围的信号,但是允许低于低截止频率和高于高截止频率的信号通过[13]。语音解密系统UI界面提供了8个IIR无限脉冲响应滤波器选用口,选用8个IIR无限脉冲响应滤波器分别设置高截止频率、低截止频率对音频信号进行滤波处理,实现音频信号不失真处理,达到输出音频信号清晰可靠。用户根据对比加密前后频域图的差异,选用不同的滤波器,并输入低截止频率和高截止频率完成滤波处理。滤波器的设计如图2所示。
图2 滤波器的设计
音频信号是带有语音、音乐等有规律的声波信号,是一种连续变化的模拟信号,具有频率和幅值2个基本参数,频率决定声音的音调高低、幅值决定声音的响度大小。音频频率范围分为低频段、中低频段、中高频段、高频段,根据音频频率的频段不同,声音能表达出有力、厚实、清晰、明亮等效果。
信号发生模块通过计算机生成连续的正弦信号、余弦信号、方波信号的等连续变化的模拟信号[14],模拟信号设置采样信息:每秒采样率、波形的采样数控制模拟信号的长短。计算方法如下式(正弦信号):
式中:a为幅值;n为采样数;f为频率;Fs为每秒采样率。
信号发生模块采用每秒采样率为22 050 Hz、采样数为60 000,实现模拟信号能够清晰简短地通过语音播放模块以声音形式的播放出来。
信号发生模块提供音频信号合成功能,用户选择低频段和中低频段作为声音的基频信号,选用中高频段和高频段的作为声音的辅音信号,通过基频信号和辅音信号的合成,实现信号发生的多样性。信号发生模块如图3所示。
图3 信号发生模块
随着语音解密实验系统应用于不同的教学环境中和根据用户使用反馈,滤波器模块和信号发生模块的功能会随时增加或者减少。采用传统的面向过程编程会给程序增加新功能带来极大的不便。因此,本语音解密实验系统对滤波器、信号发生采用面向对象的编程方式(工厂模式)[15],首先分别创建滤波器、信号发生模块的父类,父类里分别包含滤波器、信号发生器的通用特征。通过继承子类,并增加工厂模式的子类,便可实现滤波器、信号发生模块功能的增加,并且不会对原来的系统造成影响,最终达到语音解密实验系统快速扩展和便捷维护。
本语音解密实验系统采用的声音格式为wav格式,wav格式是Windows下通用数字音频文件标准,其数据格式为2进制,编码方式为PCM(脉冲编码调制)。通常使用量化位数、采样频率和采样点振幅表示声音,采样率范围为8~48 kHz,采样标准为44.1、22.05、11.025 kHz,量化等级有8位、16位、24位。语音播放模块采用采样频率为22 050 Hz、量化等级为16位、通道数为2。
语音播放功能通过语音播放模块将加密后的音频信号、信号发生模块、辅音、噪声模拟模块产生的模拟信号转换为声音播放。与传统的数字信号处理实验相比,本实验系统将传统的数据图表信号转变成易于理解的声音信息。
传统实验的实验数据用笔和纸记录,效率不高又容易出现错误。本语音解密实验系统采用的是语音解密实验后的数据通过报表模块生成word报表。报表模块通过引用声音滤波后波形图、声音滤波前波形图的属性,即获取波形图里的数据和外观,并将其转换为图片的格式插入Word报表上。报表上有A~H组IIR无限脉冲响应滤波器的选用情况、高、低频截止频率参数,声音滤波前、后的频域图。报表模块如图4所示。
图4 报表模块
本语音解密实验系统在数字信号处理课堂实验方面有广泛的应用,并且具有很强的可拓展性,可根据使用过程中的实际实验需求,快速添加实验所需的功能。本语音解密实验系统用图像化的表现方式加深了学生对数字信号处理的理解,用与实际生活紧密相关的实验内容提高了学生的学习兴趣。