收藏 分享(赏)

基于Android的音乐视频播放器的设计与实现12.58.doc

上传人:晚风 文档编号:4173168 上传时间:2021-07-23 格式:DOC 页数:34 大小:1.61MB
下载 相关 举报
基于Android的音乐视频播放器的设计与实现12.58.doc_第1页
第1页 / 共34页
基于Android的音乐视频播放器的设计与实现12.58.doc_第2页
第2页 / 共34页
基于Android的音乐视频播放器的设计与实现12.58.doc_第3页
第3页 / 共34页
基于Android的音乐视频播放器的设计与实现12.58.doc_第4页
第4页 / 共34页
基于Android的音乐视频播放器的设计与实现12.58.doc_第5页
第5页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、在很多领域之中,这种里程碑式的技术是不可能被淘汰的,现如今也被不断的完善和发展,也逐渐的揉入到了我们的生活中,密不可分。我们要去学习的不仅仅是单片机技术本身,更重要的是学习汇编过程中折射出的思维模式,结合自己的创造性,不断进步。本系统所使用的是哈佛结构的MCS-51型号的单片机,具有64KB的程序存储器寻址空间。内部具有128或256字节的RAM用来存储数据,这些单元均可读写,部分还可以位寻址功能。其中用户数据RAM可分为三大区:工作寄存区、堆栈和数据缓冲区以及位寻址区。具体的结构构成以及框图在此不做赘述。单片机最小系统如图3.2所示:图3.2 单片机最小系统框图该图中显示了复位部分,如下图3

2、.3。该部分复位电路是上电/按键手动复位电路,也就是说,这部分电路使得系统可自动上电复位,也可以由用户手动按下按键进行复位。那么其工作原理是这样的:按下按键,电容C1充电(C1的值为2.2F,比较小的一个电容,因为对参数的要求并不是很严格,那么只要电容的充电时间大于两个机器周期就能达到稳定可靠的目的,这也是RC复位电路的优点所在。),使得RST一端快速到达高电平;按键放开的瞬间,电容释放电到芯片内阻,这时RST一端恢复到低电平,单片机达到可靠复位的目的1。(这里对于电阻的选择,主要根据充电时间t=RC来决定,前面说了,大于两个机器周期即可,我选择小一点,电阻值为2K)。 图3.3 复位电路图3

3、.4 晶振电路如上图3.4所显示电路,就是所谓的晶振电路,毫不夸张的说,没有晶振就没有时钟周期,没有时钟周期,单片机就是一片废物,这么说也是强调晶振电路的必要性。是片内时钟振荡方式,需要在管脚18和19之间外接石英晶体(频率为1.212MHz)和震荡电容(震荡电容的作用是:容易启震和减小频率的温漂),震荡电容的值一般取1030pF,典型值为30pF(这是教材上所列出的典型值)。在此简单对单片机的P3口进行介绍:是8位准双向I/O端口。是一个复用功能口。有两个功能作为使用:第一种,作为简单的I/O口使用,其使用方法与P1口的使用一致;做第二功能使用时,其功能如下表3.1所示。P3口的每一个引脚都

4、可以单独定义。表3.1 P3口的第二功能端口线第二功能P3.0串行口输入P3.1串行口输出P3.2外部中断0输入P3.3外部中断1输入P3.4T0的外部输入P3.5T1的外部输入P3.6“写”信号输出P3.7“读”信号输出3.2.2扩展的时钟芯片采用最为常见的DS1302日历时钟芯片,该款芯片走时精确,可为多通道数据采集、实时控制和定时提供时间基准和同步信号。这款芯片可对年、月、日、星期、时、分、秒分别进行计时。该芯片的工作电压范围为2.5V-5.5V,功耗较低。设计的期间,考虑到长期保存,防掉电,采用外部充电电池加电,从而能够达到保证系统掉电仍有供电的目的,时钟电路模块原理图如图3.5表示:

5、图3.5 日历时钟模块当单片机与时钟芯片进行数据传输时,单片机必须先向芯片内写入控制命令字,然后芯片进行判断,如写入的字选择是单字节模式,那么通过连续的SCLK脉冲进行数据的输入或输出,这里的输入输出数据大小为1B;若判断字选择为突发模式,则通过连续脉冲SCLK可以一次性写/读时钟寄存器(必须一次性且全部完成,不可以根据需要读/写),大小为7B,也可以达到一次性读/写1-31B的RAM数据(读/写数据可以根据需要完成,不要求全部完成)。当二者之间无数据传输时,芯片的状态如下:SCLK处于并保持低电平,当RST处于低电平时,禁止数据传输;那么当RST由低位升为高位时,则启动数据传输,传输时,低位

6、在前,高位在后。数据在控制字指令输入后的下一个脉冲上升沿被写入芯片内,读出数据的过程类似写入数据的过程,则在下一个脉冲的下降沿被读出,每次读/写1位,而连续8个脉冲信号可以读/写1字节。注意图中所设计的防掉电保护电路,如下图3.6所示。采用两个续流二极管1N4148、两个电容和一个3.6V电池组成。其工作原理是:当系统掉电,该电路工作,由电池对芯片提供电源,防止数据丢失。这其中,电容在一直充电,为了防止突然掉电,二极管的作用是为了单向导通。原理很简单,VCC端掉电,由电池继续供电。设计此电路,就是为了提高系统稳定性以及可靠性。图3.6 防掉电保护电路3.2.3扩展的键盘模块采用3x3矩阵式键盘

7、。设计之初,考虑到使用独立键盘会给后期编程造成很大的麻烦,综合系统的稳定性以及可靠性考虑,决定使用矩阵式键盘,对其按键的识别则采用动态扫描法。线路连接图如下图3.7:图3.7 键盘模块利用软件延时来达到消除键抖动的目的,然后再对按键进行判别与处理。从图中可以看出,我是用了一个74LS245的芯片将矩阵式键盘连接到单片机的P0口上,下面我简单介绍下74LS245芯片。该款芯片是一款比较常见,使用比较广泛的芯片,其作用是用来驱动外接设备的。其本质是一个8路同向三态双向总线收发器,可以进行双向传输数据,即可以输入数据也可以输出数据。设计中,之所以使用该芯片,是因为外接键盘和液晶屏,超过了MCS51单

8、片机P0口最大负载。芯片的接收模式为:当片选端处于低电平时,DIR端为“0”,信号则有B端向A端传输;若DIR端为“1”,信号则由A向B传输。当片选端处于高电平时,那么A和B均处于高组态状态1。扩展的键盘使用动态扫描法,之所以采取此种方法,是为了节省I/O接口,而且编程也较为简单。此方法不仅可以扫描键阵,还可以同时兼顾实现显示硬件设计,使用广泛。在扫描过程中,“移动”信号轮流对各行按键进行检测,回送线上必须接上拉电阻。首先,行线输出全为0,然后读“列线”,全为1时,代表无按键按下;否则代表有键按下,需要进行延时去抖动。将某行输出置位0,读取“列线”状态,判断“列线”上某位是否为0,为0则代表该

9、处交叉点的按键被按下;不为0,则代表无按键按下。继续扫描下一行,直到全部扫描完成1。3.2.4扩展的液晶屏显示模块采用LCD12864液晶屏显示,关于该模块的硬件介绍不做过多赘述。12864自带中文字库,内部含有国际一级、二级简体中文字库的点阵图形液晶显示;利用模块的灵活性和方便的操作指令,构成全中文的人机交互界面。管脚功能如下表3.2所示;表3.2 管脚说明管脚号管脚名称管教功能1VSS电源地2VCC电源正3V0亮度调整4RSRS=H,则显示数据RS=L,则显示之灵数据5R/WR/W=H,读数据R/W=L,写数据6E使能信号7DB0三态数据线8DB1三态数据线9DB2三态数据线续表3.410

10、DB3三态数据线11DB4三态数据线12DB5三态数据线13DB6三态数据线14DB7三态数据线15PSBPSB=H,则处于并口方式PSB=L,则处于串口方式16NC空脚17/RESET低电平有效的复位端18VOUT驱动电压输出端口19A背光源正端口20K背光源负端口设计采用该型号液晶屏是因为中意它丰富的操作指令,即关键在于注意软件编程,一定要定义好硬件连接的引脚,进行编程时,首先编写显示初始化程序,然后进行设置显示地址,在之后进行写入显示字符的数据。模块图如下图3.8所示:我使用了一个74LS245芯片进行液晶屏与单片机的连接。图3.8 液晶屏显示模块3.2.5小灯闪烁模块如图3.9表示。简

11、单的由一个限流电阻和一个发光二极管组成,因为LED灯不允许直接与单片机连接。硬件很简单,依靠软件编程实现小灯的闪烁效果。图3.9 小灯闪烁模块3.2.6蜂鸣器模块如图3.10,标准的蜂鸣器模块,简单的由一个三极管、一个电阻和一个蜂鸣器组成,电路结构简单,编程简单。端口内部无上拉电阻,外接时,接了一个外接电阻R11,阻值取的较大,为10K。设计之初,加了一个延时函数,叫一声就关闭,但在与指导老师的讨论下,这种功能不合适该系统,从用户的角度来看,我需要的是蜂鸣器一直发声警报,反而最简单的是最实用的。 图3.10 蜂鸣器模块蜂鸣器的参数如下表3.3.表3.3 蜂鸣器参数额定电压1.5工作电压范围1.

12、01.7最大电流值80mA电阻610DBA70100工作频率3000注意三极管的使用。要明白,之所以使用三极管,是因为蜂鸣器的工作电流比较大,而单片机I/O口工作电流比较小(4mA7mA),所以无法直接驱动,那么就需要一个放大电路来驱动,一般来说,使用一个三极管即可。这里选择的三极管采用常用的NPN型的9013或PNP型的8050等,放大倍数取在100左右。蜂鸣器以及小灯都主要为“提醒功能”服务的,如事务提醒,定时到时提醒,倒计时提醒等。软件部分编程也较为简单。4 事务管理系统的软件设计分析 基于单片机的事务管理系统的难点就在于对系统的软件分析和编程,从上文的进行来看,该系统所需模块较少,充分

13、利用了每个模块的每个元件的功能,如51单片机的所有I/O接口,日历时钟芯片的定时/计时的功能。将在下文中详细介绍。该部分主要罗列各功能实现的流程图以及对流程图的说明及解释。4.1 时钟模块软件分析4.1.1时钟命令字长期的事务管理要求日历时钟芯片有精确的实时时钟,能够提供精准的时间基数。时钟芯片的命令字如下表4.1。表4.1 命令字765432101RAM/C/KA4A3A2A1A0RD/W4.1.2 初始化步骤在使用DS1302之前,应该对其进行初始化,初始化步骤设计如下:(1) 取RST得非端为0,取SCLK端为0,则初始设置为禁止读/写,串行时钟的输入为低电平。(2) 向芯片内写入允许写

14、命令,禁止写保护。(3) 向芯片内写入年、月、日、星期、时、分、秒的初值,如下表4.2:表4.2 初值年月日星期时分秒8CH88H86H8AH84H82H80H(4) 设置写保护。4.1.3 注意事项对1302的使用有以下注意事项:(1) 当/RST处于高电平时,才能进行读/写操作。(2) 必须采用单字节进行读/写操作。(3) 采用突发模式进行读/写操作。(4) 判断是否需要进行对备用电池的充电操作。4.1.4 流程图在设计中,设计思路是每设定的预定时间,系统利用时钟芯片所提供的时间与所设定的时间进行比较,当二者数值相符合时,触发蜂鸣器电路,蜂鸣器导通报警提醒,同时小灯闪烁,这里的闪烁利用软件

15、编程实现。流程图如图4-1:图4.1 事务提醒流程图具体设计思路如下:日历时钟芯片会自动进行当前时分秒计时,当使用者设定好事务提醒时间后,系统先进行时位上数据的比较,时位不相等时,就不会往下进行分位的比较,继续时位的计数;而当时位与设定时间的时位相等时,进行下一项分位比较,若分位的值不相等时,就不会往下进行秒位比较;而当分位相等时,则进行下一项秒位的比较,秒位不相等时,下一秒自动进行比较,直到时、分、秒这三位数值都与所设定值相等时,反馈一个信号,触发蜂鸣器报警。由于计算机的处理速的很快,也就是说单片机在这一秒内的判断很多次,系统一直处于报警状态,那么就设定一个环节,识别按键是否按下。若无按键按

16、下,表示用户不在周围或者用户未接到警报,那么蜂鸣器会一直在滴滴响,当警报持续60s后,仍然无按键按下,则目标值分位上的数据+3处理,返回继续进行比较,直到该事件被处理。若有任意按键按下,则表示用户收到提醒,系统转入另一判断,该事件是否已经由用户设定为循环事件,若是,则根据设定值,进行各位时间值的增加。比如说,用户编辑“跑步”事件,设定时间为06:00,每天循环。那么就将当前设定值的时位进行+24处理。若不是循环事件,那么将当前时间数据清除,并调取数据存储器中的下一条时间设定值,再次进行数值比较,周而复始。 编程当中,不能使用中断指令,应该采用较为简单的逻辑比较指令。4.2 秒表功能的实现。4.

17、2.1 秒表计时原理利用单片机本身的定时器/计数器T0、T1来达到,并且利用中断进行秒表的启动和停止,同时利用RST进行秒表清零。单片机有五个中断源,这里使用的是片内定时器/计数器溢出中断T0和T1:其工作原理是当定时器/计数器计满回零产出溢出时,相应的硬件置位于中断标志,当CPU相应中断后,那么硬件自动清零中断标志。而串行口发送或接收1帧,之后硬件置位响应中断标志;CPU响应中断,之后由用户手动清零中断标志。秒标工作流程图如下图4.2:其中T0设1ms图4.2 秒表工作流程图4.2.2 秒表启停秒表的启停则是利用RST按键来进行,当屏幕中有秒表计时的时候(即有初值的情况),若按下RST键,那

18、么回到初值;若没有按下RST,那么判断是否有其他任意键按下,若按下,则进行重新计时,和按下RST键达到的效果是一致的。若没有其他键按下,触发蜂鸣器警报,确认是否有按键按下,若有,返回重新计时;若没有,则单片机上电自动复位。流程图如下图4.3:图4.3 秒表复位流程图4.3 键盘模块3x3矩阵式键盘扫描程序流程图如图4.4。图4.4 矩阵键盘扫描程序流程图如上图4.4所示,键盘的扫描过程并不复杂,在硬件设计中提到过,采用动态扫描法。首先,使得行线输出全为0,然后读取“列线”,全不为1时,代表有键按下,下一步需要进行延时10ms进行软件去抖动。流程图中的“确认有键闭合”是指继续将某行输出置位0,读

19、取“列线”状态,判断“列线”上某位是否为0,为0则代表该处交叉点的按键被按下;在之后判断按键是否被释放,若未被释放,继续返回确定建号,若按键得到释放,则返回键号。当判断不为0,则代表无按键按下,则返回上一步。以此种模式继续扫描下一行,直到全部扫描完成。下图4.5流程图是在设计中考虑到的键盘接口处的电路流程图。图4.4是在解释键盘的动态扫描的过程,而我绘制图4.5的目的是为了突出延时去抖动的过程,二者流程图很相似,但软件编程大有不同。软件去抖动的原理很简单:检测判断有按键按下时,执行一段延时10ms的子程序,然后再确定点评是否仍保持闭合状态,若依旧保持,也就是再次确认是否有按键按下,确认后才是真

20、正的按键按下,最后进行相应的处理。这里需要注意的是,按键释放也要进行10ms的延时处理,等待后沿去抖动后再次判断按键是否释放,以此保证消除按键抖动对于系统的影响。而图4.5所谓接口电路流程图就是强调扫描前,确认“行线”输出为0,然后读取“列线”的情况5。4.4 定时器模块这个模块中定时的功能与4.1中事务管理的功能相似。用户可以进行事件名称输入,比如衣服放在洗衣机中进行机洗的时间为30min,那么定时的格式为“洗衣服 30min 重复:否”格式中所谓重复项,为选择,选择是或者否。和4.1章节中介绍的事务提醒有很大的相似,唯一最大的不同就是,定时功能的设计上,要求每次只能设定一个时间,执行完才能

21、够写入下一个定时。4.5 功能分页这个部分进行说明的是对系统显示进行功能分页,每一个功能为一页。也就是说,设置一个键盘按键,比如取右下角的一个按键,命名为“any”,这个按键被识别按下的时候,单片机进入选功能页程序,这时显示屏上显示第一页:事务提醒;再按一下显示第二页:秒表功能;再按一下显示第三页:定时功能。这项功能属于细节处理,硬件设计中,就考虑到了功能分页的情况。对于此项功能的实现,主要依靠子程序的调用和编辑。图4.5 键盘接口电路程序流程图5总结与展望5.1 总结本设计是“基于单片机的事务管理系统”,设计之初,首先明确的是事务管理系统的框架,了解由哪些部分构成以及实现这些结构的元器件连接

22、,并掌握系统所要求达到的功能以及能够实现这些功能的流程图。在本设计中,要求有事务提醒功能,想一想,多从用户的角度考虑问题,很多小细节需要考虑到,而且很多都是难点。比如说事件暂时不能得到处理该怎么办?事件一直不能得到处理该怎么办?事件的编辑该怎么实现?等等一些列问题,这些也是导致该系统的缺点所在,我所设计的这款 目 录摘 要IIAbstractIII前 言1第一章绪 论11.1研究背景及意义11.2短时交通流预测国内外研究现状2第二章时间序列预测模型相关理论22.1时间序列模型预测概述22.2时间序列模型预测原理32.3时间序列预测算法4第三章短时交通流预测93.1短时交通流预测概述93.2短时

23、交通流预测的评价指标93.3交通流数据的选择103.4数据性质11第四章运用时间序列模型进行短时交通流预测114.1运用三种时间序列算法进行短时交通流预测114.1.1趋势拟合法114.1.2平滑法164.1.3 ARIMA方法194.2预测结果对比分析214.2.1对一次指数平滑法进行拟合22第五章结束语235.1论文的优点235.2论文的不足23参 考 文 献24致 谢25附录:Matlab软件程序26 摘 要随着现代社会的高速发展,城市车辆越来越多。随之而来的,道路阻塞和交通事故层出不穷。这些交通问题严重影响着人们的出行,急需解决。解决这些问题就需要对某一路段未来某一时间段的交通状况进行

24、科学的预测,从而为交通规划、运输业、交通管理、交通控制提供重要技术保障,实现交通智能化。本文从预防的角度出发,在考虑成本的条件下,利用已有的历史数据(车流量、车道占有率)运用时间序列模型对路段的未来短时交通流数据进行预测,为争取更多的时间解决将要发生的交通问题做好充分准备。 本文以贵阳市的实际测量交通流数据作为训练样本,利用MATLAB编制程序,使用线性拟合、曲线拟合、移动平均法、指数平滑法和ARIMA模型进行预测、分析、比较。并对指数平滑法得到的结果进行了改进,提高了预测精度。关键词:交通智能化,时间序列,短时交通流,预测分析AbstractWith the rapid developmen

25、t of modern society, more and more cars appear in cities, which make the traffic congestion and the traffic accidents emerge endlessly. All these traffic problems are not good for peoples travel, and need to be solved immediately. To solve these problems, we need to predict the traffic conditions of

26、 a road in a certain period of time in future. We can give important technical support to the traffic and transportation planning, the transportation, the traffic management and traffic control, to realize intelligent traffic. From the perspective of prevention, our paper used the existing historica

27、l data (the number of cars, lane occupancy) and the time series model to forecast a short-term future traffic flow data of a road under the condition of considering cost and save more time for solving the traffic problems that will occur in the future.Using the actual measurement of traffic flow dat

28、a in GuiYang as the training sample, our paper took advantage of the MATLAB programming and some methods( e.g. the linear fitting, the curve fitting, the moving average, the exponential smoothing and so on) to forecast, analyze and compare. Finally, we improved the result and prediction accuracy of

29、the exponential smoothing method.Keywords: Intelligent Transportation, Time Series, the Short-term Traffic Flow, the Analysis of Prediction 前 言作为贵州省省会的贵阳,在全省的文化、政治、经济各方面都占据着至关重要的位置,而且贵阳市人口众多,交通负担极大。截至2013年底,贵阳市有450万的城镇居民,达到97万辆的机动车保有量。贵阳是一个坐落在群山之间的城市,周围的山岭和高地在一定程度限制了它的扩大,因此它的未来发展比较难通过大规模扩建城市来进行,而主要应

30、该通过对现有规模的城市进行合理规划,不断协调好城区各个部分的功能及其相互之间的影响。交通规划作为城市规划的重要环节,占据着很大的一部分比重,而且交通的规划还对城市的发展有着非常巨大的作用。随着经济的发展,有限的城市规模已容不下越来越多的车辆,严重的交通堵塞及其带来的问题严重困扰着人们的生活。因此缓解交通压力,较好地规划与交通有关的系统,对城市未来的多方面发展至关重要。第一章 绪 论1.1研究背景及意义据有关部门统计分析,近年交通拥堵带来很大经济损失,使运输速率下降,交通事故频繁发生。加大对交通设施的建设是无疑是一种很好的解决问题的方法,但却要耗费巨资。由此,预测交通状况从而达到减缓交通拥堵、节

31、约资金,无疑是一种极佳的平衡办法。也是未来交通必然的发展形势。为了使交通控制进一步达到智能化,实时准确的预测交通状态信息则成为实现智能交通诱导和控制的重要基础,同时也是交通智能化管理的重要需求。根据道路交叉口和道路主干道的断面交通数据流信息,利用模型算法进行短时交通流预测,并将信息提供给人们,方便出行者以此作为出行路线选择的参考,方便人们根据车流量选择最优的出行路线,从而避免浪费过多的时间,使资源能得到充分利用,合理优化。其巨大的、长期的、潜在的收益是巨大的。综合看,城市交通拥堵预测的实际意义是不可估量的。1.2短时交通流预测国内外研究现状随着科技的不断发展,交通智能化正在慢慢的走进人们的生活

32、,对城市道路主干道的交通流数据采集也越来越准确。目前,用环形线圈检测车流量是我国普遍采用的技术。一些先进的交通设备也逐渐开始被用来检测实时交通流量。然而,不管我们用什么器材来检测,对于智能交通来说,采集的数据始终是处于滞后的位置。而如果想对未来路段的交通状况进行预测,前提就必须预测出该路段的短时交通流数据。目前,交通智能化在国内外的研究中还是处于不断发展的状态,对于交通流的短时预测还没有比较完善的理论成果。城市道路主干道交通流的中期以及长期流量预测研究成果较多,关于短时交通流预测的方法也有很多,但并没有特别成熟满意的定论。这与道路短时交通流数据的数据特性有很大的关系,预测值往往受到随机干扰因素

33、的影响,导致不确定性很大,没有明显的规则性。关于短时交通流预测的模型有很多,在以往的研究中主要有:多模型融合预测、神经网络模型、Kalman滤波模型,多元线性回归模型、时间序列模型、历史趋势模型方法等。第二章 时间序列预测模型相关理论2.1时间序列模型预测概述 短时交通预测方法通常分为定量预测方法和定性预测方法,定量预测主要包括回归分析预测和时间序列预测。回归分析预测法主要根据自变量与因变量之间的相关关系来构造数学模型,从而用自变量的预测值来实现对因变量未来状况的预测。时间序列预测法将预测对象的历史数据按照时间顺序排成时间序列,根据历史数据随时间变化的规律建立相应的时间序列模型,从而预测未来状

34、况。 时间序列模型预测的主要目的是根据研究对象统计指标的历史数据建立尽可能适合的模型。根据数据的特点,往往将其进行因素分解,分为趋势项、季节项、随机项、循环项,如下:(1) 长期趋势()。该因素会导致序列呈现明显的长期趋势。(2) 循环波动()。该因素会导致序列呈现反复循环波动。(3) 季节项变化()。季节因素会导致该序列出现一定的周期变化。(4) 随机波动()。除了 、外,序列除了上面因素的影响外,其他因素也会不同程度的影响序列造成序列的随机波动。因此在用时间序列模型进行短时交通流的预测过程中,针对有些方法可以分离其中的趋势项、随机项和季节项。时间序列预测的模型有很多,主要有线性模型,二次曲

35、线模型,平滑模型、ARIMA模型等。 趋势拟合法的因变量是序列观察值,自变量是时间,并以此建立序列观察值随时间变化而变化的回归模型,主要建立线性模型和二次曲线模型。平滑法分为移动平均法和指数平滑法。移动平均法根据已经得到的历史序列,通过一个移动平均步长N ,求出预测期前N个时间点的历史数据均值,将结果作为预测值。 移动平均法具有简便、直观和易懂等优点,同时容易从序列中排除季节项的干扰。指数平滑法是对移动平均法的改进。它克服了移动平均法的各期权重均为的缺点。2.2时间序列模型预测原理用时间序列预测前应将观测值,根据时间先后排成一列。时间序列模型预测,通过对观测数据做趋势分析图,根据趋势图所反映出

36、来的数据变化过程和趋势,进行模型选择,通过模型的评价标准确定最佳的预测模型,用此模型进行预测,得到未来的预测值。主要包括:收集与整理历史数据资料;将历史数据按照时间排成序列;分析时间序列的表现出的趋势情况,寻找一个模型能够表现该时间序列变化规律,进而通过该模型去预测未来的情况。图2.2 是时间序列预测模型的基本流程图。本文根据交通部门提供的历史数据,利用贵阳一环主干道的交通流数据(每5分钟一次反馈数据),数据具有规律性、随机性、时变性和相关性。模型预测的一般步骤: (1)数据处理:收集整理数据,对数据进行预处理,如采用中心移动平均法填补中间丢失的数据、删掉错误数据.(2)研究处理后的数据的变化

37、状况。根据数据的图形,分析图形波动的趋势。 (3)根据数据的波动变化趋势,选择相对合适的模型和算法,利用选择的模型和算法进行预测分析。 (4)通过运用模型评价标准,对所有预测模型得到的结果进行对比分析,确定最佳模型,并进行改进。 (5)利用改进后的最佳模型进行预测,得到预测结果。 图2.2 时间序列预测模型的基本流程图2.3时间序列预测算法 时间序列有很多模型算法,如趋势拟合法、平滑法、ARIMA模型、自适应滤波算法等,其中趋势拟合法包括线性拟合和曲线拟合;平滑法包括移动平均法和指数平滑法。下面主要介绍趋势拟合法和平滑法以及ARIMA模型。一、 趋势拟合法趋势拟合法的因变量是序列观察值,自变量

38、是时间,并以此建立序列观察值随时间变化而变化的回归模型,主要建立线性模型和二次曲线模型。现分别介绍如下:1. 线性拟合如果序列表现出线性的长期趋势,则往往可以用线性模型来进行拟合,模型如下:式中,为随机波动;代表该序列在去除随机项后对观测值进行的长期趋势预测。2. 曲线拟合若观察值序列的长期趋势表现出非线性特征,那么可以用曲线模型来拟合。估计曲线模型的参数的指导思想是:能用线性模型的都用线性模型,并用最小二乘法进行参数估计,如果不能转换成线性模型,则可以用迭代法进行参数估计。(1)、二次型模型: ;变换:令 ,原模型变换为: 参数估计方法:线性最小二乘法(2)、指数型模型: 变换:对原模型求对

39、数,再令 原模型变换为:参数估计方法:用线性最小二乘法求出 再做变换:(3)、修正指数型模型:变换:不能转换成线性模型;参数估计方法:迭代法。二、 平滑法平滑法利用修匀技术,消弱短期的随机波动对序列的影响,从而使序列趋于平滑化,体现出数据的变化规律,是在进行预测和趋势分析的常用方法。平滑法具体又可以分为移动平均法和指数平滑法。1. 移动平均法基本思想是:对于一个时间序列,在一个比较短的时间间隔内可以假设序列之间的差异主要是由随机波动引起的,而且序列的取值是相对比较稳定的。因此,我们可以根据这样的假定,用一段时间间隔的平均值来做为某一期的预测值,根据情况,又可以分为两类:a) n期中心移动平均b

40、) n期移动平均n期移动平均是平稳序列预测方法中的一种,假设最后一期的历史数据为 ,则可以使用n期移动平均法,向前预测m期,各期的预测值如下:移动平均法的期数对历史数据序列的修匀效果影响较大,可以从以下几个方面确定期数:(1) 序列的产生有无周期性;如果序列有周期性,就应该通过周期平滑来消除季节效应的影响。(2) 对趋势平滑性的要求;如果n越大,而且修匀曲线越平滑,那么长期趋势就越好。(3) 对趋势反映的近期变化的要求;n越大,滞后性就越大,n越小,近期的变化对趋势图的影响就会越大。根据以上三方面的考虑,若想要长期趋势,n就应该越大,如想要短期趋势,则n就应该越小。2. 指数平滑法基本思想:在

41、实际生后中,对于大多数随机事件来说,现在的状况都会受到近期的影响,相对远期的影响会大一点,因此,为了更好的反映这种影响的作用,需要考虑到时间间隔的远近以及对应的权重的不同,忽略季节因素。常用的进行趋势拟合的指数平滑的公式有两种:(1)、一次指数平滑法假定时间序列则预测模型为:其中,为平滑系数,它满足01;为预测值。由公式可以看出,权数随着序列的越来越远而呈几何级数的衰减。越靠近的期数权数越大。指数平滑法牵涉到两个比较重要的值:i. 平滑系数:在整个预测的过程中作用很大,因此要慎重选择,值的选择一般与序列的变化情况有关系,变化慢的序列值就取小一点,变化快的序列值就取大一点。ii. 初始值 :初始

42、值对于预测值的计算也非常重要,可以用多种方法来确定。当历史数据较少(小于或等于20个)时,其所占权重相对就会较大,对预测的影响就会较大,因此,可以选前3期或5期的均值;如果历史数据较多(大于20个)时,初始值可以选择第一个历史数据来充当。(2)、二次指数平滑法二次指数平滑法是基于一次指数平滑法的基础,进行二次平滑,公式如下:其中,为二次指数平滑法的第t期平滑值。二次指数平滑法的初始值 以及平滑系数 的确定方法与一次指数平滑法一样。三、 ARIMA模型如果某个序列本身或者经过序列预处理后是平稳非白噪声序列,那么就可以用ARIMA模型来建模进行预测。建模的步骤如下:(1)、求出样本序列的自相关系数

43、和偏自相关系数;(2)、根据样本序列的ACF(自相关系数)和PACF(偏自相关系数)确定ARIMA(p,d,q)模型的p,d,q,然后进行拟合;(3)、估计模型中的未知参数;(4)、检验模型是否通过检验,若通过则继续,若不通过,则选择新的模型进行再次拟合;(5)、对确定好的模型进行优化,选择最优的模型;(6)、利用模型进行预测。样本自相关系数可以通过下面的公式求出:样本偏自相关系数可以通过如下公式求出:ARIMA模型定阶的基本原则:图2.3 ARMA模型定阶的基本原则 模型定阶拖尾p阶截尾AR(p)模型q阶截尾拖尾MA(q)模型拖尾拖尾ARMA(p,q)模型第三章 短时交通流预测3.1短时交通流预测概述短时交通流是指短时间内交通流汽车在道路上连续行驶形成的车流。道路短时交通流分析是智能交通系统的核心内容和交通信息服务、交通控制的重要基础。短时交通流预测是根据过去历史时间点的交通流数据序列来预测未来一

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 应用文书 > 工作报告

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报