05毕业设计论文.doc

Android收音机的搜台与录音系统的原理与设计【电信工程毕业说明书论文开题报告外文翻译】.zip

收藏

压缩包内文档预览:(预览前15页/共34页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:22399021    类型:共享资源    大小:1.07MB    格式:ZIP    上传时间:2019-10-16 上传人:小*** IP属地:福建
50
积分
关 键 词:
电信工程毕业说明书论文开题报告外文翻译 收音机开题报告 收音机的设计 收音机的设计【毕业设计 收音机的原理 毕业论文开题报告
资源描述:
Android收音机的搜台与录音系统的原理与设计【电信工程毕业说明书论文开题报告外文翻译】.zip,电信工程毕业说明书论文开题报告外文翻译,收音机开题报告,收音机的设计,收音机的设计【毕业设计,收音机的原理,毕业论文开题报告
内容简介:
目 录摘 要IIIAbstractIV第一章 绪论11.1 课题背景和研究意义11.2 FM 国内外相关研究现状及发展趋势2第二章Android 系统介绍与 FM 原理概述42.1 Android 操作系统概述42.1.1 Android 系统特点简介42.1.2 Android 的发展历程42.1.3 Android 系统架构52.2 FM 收音机原理概述72.2.1 调频的概念72.2.2 无线电广播的发送与接收概述7第三章FM 收音机设计需求分析93.1程序的层次结构93.2 FM 功能模块93.3 录音流程:103.4界面布局与更新模块:11第四章 收音机搜台与录音系统详细设计与实现124.1 系统总体框架设计与实现124.2 各模块分析与实现134.2.1 自动搜索流程:144.2.2 手动搜索流程:174.2.2 录音流程:21第五章 结束语24参考文献25附 录27致 谢29IIAndroid收音机搜台与录音系统的原理与设计摘 要随着移动互联网,大数据时代的来临,智能移动终端产业也迎来了繁荣期。机厂商争相不断的推出自己的智能手机和平板电脑,定制各式各样的特色应用软件,满足消费者的格式需求,迎合时代的新鲜文化。其中安卓系统由于其源码的开放性以及不错的用户体验的特点,特别是其源码的开放性,得到了广大手机厂商以及手机应用开发人员的青睐与喜好。与此同时应用开发商以及广大开发爱好者开发了大量的安卓手机应用程序,由于代码的开放性,产品的时代性,越来越多的人加入到Android的开发中,这也加速了人们告别旧的媒介产品。现有的许多消费电子设备都可用应用替代。本文就详细的介绍如何在安卓平台开发出相应的程序来实现调频收音机的功能。本文首先介绍安卓系统和调频收音机的一些基本概念和理论知识;接着调频收音机应用软件设计和实现的详细过程;最后测试调频收音机各项功能以及稳定性。 从最终的测试结果上来看,成功的实现了调频收音机的各项基本功能。性能方面也基本稳定。这也充分说明了本次设计在软件方面都是成功的。 关键词:Android; 调频收音机; 智能移动终端; 手机应用程序IVThe principle and design of Android radio station and recording systemAbstractWith the arrival of the era of Mobile Internet, smart mobile terminal industry has also come to its prosperity. The mobile phone manufacturers all launch their own smart phones and tablet PCs one after another. Android system has been favored by most mobile phone manufacturers and application developers because of its open source and good user experience. At the same time, application developers and the development enthusiasts has developed numbers of Android Mobile application, which also encourage people to abandon the old media products, as many of them can be replaced by applications. This article describes how to develop the FM radio application on the Android system in detail. This paper first introduces some basic concepts of the Android system and FM radio. Secondly,it describes FM Radio application software design and the detailed implementation process. Finally the function and stability of the FM radio are tested. Based on the final test results, it is easy to see that the basic functions of the FM radio have been realized and the performance of FM radio is basically stable, which in a way shows that the design on the software part is very successful.Keywords:Android; FM; Intelligent mobile terminal; Mobile applications第一章 绪论1.1 课题背景和研究意义 互联网和移动通信已经是现代人们生活无法脱离的一部分,它彻底颠覆了现代人们的生活和工作方式,将社会带入到了信息化时代,通过互联网你可以坐在家里轻松了解世界各地任何你想知道的事情;通过移动通信你也可以足不出户随时跟亲人朋友聊天。 然而近些年来,一种将移动通信和互联网结合为一体的新兴产物诞生了,这就是移动互联网!在最近的几年中,移动通信和互联网是世界上发展最快、前景 最好的两大产业,因此不难预见移动互联网的巨大市场潜力。迄今为止,全球的 移动用户总量已经到达了 59 亿,全球的移动通信渗透率已经到达了 87%,其中 移动互联网用户已经达到了 12 亿1。而在我国,截止到 2011 年底,手机用户总 数已经突破了 9 亿大关,成为了全球最大的手机市场。同时,手机支付、电子商务、手机阅读等业务也是应运而生,移动互联网的商机已经展现在人们面前了。伴随着我国 3G 网络的成熟,我国的 3G 用户已经超过 1.5 亿,这达到了欧美、日本等发 达国家经历的 3G 高速增长临界点,整个移动互联网产业将进入一个高速成长的 阶段。就目前而言,4G 用户数量的增长推动了智能手机销量,智能手机已经成为用户关注的绝 对主角。谷歌全球副总裁刘允预测,移动终端将会不断普及,台式机、笔记本和 移动终端的界限将越来越模糊,许多功能完全可以转移到移动终端上,从听说读 写到感知各方面都拥有电脑所没有的优势。 伴随着智能手机、平板电脑等移动设备的发展,移动平台已经进入了大众市 场,现在世界上主流的移动平台有 Symbian、WindowsPhone、Android 和 IOS2。 其中 Symbian 系统虽然用户量大,但是在应用方面远远落后,而且由于代码的不 开源从而导致技术支持逐渐落后,现在诺基亚已经放弃 Symbian 系统,该系统也 逐渐退出市场。而 WindowsPhones 虽然被业界很多人士看好,但是现阶段还处于 非常不成熟的时期,看来还有一段艰难的路要走。而剩下的 Android 和 IOS 形成 了两雄争霸的局面。IOS 应用于苹果公司的各系列产品,并占据了智能手机市场 36.3%的份额2。毫无疑问其推出的每一款产品都是当期全球最火爆畅销的电子产 品。从而也使得苹果瓜分了移动中断市场大部分的利润。而 Google 发布的 Android 系统则由于其开源性而被众多手机厂商所采用。包括三星、HTC、摩托罗拉、索 尼在内的众多品牌都推出了各自的 Android 智能手机和平板电脑,并占据了高达 54.9%的市场份额3。 Android 作为一种以 linux 为基础的开源代码操作系统,大多应用于便携设备,该平台对移动设备的程序集中包括一个操作系统,一个中间件和一些关键性的应 用程序4。而且这个平台的使用是完全免费的,所以不需要支付任何费用。代码也是完全开放的。开发人员可以在平台系统上较快速的进行开发,还可以其他开发人 员的工作成果。因此,这对手机开发创造了更大的灵活性。工作量少,开发周期 短,用户可以最大限度的自由定义自己的手机,丰富手机的功能。增强手机在市 场上的竞争力。由于 Android 以 linux 系统做为平台的基础,使用 linux 内核可以 加快软件移植速度,并且使用 linux 驱动体系挂载周边设备。而 Android 由于开放 其源代码,吸引了大批的软件开发商和软件开发爱好者开发 Android 平台的应用 程序。早期的 Android 开发只支持在 Android SDK 下使用 java 语言做为编程语言 来开发应用程序,因而使得其他语言开发者只能望而却步5。2010 年 4 月,谷歌 正式对广大开发者发布了 Android NDK,允许开发者使用 CC+ 做为编程语言来 为 Android 开发应用程序6。到 2012 年 2 月 28 日,谷歌官方数据显示,Android 电子市场(Android Market)上的应用程序数量已经突破 45 万个。Android Market 的累计下载量已经突破 130 亿次。大量的应用不仅丰富了人们的娱乐,生活和工 作。同时很多应用也替代了旧的媒介产品,从而集成了各类消费电子设备的功能, 不仅能满足人们的各类需求,而且增强了便携性,使用户只需要携带一部手机就 可以告别其他消费电子设备了7。 在中国这样一个创新而不失传统的国度,人们对于传统的娱乐方式与新科技 结合的需求十分强烈,早在电视没有问世的时候,听广播就成为了中国人民不可 或缺的娱乐生活之一,人们利用广播来听取新闻,天气预报等日常的生活信息, 同时广播也是人们学习和娱乐的重要工具,青年用广播来听歌曲,老年戏迷朋友 们用广播来收听精彩的戏曲唱段,学生们可以用收音机来听外语学外语,锻炼自 己的听力,总之广播是人们开阔视野,认识外面世界的重要工具。虽然现在有了 电视,互联网等各种各样的媒体广播形式,但是收音机依然在很多地方有着不可 替代的作用。 无线电广播按照调制方式的不同,主要有两种方式,既 AM 调幅制和 FM 调频制。FM 调频广播系统因其良好的音质和接收效果,同时兼容立体声方式, 因而在公众的无线电广播领域得到了良好的广泛应用。大多数国家的 FM 调频广 播频段在 88-108MHz 的超高频波段,因为其工作的频率很高,所以相应的接收设 备的器件物理尺寸也很小,容易实现集成化和小型化。使得其能很好的应用于便 携类的消费电子上,现在很多的数码设备如手机,MP3 等的内部都携带了 FM 收 音机的功能。因而本文研究的意义就在于使 FM 收音机这项人们普遍需要的功能 在当前最流行的 Android 操作系统下实现。 1.2 FM 国内外相关研究现状及发展趋势 收音机的发展历史已经走过了百年的漫长岁月,从最早不需要使用电源,而 只在电路里有一块半导体元件的“矿石收音机”,到后来的电子管收音机,晶体管 收音机,到后来普遍应用的集成电路收音机。传统的模拟收音机经过数十年的发 展换代之后已经向着微小型,低功耗和高可靠性方向迈进了一大步,收音机的体 积也变得更小更便携。然而近 20 年来,传统收音机芯片的发展几乎处于停滞不前 的地步,虽然其每年的销售量仍然可以达到上亿台的规模,但是可以看到其需求 量正在逐渐下降。取而代之的是集成度更高,体积更小,功能更强大的 DSP 收音 机,DSP 芯片可以将天线感应接收到的无线电模拟信号在芯片内部转化为数字信 号,再对数字信号进行处理,然后还原成模拟音频信号输出。DSP 技术在本质上是用“软件无线电”代替“硬件无线电”,它大大的降低了收音机制造业的门槛。DSP 技术收音机的问世,标志着传统模拟收音机将一步一步退出历史舞台。收音机的数字时代正在到来,我们应该适应这一变化。 对于消费者而言,收音机已经是再普通不过的商品了,脱离了以往的笨重,不仅如此,收音机已经成为手机、MP3 等便携式电子设备的标准配置了,融合 FM 功能的单芯片正大显身手,收音机芯片市场显得波澜不惊。然而半导体供应商对收音机芯片的创新 并没有止步,新兴的 WiFi 网络收音机芯片和融合短波功能的 AM/FM 收音机芯片 相继问世。想象一下,当您在异国他乡求学时,可以通过 WiFi 网络收音机随时 随地收听来自中国的音乐广播电台,而不必打开您的电脑,这是一件多么惬意的事!而这样的场景已经变成现实。传统的 FM 收音机一般只能选择电台,但不能 选择歌曲,而 WiFi 网络收音机可通过专门的互联网广播门户网站支持 1 万多个无线电台,可选择某一种类的歌曲或自己喜欢的歌星的歌曲,这是其优势所在。 中国人口众多,对收音机的需求量很大,尤其是老人和学生是收音机的忠实 拥护者。随着手机市场的逐步发展,提供高集成度解决方案成为收音机音频解决方 案打动中国手机设计公司为手机添加收音机功能的“杀手锏”之一。中国手机设计 公司一般希望能够获得高度集成的产品解决方案,以节省开发成本并缩短开发周 期。因此,与更多伙伴合作提供高集成度解决方案成为公司在中国成功的关键。 因而现在集成了 WiFi,蓝牙,和 FM 收音机功能的集成芯片越来越受到手机厂商的青睐。今后 FM 收音机的发展将更趋向于高集成,多功能,体积更小的,功能 更全面,功耗更低的方向。 手机单芯片就集成了 FM 收音机功能,其只需要极少的外围元件与电路就可以实现 FM 收音机的完整功能,具有体积小,功耗低,频率稳定性好,高灵敏度,高保真等特点。这些特点使得其可以广泛的应用于手机,MP3 等便携类电子设备之上。它采用了创新的收音机架构取代了外部的无源器件与复杂电路,芯片的内部集成了完整的 IF 选频和鉴频系统,只需要很少很少的低成本的外围器件就可以实现 FM 收音机的全部功能了,硬件系统几乎完全不需要调试。 其接受的灵敏度高,并且兼容了美国,欧洲和日本等等国家的 FM 频段。参考频率选择灵活,可以通过外接 32K 振荡晶体提供时钟,也可以通过手机系统 19.2K 的时钟来 工作,立体声解调器完全免调试,可以用软件控制 SNC,静音暂停等功能,由于 其软件设计简单,尺寸封装的很小,很适合应用于电路板空间非常有限的设备之 上。30第二章Android 系统介绍与 FM 原理概述本章将对 Android 操作系统和 FM 收音机进行综合性的描述。首先从系统的特点,版本的发展历程以及系统的框架结构三方面来对 Android 操作系统进行概 述。然后分别介绍FM 收音机的基本概念和 FM 收音机的工原理。 2.1 Android 操作系统概述2.1.1 Android 系统特点简介 Android 是 Google 公司在 2007 年推出的以 Linux 为基础的半开源的操作系 统,目前主要应用于便携式移动设备,Android 是一个真正的开放性移动设备平 台。它包括了操作系统,应用程序和用户界面8。 Android 的结构主要是由 linux 内核和 JAVA 层构成的,这种结构和工作原理 给予了 Android 非常强的可移植性。 Android 操作系统使用的是开放免费源代码许可证,所有的源代码都是公开 的,免费的。任何生产商和开发商都可以不经过 Google 和开放手持设备联盟的授 权而使用 Android 操作系统9。这就是 Android 区别于其他操作系统的开放性。 开放性和可移植性是 Android 系统最显著的两大特性,也是它对比其他操作 系统的优势所在,正是由于这两大特性,使得在硬件方面,Android 可以应用于 目前绝大部分的电子设备之上,包括:智能手机、平板电脑、上网本、笔记本电 脑 、个人台式电脑、电视、机顶盒、MP3、MP4 播放器、掌上游戏机、电子收 音机、耳机、电子手表、汽车设备、导航仪、CD 机、VCD 机、DVD 机盒以及其 他设备。Android 操作系统大多搭载在使用了 ARM 架构的硬件设备上10。但是也 有支持 X86 架构的 Android 操作系统,比如 Google 的 Google Tv 就是使用一个特 别定制的 X86 架构版本的 Android 操作系统。基于优越的可移植性,不同的硬件 供应商大大的丰富了 Android 系统的硬件选择,使得产品更加多样化,更具有多 样的功能特色。而 Android 的开放性能够有效的降低软件的开发成本,从而降低 了设备的整体价格。最终让所有用户能够自由的获取信息。Android 提供了完整 的从操作系统到应用程序的软件栈,同时又允许用户定制各自的差异化来增强竞 争性11。这对于生产商来说是巨大的吸引力。 2.1.2 Android 的发展历程2003 年 10 月,“Android 之父”Andy Rubin 等人创建 Android 公司,并组建 Android 团队12。2005 年 8 月 17 日,Google 收购了成立仅 22 个月的 Android 及其团队13。2007 年 11 月 5 日,Google 正式向外界展示了这款名为 Android 的操 作系统,同一天Google宣布建立一个全球性的联盟组织,该组织由 34 家手机制 造 商、软件开发商、电信运营商以及芯片制造商包括如 Broadcom 公司、HTC、intel、 LG、Marvell 等公司共同组成,并与 84 家硬件制造商、软件开发商及电信营运商 组成开放手持设备联盟来共同研发改良 Android 系统13。2008 年 9 月,谷歌正式 发布了 Android 1.0 系统,这也是 Android 系统最早的版本,命名为发条机器人。 Android 系统差不多每半年升级一个新版本,而且从 Android1.5 版本开始, 每一个版本都会用一个甜点来命名,并以 A、B、C、D、E、F、G、H、I、J 字 头顺序来排列的。 2009 年 4 月 30 日,发布了 1.5 版本(Cupcake 纸杯蛋糕),主要的更新的功能有:拍摄/播放影片,并支持上传到 Youtube功能;支持立体声蓝牙耳机,同时改善自动配对 性能; 最新的采用 Webkit 技术的浏览器,支持复制/贴上和页面中搜索;GPS 性 能大大提高 ;提供屏幕虚拟键盘;主屏幕增加音乐播放器和相框 widgets ;应用 程序自动随着智能手机旋转;短信、Gmail,浏览器的用户界面大幅改进, 如 Gmail可批量删除邮件;相机启动速度加快,拍摄图片可以直接上传到 Picasa; 来电照片显示等内容等等。 2009 年 9 月 15 日,发布了 1.6(Donut 甜甜圈)。主要的更新功能有:重新设计的 Android Market;手势支持;支持 CDMA 网络;全新的拍照界 面;查看应用程序耗电;支持虚拟私人网络;支持更多的屏幕分辨率;支 持 OpenCore2 媒体引擎; 新增面向视觉或听觉困难人群的易用性插件等等。2009 年 10 月 26 日,发布了 2.0(Eclair 松饼)。主要的更新功能有: 优化硬件速度;支持更多的屏幕分辨率;改良的用户界面;新的浏览器的用户 界面和支持 HTML5;新的联系人名单;更好的白色/黑色背景比率;支持 Microsoft Exchange;支持内置相机闪光灯;支持数码变焦;改 进的虚拟键盘;支持蓝牙 2.1;支持动态桌面的设计等等。 2010 年 5 月 20 日,发布了 2.2(Froyo 冻酸奶)。主要的更新包括,支持将软 件安装至扩展内存;集成 Adobe Flash 10.1 支持;加强软件即时编译的速度;新 增软件启动快速至电话和浏览器;USB 分享器和 WiFi 热点功能;支持在浏览 器上传档案;更新 Market 中的批量和自动更新; 增加对 Microsoft Exchange 支 持(安全政策, auto-discovery, GAL look-up); 2010 年 12 月 7 日,发布了 2.3(Gingerbread 姜饼)。主要的更新有: 修补 UI; 支持更大的屏幕尺寸和分辨率(WXGA 及更高);对黑色及白色的还原更加真实; Google Talk 视讯功能。 2011 年 2 月 2 日,发布了 3.0(Honeycomb 蜂巢)。主要更新有,仅供平板电 脑使用;Google eBooks 上提供数百万本书;支持平板电脑大萤幕、高分辨率 ; 2011 年 10 月 19 日,发布了 4.0(Ice Cream Sandwich 冰激凌三明治)。主要更新如有,蓝色主题;相机自带全景(Panorama)模式;改动用户界面,新的启动画面,Home 画面右下角类似 Tray 的图标,内有多个程序可运行;Google Search Bar 会设置在最上方; 2.1.3 Android 系统架构 在进行Android 应用开发之前,首先必须了解一下 Android 系统的框架结构。 虽然经过多个版本的演变,Android 系统从功能和界面上都有了大幅的改变,但是其内部的通信机制以及大致的框架结构在每个版本上都大致相同13。与大多数操作系统一样,Android 系统采用了分层的架构14。主要分四个层次, 从底层到上层分别是:linux 核心层、系统运行库层、应用程序框架层、应用程序 层1415。每一层即独立拥有各自的功能又与上下层有相应的通信机制。其中 linux 内核主要是 linux 操作系统和驱动,由 C 语言实现16。而系统的运 行库主要是本地代码的框架和 Java 虚拟机,由 C 和 C+实现。应用程序框架层和 应用层则主要由 Java 代码实现17。Linux 内核层与系统运行库之间的分界正是 内 核空间与用户空间的分界线,而系统运行库层与应用程序框架层之间则是本地代 码与 Java 代码层的接口18。最后应用程序框架层与应用程序层之间是 Android 的 系统 API 的接口。Android 几个层次的功能如下。 1. linux 内核Android2.3 的版本是基于 linux kernel 2.6.35 的,提供的系统核心服务包括: 安全性,内存管理,进程管理,网络协议栈和驱动模块。linux 内核同时也做为硬 件和软件系统之间的抽象层,扮演虚拟中介的角色19。 2.Android 本地库 本地库包含了一些 C/C+的库,被应用在系统中的各个组件中,他们通过系 统的应用程序框架来供程序开发人员使用20。其中一些核心库例如: 系统 C 库, 媒体库,界面管理,WebKit (新式的网页浏览器软件引擎), SGL(基本的 2D 图形 引擎),OpenGL ES(3D 绘图函数库),FreeType(位图和矢量字体渲染),SQLite(系 数据库引擎) 21。 3. Android 的运行环境就是Java 的运行环境,提供了 Java 编程语言核心库的绝大多数的功能,由 Dalvik Java 虚拟机和基础 Java 类库组成。Dalvik 是 Android 所使用的 Java 虚拟机, 是一个可以同时高效地运行多个虚拟机实例的虚拟系统22。 4. Android 应用程序框架 该层提供了大量供上层应用程序使用的 API,开发者可以随意使用这些 API。该层的主要作用是简化组件的重用,任何应用程序都可以发布其功能块,而任何其它的应用程序都可以使用它所发布的功能块(需遵循框架的安全性) 22。同时,这种应用程序的重用机制也使得用户可以很方便的替换程序组件。Android 的应 用程序框架层包含了一系列的服务和系统。 1) 视图(View):控件在 Android 中被叫做视图,Android 提供了丰富而又 具有扩展性的视图集合,用来构建应用程序,包括列表、网格、文本框、按钮等 控制项24。 2) 资源管理器(Resource Manager):用以访问静态的资源,例如布局文件, 图片等。 3) 内容提供器(Content Providers):一个应用程序通过内容提供器可以访 问另一应用程序的数据,或者共享自己的数据25。 4) 活动管理器(Activity Manager):管应用程序的生命周期,提供导航回 退功能2526。 5) 通知管理器(Notification Manager):应用程序通过通知管理器来把自己定义的提示信息显示在状态栏中2526。 5.Android 应用程序基本都是用Java 编写的,一些比较核心的应用程序都是同新的操作系统版本一起发布的。通常包括,桌面,日历,浏览器,短信,E-mail 客户端,电话,联系人等27。2.2 FM 收音机原理概述2.2.1 调频的概念 调频 FM(Frequency Modulation)是使载波的瞬时频率按照调制信号而改变的调制方式。经过调频的波叫调频波,已调波频率变化的大小由调制信号的大小来决定,变化的周期由调制信号的频率来决定。已调波的振幅保持不变。调频波的波形, 就像被压缩得不均匀的弹簧。与 FM 相对的是 AM,既调幅,使载波振幅按 照调制信号改变的调制方式叫调幅。经过调幅得来的电波叫调幅波。它保持着高频载波的频率特性,但包络线的形状则和信号波形相似。调幅波的振幅大小,由调制信号的强度决定。 调频广播是以调频方式进行音频信号传输的,是高频振荡频率随音频信号幅 度而变化的广播技术。现在人们习惯上用 FM 来指一般的调频广播(76-108MHz, 在我国为 87.5-108MHz、日本为 76-90MHz),而事实上即使在短波范围内的 27-30MHz 之间,做为业余电台、太空、人造卫星通讯应用的波段,也有采用调 频(FM)方式的。 2.2.2 无线电广播的发送与接收概述 广播节目的发送是在广播电台中进行。广播节目的声波,经过电声器件转换成声频电信号,并通过声频放大器放大,振荡器产生高频等幅振荡信号;调制器使高频等幅振荡信号被声频信号所调制;已调制的高频振荡信号经放大后通过发射天线,转换成无线电波辐射出去,从而被接受到。 收音机的天线接收到空中的电波,传入 FM 调谐电路中进行解调还原出广播 的内容。其过程大致为,由 synthesizer 频率合成器根据频点设置,产生对应的正 交本振信号送给 MIXER 混频器,选择接收对应频率的 LNA(LNA 将信号进行放 大,并转为差分输出电压,这可以有效抑制芯片内部及 PCB 板上的噪声,提高接 收灵敏度)的输出信号。(其接收方式为超外差:使“本振”的频率与电台的频率产 生一个固定的差值,这个固定的差值就叫做“中频”。收音机再通过对“中频”进行 检波,放大等处理,最终通过扬声器放出声音。) 举个例子,目前中波的中频频率是 456KHz,假如某中波广播的收听频率是 999KHz,则 FM 本振是 999-465=534KHz 时,这样就搜索到该台了。MIXER 混 频器将 LNA 输出信号下变频到低中频,同时实现对镜频的抑制。(低中频既可以 避免零中频结构直流噪声难以消除的难题,又减小了 ADC 的输入信号带宽), MIXER 输出的 I,Q 两路正交中频信号,中频信号再传输到 PGA(放大器),经 PGA 放大后传输到 ADC(模数转换器)。ADC 将模拟信号转换成数字信号再传送到(FM 解调和语音处理工作的核心)DSP 中处理。DSP 首先对 ADC 送过来的数据通过数字滤波器(Digital Filter)降采样和滤波,滤除调制高频噪声,恢复出低频信号,然 后将信号进行解调(MPX Decoder),完成单声道和立体声的切换,之后再加载上可 调重低音功能和静音功能。DSP 完成解调后,将语音信号分别送给左右声道高精 度 DAC(数模转换器)。DAC 同时也是一个低通滤波器,对语音频带外的噪声进行 衰减,然后将语音信号通过音量控制寄存器放大。 在搜台的时,实际上是通过调整“本振频率”,将本振传送到 MIXER 混频 器中,混频器同时还接收了经 LNA 放大了的外部频率信号。混频器的作用是将 外部频率信号转化为低中频,这个过程称之为变频过程。变频过程用公式表示: 外部频率本振频率=低中频,MIXER 混频器将变频后的全部低中频输出到 PGA 可编程的增益放大器中,现在 FM 中用的 PGA 基本上都是中频放大器,除了具有 放大信号功率的功能之外,同时具有选频的功能,既对中频的放大功率远高于其 他频率的放大功率,从而挑选出中频来。所谓的中频实际上是外部频率信号与本 振频率的固定差值,例如目前通用的中波的中频频率是 465KHz;短波的中频频 率是 450KHz 或 455KHz;调频收音机的中频是 10.7MHz,电视机的图像中频信 号是 38MHz,音频的中频信号是 6.5MHz。 对于调频收音机来讲,其中频放大器对频率为 10.7MHz 的信号放大功率最 大,经过 PGA 放大选频后,将中频信号送出进行解调。 也就是说,不管接收到的电台频率为多少,FM 总是对固定的 10.7MHz 的频 率进行处理。降低了内部 DSP 解调操作的难度。 综上所述,选频是有中频放大器 PGA 来完成的,举一个直观的例子来描述选 频过程。例如在频率 98.8MHz 上有一个电台,当本振频率 88.1MHz 时,两者差 值=98.8-88.1=10.7MHz,PGA 对该频率的放大功率很高,从而挑选出该频率来, 再经过处理就接收到电台 FM98.8 的音频内容了。第三章FM 收音机设计需求分析 本文的设计是以软件的设计为工作的重点。因此本章的需求分析也是以软件部分来进行描述,包括各系统的功能需求,界面的搭建需求等等。用户使 用 FM 收音机一般都是来收听地方电台节目,因此需要实现的功能主要是搜台的 功能,由于 FM 的发送功能很少被使用到,所以暂不实现 FM 发送部分的功能。 3.1程序的层次结构 程序的框架层次结构同 Android 的标准结构相同,分为 Java 应用层,框架层 (framework 层),服务库层及驱动层。 1) 驱动层是直接面对硬件层面的,涉及到对寄存器的读写操作,包含了供应 厂商的特定指令的发送接收,由于某些商业原因以及安全因素,博通公司并未公 开其全部寄存器的作用及指令集合,而是针对不同版本的平台提供了相应的发送 指令的工具,这样使得程序的封装性提高了,具有更好的移植性,使得开发人员 无须进行驱动层面的修改和调试,而是直接使用厂商提供的功能函数接口来进行 开发,这样也使得开发人员不会修改到驱动层的功能而导致的不稳定或者不安全 的情况发生,但是这样做也使得 BCM4330 在开发时的开放性大大降低。这次本 文设计中使用的是由博通公司提供的 btld 工具来发送控制命令到芯片。 本文的主要工作就集中在了服务库函数,框架层,以及 Java 应用层的开发上。 2) Java 应用层和框架层使用的主要开发语言是 Java,其中应用层主要功能 是布局整个操作界面来显示给用户看以及供用户操作使用。 3) 框架层则是封装了功能函数的接口来完成应用层接收到的用户的操作指 令,然后传送到服务库层。起到承上启下的作用。 4) 服务库函数的开发语言主要是 C+,这部分是起到了将驱动层的命令接 口与框架层的应用接口连接起来的作用,实现了从 Java 函数调用 C 函数的作用, 在 Android 系统中把这部分定义为 JNI 层。 3.2 FM 功能模块 FM 功能模块 从功能上看,FM 可以分为,系统初始化、操作命令检测、操作命令处理、 系统状态监听、界面布局与更新这五个模块。其中每个模块完成各自的功能,但 是模块与模块之间的联系也非常紧密。例如操作命令的检测与处理这两部分的联 系是非常频繁的,用户的每一种操作都需要这两个模块共同来实现,因此在后续 讲述各模块需求分析以及第四章中各模块功能设计与实现的时候将这两部分合并 来讲述。模块结构如图 3.1 所示图 3.1 模块结构介于本次的设计要求1) 操作命令检测模块与操作命令处理模块,需要完成的是对用户的各项操作 的监听以及把监听到的命令转换成驱动层可以识别的标准指令发送到驱动层,再 由驱动层对芯片下达具体的指令,即修改相应的寄存器来完成功能切换。在处理 完成后反馈处理的结果,最终实现用户想要完成的操作行为。用户的操作主要是 点击界面上的按钮以及点击设置菜单中的设置项。这部分是 FM 功能的重点,在 这部分里需要实现的操作功能分两大部分。 主界面上的操作包括,静音、手动调整到某个频率点播放、调整到上一个频 点播放、调整到下一个频点播放、向上搜索一个有效的电台、向下搜索一个有效 的电台、默认方向向下自动搜索全部有效电台并保存、耳机与外放的切换、保存 当前播放的电台。模块结构如图 3.2 所示。图 3.2 主界面操作模块结构3.3 录音流程:方案一:与FMRadio开发分开,相互独立开,便于其他应用调用,故此处通过发送广播开启录音功能,录音结束后保存其录音文件,待到需要播放时,直接可读取运用。方案二:直接在FMRadio开发时,将录音功能嵌入到其代码中,使其独立为FMRadio服务。下处流程即为方案一的流程图,主要是通过广播发送录音请求,在录音部分接受到该广播后,若合理,即可开始录音。在发送关闭请求后,录音结束,保存音频文件,即完成此次的录音流程,如图3.3:图 3.3 录音系统模块结构3.4界面布局与更新模块:这个模块主要是布局和实时的更新操作界面的作 用,完成打开 FM 之后对主界面的初始布局设定,以及当用户进行操作而引起界 面显示变化的时候来进行相应处理的任务。例如显示的频率值发生变化,按钮的 状态变化等。以及当系统繁忙时或者正在进行命令处理时显示等待信息和相应的操作提示等。当 FM 进入到后台运行的时候需要在手机的状态栏显示 FM 的提示 图标。模块结构如图 3.4 所示图 3.4 界面布局与更新模块结构第四章 收音机搜台与录音系统详细设计与实现4.1 系统总体框架设计与实现 1. Android 应用程序由一些零散的有联系的组件组成,通过一个工程 manifest 绑定在一起。在 manifest 中描述了每一个组件以及组件的作用,其中有 6 个组件,它们是 Android 应用程序的基石:Activities(活动)、 Service(服务)、 Content(内容)、Intent(意图)、Broadcast Receiver(广播接收器)、Notification(通知)。 1) Activities(活动)。Activities 是应用程序的显示层。每一个画面对应于应用 程序,将会是 Activity 类的扩展。Activity 使用 Views 去构建 UI 来显示信息和响 应用户的行为。 一个 Activity 通常展现为一个可视化的用户界面。一个应用程序可能只包含 一个 Activity 或者有多个。但通常每个应用程序都包含一个在应用程序启动后第 一个展现给用户的 Activity。每个 Activity 都会有一个用于绘制用户界面的窗口。通常这样一个窗口会填充整个屏幕,当然这个窗口也可以比屏幕小并漂浮在其他 窗口之上30。 用于展示 Activity 窗口的可视化内容区域,是一些具有层次关系(很像数据 结构中的树)的视图,而视图则是由类 View 的子类表示的。每一个视图控制窗 口中的一个矩形区域。父视图包含一些子视图,并管理子视图的布局。位于叶节 点的视图直接控制并响应用户的动作。因此视图就是 Activity 与用户交互的接口。 例如:一个显示图片的视图,当用户单击的时候它可能会启动一个动作。Android 系统提供了许多开发人员可以直接使用的视图,包括按钮,文本域,滚动条,菜 单,复选框等。 2) Service(服务)。服务是 Android 应用程序中不可见的“工人”。 Service 组 件运行时不可见,但它负责更新的数据源和可见的 Activity,以及触发通知。它 们常用来执行一些需要持续运行的处理,当你的 Activity 已经不处于激活状态或 不可见。 Service 没有用户界面,但它会在后台一直运行。例如,Service 可能在用户处 理其它事情的时候,负责播放背景音乐,也可以从网络上获取数据,或者执行一 些运算,并把运算的结果提供给 Activity 来展示给用户。每个 Service 都扩展自类 Serivce。 3) Content(内容)。提供共享的数据存储。Content Provider(内容提供器)用来 管理和共享应用程序的数据库。在应用程序间,Content Provider 是共享数据的首 选方式。应用程序可以通过 Content Provider 访问其它应用程序的一些私有数据, 这是 Android 提供的一种标准的共享数据的机制。共享的数据可以是存储在文件 系统中、SQLite 数据库中或其它的一些媒体中。Content Provider 扩展自 ContentProvider 类,通过实现此类的一组标准的接口可以使其它应用程序存取由 它控制的数据。 4) Intent(意图)。简单的消息传递框架。使用 Intent,可以在整个系统内广播 消息或者给特定的 Activity 或者服务来执行你的行为意图。系统会决定那个(些) 目标来执行适当的行为。 5) Broadcast Receiver(广播接收器)。Intent 广播的“消费者”。通过创建和注册 一个 Broadcast Receiver,应用程序可以监听符合特定条件的广播的 Intent。 Broadcast Receiver 会自动的启动你的 Android 应用程序去响应新来的 Intent。 Broadcast Receiver 是事件驱动程序的理想手段。 6) Notification(通知)。用户通知的框架。Notification 用来在不需要焦点或不 中断它们当前 Activity 的情况下提示用户。它们是 Service 或 Broadcast Receiver 获得用户注意的首选方式。 2. 基于上述 Android 组件的介绍来描述整个应用的框架设计。首先需要设计 两个可视化的操作界面分别对应于程序的主显示界面和设置菜单,用 Activity 来 实现。其次需要在程序运行之后创建一个Service负责与底层通信并控制音频的 后台播放。至于每次用户操作完成后的状态数据则是使用 Content 来进行存储的。还需要用到 Intent 和 Broadcast Receiver 机制来监听系统的状态以及进行 Activity 的切换。当打开FM收音机应用程序之后要在系统的状态栏中添加一个FM的标 志通知用户FM收音机正在运行中,这个功能是通过 Notification 实现的。 在进行完应用层面的设计之后还需要与底层进行通信。通过前面的设计知道 是由 Service 来负责与底层通信,这点在前面的需求分析章节讲述过,是与博通提 供的驱动工具btld进行通信,最终由btld来直接完成对 BCM4330 芯片寄存器的读写。虽然博通并没有提供btld的源代码,但是为了方便开发者进行上层开发,博通的文档中给出了各个功能的接口函数。由于btld是用 C 语言代码进行编写的,因此不能直接调用接口函数,而是要先要完成 JNI 层代码来实现Service与btld的通信。 用两个类来分别实现主显示界面和设置菜单的 Activity。分别命名为 Fm.radio 和 Fm.setting。实现一个名为 Fm.receiver.service的类来完成 Service 的创建,并用 Fm.receiver 来对其进行一次封装供 Fm.radio 和 Fm.setting 调用。用C+语言编写 JNI 层代码实现与驱动层的通信,原理主要是采用将驱动层函数名与相应的字符 串进行对应的方式,以实现应用层对相应函数的调用。4.2 各模块分析与实现4.2.1 自动搜索流程:图 4.1 自动搜索流程 其实从图中可以看到,实现搜索频率的功能是在底层CPP文件,Java层只操作和更新一些界面(GUI),Java调用JNI实现功能。Java app基本核心,通过方法回调实现a类和b类方法,b类调a类方法信息交互相互控制融为一体。App实现一些JNI接口最终实现核心功能是cpp文件,最后通过Service类(耗时操作)调用New一个线程循环不断的获取cpp里的信息,去更新UI界面活动状态。搜索流程简单分析:点击搜索按钮,通过互调方法,最后调到FMReceiverJNI类中的方法实现功能。通过FMRxEventListner类不断获取cpp变频的频率,每获取一次频率(直到频率搜索完成停止调用)就回调FMRadioService内部FmRxEvCallbacksAdaptor的方法在回调到FMRadio类中方法,将频率存入FmSharedPreferences类xml文档中,发送Handler更新UI,即刻度盘,对话框,左右箭头中间显示的频率一致跳动。接下来详细代码分析:FMRadio中的菜单搜索功能,onOptionsItemSelected(MenuItem item)监听中走initiateSearch(mScanPtyIndex);方法。调用FMRadioService的scan()方法(mService.scan(pty))进行扫描频率updateSearchProgress()里加了同步方法对象锁调用了private Dialog createProgressDialog(int id)对话框进行搜索信息调用FMRadioService类中的Scan()方法扫描调用 FMReceiver的searchStations()方法进行扫描FmReceiver类的public boolean searchStations (int mode,int dwellPeriod,intdirection,int pty,Int pi) 方法获得FMState状态int state = getFMState();/ * 验证参数* /调用setSearchState(subSrchLevel_ScanInProg);re = mControl.searchStations(sFd, mode,dwellPeriod, direction, pty, pi);设置FM搜索电源状态setFMPowerState(FMState_Rx_Turned_On); 是调用FmTransceiver类发射器类,FM电源状态调用FMRxControls.java类的/ * 配置各种搜索参数,开始搜索* / public int searchStations (int fd, int mode,int dwell, int dir, int pty, int pi)设置一些参数FmReceiverJNI.setControlNative();设置的搜索模式设置扫描居住的时间设置的企业设置PI启动搜索 FmReceiverJNI.startSearchNative (fd, dir );4.2.2 手动搜索流程:手动搜索:在滑动刻度盘上滑动,监听滑动事件,通过计算不断滑动计算差值,待滑动结束后获得此时可收听的电台频率,并自动的搜索频道。也可在界面刻度盘两侧点击按钮,移动固定频率,获得此时可收听的电台频率,并自动的搜索频道实现收听图 4.2 手动搜索流程点击左右选台选择按键,触发监听,调用SeekNextStation()方法,该方法再调用Service服务中的seek(),调用底层进行搜台; 1.搜台结束后,搜台状态发生变化,滑动刻度盘HorizontalNumberPicker控件在监听事件里使用方法valueToFrequency(newVal) protected int valueToFrequency(int value) mFrequency = mPrefs.getLowerLimit() + value * mPrefs.getFrequencyStepSize(); return mFrequency; 2.发送一个handler (mHandler.post(mRadioChangeFrequency))回调一个tuneRadio(frequency)方法调频,同时完成更新RadioUI界面信息(调用updateStationInfoToUI())。Runnable mRadioChangeFrequency = new Runnable()public void run() mUpdatePickerValue = false;tuneRadio(mFrequency);3.手动点击按钮左右箭头, 通过监听调用int frequency =FmSharedPreferences.getNextTuneFrequency();int frequency =FmSharedPreferences.getPrevTuneFrequency();tuneRadio(frequency);进行调频getNextTuneFrequency()方法通过判断频率最大限制范围,后加200(刻度)getPrevTuneFrequency()方法通过判断频率最小限制范围,后减200(刻度)调频方法分析private void tuneRadio(int frequency)通过回调引用类调用FMRadioService类的tune()方法进行调频bStatus = mService.tune(frequency);发送一个广播连接是否超时postTimeoutHandler(CMD_TUNE);设置调频名字,更新FMRadioUI界面信息mTunedStation.setName();mTunedStation.setPI(0);mTunedStation.setPty(0);updateStationInfoToUI()(通过IFMRadioSrevice.aidl通信机制onbind返回的类的引用调用FMRadioService中的调频方法)FMRadioService中的tune方法public boolean tune(int frequency)调用FMReceiver类的setStation方法调频public boolean setStation (intfrequencyKHz)调用FMRxControls类(FM读取控制台信息)设置频率mControl.setFreq(frequencyKHz);最后调用FmReceiverJNI类setFreqNative(fd, mFreq); 本地方法 JNI到 cpp文件4.2.2 录音流程:方案一:与FMRadio开发分开,相互独立开,便于其他应用调用,故此处通过发送广播开启录音功能,录音结束后保存其录音文件,待到需要播放时,直接可读取运用。方案二:直接在FMRadio开发时,将录音功能嵌入到其代码中,使其独立为FMRadio服务。下处流程即为方案二的流程图,主要是通过广播发送录音请求,在录音部分接受到该广播后,若合理,即可开始录音。在发送关闭请求后,录音结束,保存音频文件,即完成此次的录音流程;图 4.3 录音流程Fm录音时,当点击了录音按钮,会发一个广播出去,源码在FMRadioService.java中Fm广播接收的action publicstatic final StringACTION_FM = ent.action.FM;当FMRadioservice类的private void sendRecordServiceIntent(int action)执行时,该Intent及被发出,在FM接收到该广播时,执行对应的操作。在录音系统接收到该广播后便会自动的运行录音的功能;之后再停止录音时调用FMRediodervice中保存录音的音频文件,待以使用。第五章 结束语本文是在参与公司项目过程中完成的,因为一直在负责手机多媒体工作,所以当客户提出了 FM 收音机这个需求的时候,部门就将这部分的设计工作交给了我所在的组。在此之前一直做的是基础学习,开发, 因此这次的应用程序开发过程是一个挑战,也是学习成长的过程。在这个过程中 我得到了部门同事大力支持,在向他们学习讨教的 过程中,逐渐对整个 Android 系统的开发框架有了进一步的了
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:Android收音机的搜台与录音系统的原理与设计【电信工程毕业说明书论文开题报告外文翻译】.zip
链接地址:https://www.renrendoc.com/p-22399021.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2024  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!