基于Android系统的信号仿真APP的设计与实现
2018-02-25李天赋朱齐媛
李天赋 朱齐媛
摘要 教育产业逐步紧跟时代发展潮流,面向现代化、便利化、高效化、大众化发展。经过分析当今信号与系统学科的学习现状和需求,结合互联网+发展趋势,运用移动互联技术,设计并实现了一款基于Android系统的信号仿真APP,对学生了解并且深入学习信号与系统课程带来更加便捷的途径。解决学生在学习中因为实验硬软件的限制不能深入学习的问题,为学生提供可移动、方便、快捷的服务,将学习变为真正的随时随地、 “随心所欲”。
【关键词】Android APP 信号与系统 移动互联网
在模拟电路、数字电路以及信号与系统等课程的学习中,不单单需要学习理论知识,同时需要掌握相关计算机的软件作为辅助学习的方法或者手段,这样理性和感性的学习,可以更加有效提高学生学习的积极性以及最大程度提升学习的效果。目前常见的电子线路仿真软件主要有Proteus、Labview、Matlab等等……随着信息技术日新月异的发展,相关软件的熟悉、灵活运用对于学生理解并掌握相关技术课程来说至关重要,然而计算机差强人意的移动性以及软件本身的复杂性会给学生的使用带来诸多不便。
现代移动技术、信息技术的发展,从各个角度影响着社会的进步和发展,近几年手机APP的发展,极大程度的丰富了手机应用的市场,另外在教育教学领域也开始有了APP的身影并且未来的发展不可限量。一款基于智能手机平台功能强大的APP可随时随地进行信号与系统等课程的实验,为学生提供可移动、方便、高效、快捷的服务,将学习变为真正的随时随地、“随心所欲”,在移动互联网发展快速的今天,利用碎片化的“微学习”俨然已经成为了一股热流。
1 基于Android系统的信号仿真APP主要实现的功能以及功能分析
1.1 基本信号(脉冲函数、三角函数、指数函数……)
这些主要是信号与系统课程教学中的核心函数,作为信号仿真体系中的主要函数、基本函数,可以构成系统仿真所需的任意函数,至此看出,这类函数的重要性,所以在设计APP的基础信号中,首要考虑的就是类似于脉冲函数、三角函数、高斯函数及指数函数等基础函数。
1.2 线性时不变系统的相关技术和卷积
线性时不变系统,它是信号与系统的重要组成部分,是构成系统分析的关键部分。在现代系统体系里,绝大多数的系统都是非线性系统,但是线性系统研究是够成非线性系统研究的基础,通过对线性系统的分析和学习可以有效的提高对非线性系统的认识,可以在最大程度上帮助非线性系统的分解分析和处理。线性系统满足可加性和齐次性,可以通过这个条件判断系统是否为线性系统。同样,时不变特性也是信号与系统学习中非常重要的一个特性。其特点是就是系统的参数不随时间而变化,即不管输入信号作用的时间先后,输出信号响应的形状均相同,仅是从出现的时间不同。
卷积运算,它是广义函数和泛函分析中的重要组成部分,是一种积分变换的数学方法,在许多方面都有广泛的应用,特别是在信号与系统的本科教学中,整门课程的安排针对信号和系统里的基本函数和基本运算的介绍大约为全部理论的20%,剩余的80%基本上都是围绕着卷积运算展开和延拓的。
1.3 傅里叶级数
任何周期函数都可以用正弦函数和余弦函数构成的无穷级数来表示,这称为傅里叶级数,是一种特殊的三角级数。傅里叶级数具有正交性、收敛性和奇偶性,其中收敛性要满足狄利赫里条件:在任何周期内,x(t)须绝对可积;在任一有限区间中,x(t)只能取有限个最大值或最小值;在任何有限区间上,x(t)只能有有限个第一类间断点。引入傅立叶级数复指数形式的好处有二:
(1)复数振幅同时描述了第n次谐波的振幅An和初相角Ⅷ;
(2)为研究信号的频谱提供了路径和有效支持。
l.4 连续时间的傅里叶变换
连续时间的傅里叶变换是一个特殊的把一组函数映射为另一组函数的线性式子。傅里叶变换主要是将时域上的信号转化为频域上分析,由于实际中的信号是由有用信号和噪声组合成的,转换到频域上,能够进行频谱分析,从而在频谱中把两者区分开,从而更好的分析我们研究的信号。傅里叶原理表明,任何连续的信号都可以表示为不同频率的正弦波信号的无限叠加。而根据该原理创立的傅立叶变换算法利用直接测量到的原始信号,以累加方式来计算该信号中不同正弦波信号的频率、振幅和相位。
l.5 数字信号的合成以及信号的转换
在数字信号的合成过程中,主要是以频率合成技术为主。一个电子性能的好坏,主要取决于信号源性能的好坏。频率合成理论自20世纪30年代被提出来以后,已经逐步发展为以下四种技术:直接频率合成技术、锁相频率合成技术、混合式频率合成技术和直接数字式频率合成技术。数字信号的合成技术在通信、雷达、广播、導航等领域都广泛应用。信号的转换是将当前信号转化为所需的信号,方便进行信号的处理、研究,目前可以将电信号转化为数字信号,将模拟信号转化为数字信号等等,根据自己的需要而选择不同的转换器,从而实现信号的转换。
2 APP客户端的设计与功能实现
2.1 系统框架设计
如表1所示,根据系统分析,系统的信号仿真平台由用户界面(客户层)和控制信号生成(应用层)两部分组成,通过android studio开发平台,对xml布局文件编写调整形成直观的用户界面,调用MPAndroidChart图表库生成相应的图形界面;运用JNI技术实现应用层功能。客户层主要用于与客户的信息交互,信息显示以及简单的信息处理;应用层主要负责将客户反馈的信息进行功能的实现,例如客户想要实现一个三角函数信号,触发点击事件后,经过处理数据,运行指定代码,实现信号生成。通过这样的方法,让客户更加直观明了的认识该APP的功能,更加方便快捷的满足客户要求。
2.2 功能设计与实现
2.2.1 界面设计
界面采用直接抽屉盒展示内容的方式,清晰的将基本信号、线性时不变系统和卷积、傅里叶级数、傅里叶变换和数字信号及转换的功能呈现在客户面前,界面简洁,增添搜索栏,让客户更容易上手,使用起来方便快捷。部分界面如图l所示。
2.2.2 部分功能设计
设计过程:
matlab信号实现一>分析信号图像一>生成C代码一>导入c/.h文件一>调用AndroidNative Development Kit (NDK)方法一>信号实现。
以脉冲函数为例:
(1) matlab源码:
function [xl]=Lab3_l(a,Delta)
FO:Delta:8-Delta;
xl=a*[ones(l,round(4/Delta》zeros(l,round(4/Delta》];
plot(t,xl);
(2)生成信号图像分析,如图2所示。
(3)生成C代码(部分),如下所示:
static float rt_roundf_snf(float u){
floaty;
if《fioat) fabs(u)< 8.388608E+6F){
if(u>=0 5F){
y= (float) floor(u+ 0.5F);
) else if(u>-0.5F){
y=U * 0.OF;
) else{
y= (fioat) ceil(u - 0.5F);
)
,else{
y=U;
)
returny;
}
(4)导入源文件和头文件,如图3所示。
(5) Android Native Development Kit(NDK)方法调用代码(部分),如下所示:
JNIEXPORT jobjecrArray JNICALL
Java com xqdd function ldiagramfragment_ funcrions_basic_l signalImpulseFragment_impulse(JNIEnv *env, jobjectinstance,jfloat a,jfloat delta){
Lab3_ljnitialize();
emxArray_reaI32_T *xl;
emxInitArray_rea132_T(&xl, 2);
}
3 APP系统测试与仿真
APP系统测试与仿真如图4、图5、图6所示。
4 结语
当今,我们的生活已经无法离开网络,网络无处不在,一种新的模式兴起,必定会对传统模式形成冲击。教育也不例外,传统的教育教学模式已经无法满足人们迫切获取知识的诉求。提高学生自学能力和动手能力是各大高校所亟待解决的问题,但是由于教学资源的限制和制约,不能很好的满足学生的需求,于是打破传统的教学方式,运用互联网充分发挥学生的思维能力,提高动手能力的移动教学APP应运而生。
项目将进一步研究和开发实现以下目标:进一步完善信号与系统课程的全部函数功能、最大程度的实现界面人性化、将互联网+教育带进各大高校和课堂、打造碎片化的“微学习”新模式。
参考文献
[1]贺艳平,张海东,王向丽,基于MATLAB的信号与系统教学改革研究[J],甘肃科技,2017,33 (24): 59-61.
[2]马玉慧,赵乐,李南南,王硕烁,新型移动学习资源 教育APP发展模式探究[J].中国电化教育,2016 (04): 64-70.
[3]沈旭,基于Android的中国海博会App及后台的设计与实现[J].电脑与信息技术,2018,26 (01):23-26.
[4]黄超琼,王天宝,陈超,张利,基于安卓的智慧农业APP设计与实现[J],软件导刊,2015,14 (01):1-3.
[5]廖灿灿,张树群,雷兆宜.Matlab Coder生成C代码的研究与应用[J].計算机与现代化,2013 (03):175 -178+183.