APP下载

基于安卓频谱分析仪的探究性实验设计

2016-09-18陆玲霞彭勇刚贺东星

实验科学与技术 2016年4期
关键词:安卓分析仪嵌入式

陆玲霞,彭勇刚,贺东星

(浙江大学 电气工程学院,杭州 310027)



基于安卓频谱分析仪的探究性实验设计

陆玲霞,彭勇刚,贺东星

(浙江大学电气工程学院,杭州310027)

该文针对目前市场上频谱分析仪价格昂贵,且开源性和便携性差等问题,基于ARM芯片和目前流行的Google移动平台Android操作系统进行了应用研究,在智能手机上设计一款频谱分析软件。该软件通过设计FFT算法实现对音频信号的实时处理,在手机屏幕实时显示出频谱图,实现频谱分析仪的功能,该设计是将Android操作系统用于工业自动化控制平台的一个创新。该频谱分析仪简单方便,并具备良好的人机界面,同时也满足时延、性能和无缝等实际要求,为嵌入式课程开展探究性实验提供良好的实验素材。

安卓;频谱分析;FFT;智能手机;软件设计;探究性实验

嵌入式技术更新快,安卓操作系统和移动终端更是风靡全球,而市场上现有的嵌入式教仪主要还是以ARM9为主,更高端的相关教仪价格非常昂贵,且设备选择性小,基本面向企业客户,往往不具备明确的控制对象,无法深层次地去理解系统特性,不适合开展自动化系统等相关专业的探究性实验教学。为了更好地将移动终端和安卓操作系统结合到课堂实验中,本文结合智能手机,设计一款基于Android的频谱分析仪作为探究性实验内容,使学生充分掌握安卓平台的App软件设计方法。更重要的是结合专业特点,尝试将移动终端结合到工控领域中,充分发挥移动终端的低功耗、便携性、低成本和开源性等特点,使其充分替代传统的控制方式和测量方法。

频谱分析作为近代的信号分析方法在各个学科研究领域中已经被广泛应用,是从事各种电子产品研发、生产、检验的重要依据。高分辨率、宽频带的数字频谱分析的实现一直是该领域的研究热点。模拟频谱分析仪实时性强,但存在复杂性、封闭性、对硬件依赖性强和价格昂贵的缺点。而目前数字频谱分析仪在实现方式上主要有基于计算机处理的实时频谱分析、基于通用微处理器的实时频谱分析[1]和基于专用FFT处理芯片(ASIC)的频谱分析系统。基于计算机处理的实时频谱分析由于采用软件处理,实时性差,且系统成本高,不适合工程实际;基于通用处理器的实现方案,虽然在实时性上远高于基于计算机处理的实时频谱分析,但在高速场合需多片并行应用,同时系统的编程难度较大;基于专用FFT处理芯片(ASIC)的频谱分析系统,通过选用不同的器件,可满足高速实时的要求,但成本也较高。

综上所述,本文实验鼓励学生探究使用ARM系列Cortex-A8芯片和目前流行的Google移动平台Android操作系统[2-3],设计一款嵌入式频谱分析仪,将Android操作系统用于工业自动化控制领域,同时该频谱分析仪将满足时延、性能和无缝等实际要求。硬件仪器软件化的实现将对以后的生活、工作产生深远的影响。

1 安卓开发平台的搭建

首先,需安装JDK(Java Development Kit),JDK是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库[4-5]。其次,安装Java开发环境Eclipse,它开放源码、是基于Java的可扩展开发平台。就其本身而言,只是一个框架和一个服务,通过插件构建开发环境。最后,在此基础上安装Android SDK(Software Development Kit)便可进行安卓应用开发[6-7]。

2 系统的架构及工作原理

本文处理器采用基于ARM系列的Cortex-A8芯片。Cortex-A8处理器的速率可在600 MHz ~ 1 GHz的范围内调节,能满足需工作在300 MW以下的功耗优化的移动设备和需2 000 Dhrystone MIPS的性能优化的消费类应用[8]。该频谱分析仪的系统框图如图1所示[9-10]。

图1 频谱分析仪系统框图

输入的音频信号经采集过滤后,系统对其进行模数转换,微处理器读入得到的离散信号后进行快速傅里叶变换,输出数据存入缓存区,系统读出数据并将数据进行显示和绘图。为了使AD转换得到的信号不会因为系统处理的暂时延迟或中断而失去连续性,需将AD转换后的数据送入缓冲区。这部分通过软件编程构造循环链表,不断地接收数据,进行FFT处理。系统工作时钟均由安卓内核提供。离散数据信号送入存储器时,要按乱序输入,才能使输出数据按顺序存入缓存中,乱序输入遵从码位倒读规则。

3 音频采集设计

在安卓系统的API函数中与音频有关的包是android.media,其中MediaRecorder和AudioRecord这两个类与音频采集有关。MediaRecorder采集的音频信号是压缩编码后变成的声音数据,因为数据是被压缩的,所以在读取数据时,要面临解压缩的问题。而用AudioRecord采集的音频信号可以直接获得无压缩的脉冲编码调制PCM数据。基于此,本文采用AudioRecord来采集音频信号[11-12]。

声音先经过手机话筒,转换成一系列电压变化信号,通过设置声道数、采样位数和采样频率3个参数转换成PCM格式。在编程中,要对这3个参数进行初始化,在本文中表示为channel、encoding和samplerate。系统中采用的采样频率初始化为8 kHz,设计为可调模式,同时为单声道16位进行采样。其核心代码如下[13]:

public Looper() {

minBytes=AudioRecord.getMinBufferSize(

sampleRate,AudioFormat.CHANNEL_IN_MONO,

AudioFormat.ENCODING_PCM_16BIT);

minBytes=Math.max(minBytes, fftBins);

record=new AudioRecord(AGC_OFF, sampleRate,

AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT,minBytes);

Log.d(TAG, "Buffer size:"+minBytes+"("+record.getSampleRate()+"="+sampleRate+")");

}

4 FFT算法的设计

FFT即快速傅里叶变换,其基本原理是把长序列的DFT逐次分解为较短序列的DFT。按照抽取方式的不同可分为DIT-FFT(按时间抽取)和DIF-FFT(按频率抽取)两种算法。按照蝶形运算的构成不同可分为基2、基4、基8以及任意因子(2n,n为大于1的整数),但基2、基4算法较为常用。DIT(按时间抽取)算法与DIF(按频率抽取)算法没有本质上的区别,只是复数加减法与旋转因子乘法的次序有区别,两种方法的运算量是一样的。在基2算法中,每个蝶形运算单元都包括1次复数乘法和2次复数加法。N(N= 2M)点序列的运算流图应有M级蝶形,每一级都由N/2个蝶形运算组成,所以N点序列的基序列的基2 FFT算法,总的运算量为N/(2log2N)次复数乘法和Nlog2N次复数加法。直接DFT运算量为N2次复数乘法和N(N-1)次复数加法。可见,FFT算法大大减少了运算量,当N越大时,FFT算法的优越性越明显[14-15]。

本次设计中采集点数N有4个选项值,分别为256(28)、512(29)、1 024(210)和2 048(211),每一个采集点数对应一个FFT算法,下面列举N=1 024时的FFT函数核心代码:

void rfftf1(intn, doublec[], final double wtable[], int offset, double[] ch)

{

inti;

intk1,l1,l2, na, kh, nf, ip, iw, ido, idl1;

System.arraycopy(wtable, offset, ch, 0,n);

nf=(int)wtable[1+2*n+offset];

na=1;

l2=n;

iw=n-1+n+offset;

for(k1=1;k1<=nf;++k1) {

kh=nf-k1;

ip=(int)wtable[kh+2+2*n+offset];

l1=l2 / ip;

ido=n/l2;

idl1=ido*l1;

iw-=(ip-1)*ido;

na=1-na;

if(ip==4)

{

if(na==0)

{

radf4(ido,l1,c, ch, wtable, iw);

}

else

{

radf4(ido,l1, ch,c, wtable, iw);

}

}

}

5 软件界面设计

软件界面设计如图2所示。设计界面包括标题、横纵坐标轴单位、6个复选按钮、坐标图和菜单等,其中6个复选按钮功能如下:第一行3个复选按钮从左到右分别是横轴坐标调节按钮、采集点数调节按钮和纵轴坐标调节按钮,其中频率范围选项有8 000、11 025、16 000、22 050、32 000和44 100,涵盖了人耳所能听到的声音频率范围;采集点数选项有256、512、1 024和2 048,分辨率可以得到保障;幅值上限选项为-65、-40、-20和-10,通过调节可以使所测频段曲线突出,方便读取。

第二行3个复选按钮都是功能性按钮,从左到右分别是光标按钮、开(关)按钮和测试按钮。其中光标按钮提供一个可移动的蓝色光标,用来读取坐标值;运行(停止)按钮用来截取所测频谱图;测试按钮用来检验仪器正常与否,如图3所示。

图2 软件界面简图

图3 按钮和坐标图界面

图4 菜单界面

菜单则提供两个选项info和settings,如图4所示,info用来提供软件的基本介绍,settings提供不同坐标图界面风格。

6 成果展示

本文设计实验声源采用虚拟正弦波音频信号发生器,由于正弦波周期固定,便于直观测试软件的优劣。

在虚拟音频信号发生器输入正弦音频信号频率f=1 000 Hz时,软件分析的频谱图如图5所示。

图5 输入频率为1 000 Hz的频谱图

在虚拟音频信号发生器输入正弦音频信号频率f=2 000 Hz时,软件分析的频谱图如图6所示。从测试结果来看,频谱仪的测量是准确的,并且基本无延迟,实时显示了频谱曲线。

图6 输入频率为2 000 Hz的频谱图

7 结束语

本文在安卓移动终端上,通过FFT算法,设计出一款频谱分析的App软件。该软件可修改性强,开发周期比全硬件更有优势,且方便用户根据个人喜好定制仪器的使用范围和界面。同时,成本费和占用空间上也远低于硬件实现或软硬件实现的方式。这是继手机通讯后的又一大进步,将智能手机、电脑功能更加多样化和功能化,测试人员不再需要带上大而沉重的仪器,仅用随身携带的手机即可完成测量和维修,生活和工作更加便捷与舒适。将安卓移动终端引入到行业应用,意义非凡。

因此,将该系统设计作为嵌入式系统课程的探究性实验教学内容,能较好地将相关课程的教学内容与实际需求相结合,拓宽学生的视野,提高学生实际分析问题和解决问题的能力。展示了新一代高性能的嵌入式综合实验系统,使学生更好地了解目前较为流行的嵌入式技术,更好地培养新一代嵌入式人才。

[1]白谱伟,胡庆龙.基于FPGA的信号频谱分析系统[J].电子科技, 2012,25(4):74-80.

[2]周聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代化,2008(8):86-89.

[3]张仕成.基于Google Android 平台的应用程序开发与研究[J].电脑知识与技术,2009,5(10):7959-7962.

[4]赵亮,张维.基于Android技术的界面设计与研究[J].电脑知识与技术,2009,5(29):8183-8185.

[5]王志国,侯银涛,石荣刚.Android智能手机系统的文件实时监控技术[J].计算机安全,2009(12):43-44.

[6]苏亚光, 吕实诚, 于复兴.Android 手机平台下Google天气预报客户端的开发[J].电脑编程技巧与维护,2012(3):60-65.

[7]陈瞰, 陆玲霞, 陈志远.基于智能手机的实时体重健康管理系统软件设计[J].电脑知识与技术,2013,9(6):1370-1373.

[8]李敏, 董志学.基于Android的嵌入式机器声音故障检测系统的设计与实现[J].计算机应用与软件,2013,30(7):301-304.

[9] SHETE P, KURUDE A, BHOLE M, et al.Android based spectrum analyzer[J].International Journal of Scientific & Technology Research, 2013,2(10):303-305.

[10]GOMEZ-TEJEDOR J A, CASTRO-PALACIO J C, MONSORIU J A.Frequency analyser:a new android application for high precision frequency measurement[J].Computer Applications in Engineering Education,2015,23(3):471-476.

[11]陈江波, 黄建忠.基于Android平台下电机振动信号检测系统的设计[J].通信电源设计,2014,31(1):15-17,22.

[12]苏维嘉, 杨静, 唐宇.手机麦克端的数据采集与显示[J].嵌入式技术,2012,38(7):30-32.

[13]陆玲霞, 严明贵.一种新型的实验室安防监控系统[J].实验技术与管理,2012,29(12):207-211,220.

[14]程帅.基于Android平台的数字示波器软件设计[D].哈尔滨:哈尔滨工业大学,2011.

[15]李静梅, 郑超峰, 金玉苹.基于FPGA的FFT算法时间[J].应用科技,2009,36(2):38-40.

Design of Inquiry Experiment of Spectrum Analyzer Based on Android

LU Lingxia, PENG Yonggang, HE Dongxing

(College of Electrical Engineering, Zhejiang University, Hangzhou 310027, China)

According to the problems of the spectrum analyzer expensive and with poor open source and portability, based on the ARM series of architecture A8 and popular mobile platform of Android OS recently, a piece of spectrum analysis software was designed in the smart phone through the FFT algorithm in order to real-time process the audio signal, and also the spectrum was real-time displayed through the mobile phone screen to realize the function of spectrum analyzer.This way is a kind of pioneering work which the Android OS is used in the field of industrial automation and control platform.The spectrum analyzer will satisfy the delay performance and actual requirement of seamless, and have good man-machine interface, and also meet practical requirements such as delays, performance and seamless which can provide good experimental material for the inquiry experiment of the embedded curriculum.

Android; spectrum analysis; FFT; intelligent mobile phone; software design; inquiry experiment

2015-06-01;修改日期: 2016-06-21

陆玲霞(1982-),女,硕士,工程师,主要从事智能控制与嵌入式系统设计方面的工作。

10.3969/j.issn.1672-4550.2016.04.012

猜你喜欢

安卓分析仪嵌入式
iPhone不卡的秘密曝光:安卓也能享受
Sievers分析仪(苏伊士)
一种用于深空探测的Chirp变换频谱分析仪设计与实现
文物表情包
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
一种基于安卓系统的手机侧抓包分析方法
全血细胞分析仪配套操作台使用体会
安卓L未至安卓M来了!安卓首泄漏M系统
Altera加入嵌入式视觉联盟