DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1737|回复: 0
打印 上一主题 下一主题

[待整理] 无线通信系统的GUI设计与仿真实现

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-28 12:48:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
 引言
  软件系统的用户接口有两类,即命令驱动方式的 交互式问答接口和事件驱动方式的图形用户接口 (GUI)。通常在开发一个实际的应用软件系统时会尽 量做到界面友好,最常使用的方法就是使用图形用户界 面。图形用户界面用各种图形对象,如图形窗口、图轴、 菜单、文本框等构建的用户界面,是人机交流的工具和方法。利用用户界面,用户可以直接与计算机进行信息 交流,不需了解应用程序究竟是怎样执行各种命令的, 而只需了解可见界面组件的使用方法,通过与界面交流 就可以使指定的行为得到正确执行。
  图形用户界面具有很强的交互性,在这样的一个良好的用户界面中可以方便地进行通信系统的参数设置,可以同步显示通信信号经过每一步处理后的波形,能够
使用户更为方便地对无线通信系统进行软件设计和功能分析。
  通信的目的就是传输信息。通信系统的作用就是将信号从信源发送到一个或多个信宿。因此,按照信道中传输的是模拟信号还是数字信号,相应地把通信系统分为模拟通信系统和数字通信系统。
  1 无线通信系统仿真模型的构建
  通信的目的就是传输信息。通信系统的作用就是将信号从信源发送到一个或多个信宿。因此,按照信道中传输的是模拟信号还是数字信号,相应地把通信系统分为模拟通信系统和数字通信系统。
  (1)模拟通信系统模型
  信源发出的原始电信号是基带信号,基带是指信号的频谱从零频附近开始,如语音信号300~3 400 Hz,由于这种信号具有频率很低的频谱分量,一般不宜直接传输,这就需要把基带信号变换成其频带适合在信道中传输的信号,并在接收端进行反变换。完成这种变换和反变换通常利用调制器和解调器。经过调制以后的信号称为已调信号,已调信号有三个基本特征:携带有用信息;适合在信道中传输;信号的频谱具有带通形式且中心频率远离零频。
  (2)数字通信系统模型
  数字通信系统是利用数字信号来传递信息的通信系统。数字通信涉及的技术问题很多,其中主要有信源编码/译码、信道编码/译码、数字调制/解调、数字复接、
同步以及加密等。
  2 无线通信系统信号处理的GUI设计
  通常情况下,实现GUI设计有两种方法:使用Matlab自身提供的图形用户界面设计向导(Graphics User Interface Design Environment,GUIDE),或者是使用全脚本编程。利用GUIDE进行图形用户界面设计,向导会自动生成一个fig文件,及一个包含fig中放置控件相应回调函数的M脚本文件。利用全脚本编程实现,由于Matlab自带demo,包括按钮、文本标签、编辑文本框、列表框等,通过阅读M文件程序代码可以直观而快速地掌握GUI设计的技巧。采用全脚本实现,M文件代码可重复使用,可生成非常复杂的界面,可方便地在句柄中存取数据,可将创建对象代码与动作执行代码很好地结合起来。对于GUI设计,针对不同的情况来确定使用GUIDE还是全脚本,也可以考虑两者的结合使用来发挥各自的优势。
  3 基于Matlab的无线通信系统GUI设计与实现
  本文采用Matlab的GUIDE进行通信系统仿真平台的设计与实现H],对通信信号进行实时处理。GUIDE是一个专门用于GUI程序设计的快速开发环境,包括控制面板、属性编辑器、事件过程编辑器、对齐工具和菜单编辑器五个图形用户界面编辑工具。用户利用该向导可以将图形界面的外观,包括所有的按键及图形的位置进行确定,然后利用Matlab的回调函数编辑器来编写完成约定任务的函数代码,从而方便快捷地设计出一个图形用户界面。GUIDE 将用户保存设计好的GUI界面保存在一个FIG资源文件中,同时还能够生成包含GUI初始化的组建界面布局控制代码的M文件。这个M文件为实现回调函数提供了一个参考框架。
  通信信号处理的GUI设计一般分为以下五个步骤:
  (1)确定GUl对象,通过设置GUIDE应用程序的选项来进行GUIDE组态在面向对象的系统分析(00A)过程中,从信号处理的系统中抽象出面向对象编程(00P)的类和对象。对话框的选项包括窗口重画行为,命令行访问、生成文件选择、生成回调函数原型、使用系统背景颜色配置等选项,通过不选或选中它们来实现图形用户界面的整体组态设计。
  (2)使用界面设计编辑器进行GUI界面设计
  Matlab界面设计编辑器组件平台中包含所有能够在GUI中使用的用户界面控件,即按钮、单选按钮、编辑框、静态文本、列表框以及弹出式菜单等。一个GUI中可以存在一个或多个以上的GUI组件,使用时要注意保证各个组件的名称或属性有所不同,以便区分。用户可以用属性检查其对各组件的属性进行设计。
  (3)理解应用程序M文件中所使用的编程技术
  Matlab可以通过创建应用程序M文件为GUI控制程序提供一个框架。该框架是一种高效而坚固的编程方法,即所有代码均包含在应用程序M文件中,这就使得M文件只有一个入口可以初始化GUI或调用相应的回调函数以及GUI中希望使用的任意帮助子程序。对应用程序M文件代码进行详细分析,通过了解GUIDE创建应用程序M文件的功能,从而实现GUI的规划。
  (4)编写用户GUI组件行为响应控制(即回调函数)代码
  控制GUI组件响应用户的行为是GUI的实现任务之一。Matlab的GUIDE可以根据用户GUI的版面设计过程直接自动生成M文件框架,这样就简化了GUI应用程序的创建工作,用户可以直接用这个框架编写自己的函数代码。
  (5)保存并执行GUI
  激活GUI界面,确保界面符合预定的要求,设计满意后保存GUI。运行通信信号处理的仿真平台的应用程序M文件,对其进行反复的调试,使界面及用户空间符合系统预定的功能。
  本设计利用Matlab自身提供的工具箱Toolbox中各种通信信号处理函数[53对信号进行处理,然后通过GUI的组件编程实现各个模块的调用和链接,从而最终实现基于Matlab的通信信号处理系统仿真平台的设计。该仿真平台能够在多种信源及多种调制方式下进行信号传输的仿真,还给出各种调制方式下的基带信号、已调信号的波形及已调信号的频谱等,最后,对通过加性高斯白噪声信道的通信信号数据流进行各种逆向操作处理(解调、译码等)恢复出源信号。以数字通信系统为例,通信信号处理流程如图1所示。

图1 无线通信系统信亏处理流程图
  通信信号处理的仿真对于无线移动通信的研究具有重要意义,具有界面友好、良好扩展性的图形用户界面可以使用户更全面深入地理解通信系统的工作原理。本设计旨在设计一个通用性强、操作简单、功能较全面的通信信号处理仿真平台,能够实现针对不同信号类型的模拟数字发送、接收,及一系列信号处理,如调制解调、编码译码等。本文利用软件模块代替传统通信信号处理系统中的硬件结构,在很大程度上克服了传统通信系统硬件结构复杂、不通用及系统不稳定等局限性,对于更好地实现无线通信传输具有重要意义。
  3.1 无线通信系统模块的GUI设计与实现
  无线通信系统的GUI设计,首先要根据无线通信系统的功能需求,将系统分为多个模块,确定各个模块的功能部署。再次,以每个模块为单位,部署各个模块下的功能配置,和GUI界面的组成,以完成各个模块下的功能GUI,最后利用M文件编程实现各个系统模块之间的调用和链接。
  根据发送的信号形式的不同,将通信信号处理的仿真系统模型分为模拟通信信号用户界面子类和数字通信信号用户界面子类,在模拟和数字通信信号用户界面子类下,再分别细分为发送端和接收端。另包含信道模型用户界面。
3.2 通信信号处理的GUI设计与实现
  基于Matlab的无线通信系统中通信信号处理功能的实现,是利用Matlab自身提供的工具箱Toolbox中各种通信信号处理函数对信号进行处理[6]。通信信号处理的GUI设计和实现,是基于无线通信信号处理系统各个细分模块的功能要求,选取工具箱中适宜的信号处理函数,根据函数的输人、输出各种参数类型要求,在GUI界面中利用按钮、单选按钮、编辑文本框和列表框等界面控件来实现各种调制/解调方式、编码/解码方式和信道类型的选择,和各种输入参数的设定。界面既要实现与用户交流的友好性,还要更加注重界面的简洁性和系统的功能性,将内部功能部署和外部实体界面有机结合起来,使无线通信系统的用户图形界面得以实现。
  4 仿真结果
  4.1 模拟通信信号处理的GUI设计与实现
  4.1.1 模拟信号发射端
  模拟信号发送端包括四个模块:
  (1)信号输人模块。对于输入到系统中的基带信号,既能以工作空间中存在的变量作为输入,也可以选择实时采集的信号作为输人,如语音信号,利用单选按钮进行相互屏蔽选择。当选择实时采集的语音信号时,点击“打开”按钮,弹出打开文件对话框,程序设置对wav格式的文件进行筛选。
  (2)调制信号参数设置,包括载波信号频率设置及常用模拟调制方式的选择(如AMDSB—SC,AMDSB—TC,AMSSB,FM,PM等),调制功能的实现是利用Matlab的Communication Toolbox工具箱中的模拟调制函数来实现。
  (3)发送端的控制面板,可以设定采样频率等参数,在M文件程序编写时利用句柄函数实现各项参数的读取,利用mat文件实现不同M文件之间各个变量的参数传递,并且可以按钮控制“开始通信”、“调制回放”等功能控件,点击不同的按钮控件,通过调用不同的回调函数来实现不同的通信信号处理的功能:点击“开始通信”按钮,弹出信道设置对话框,选择传输信道类型,设定信噪比等参数。对于瑞利衰减信道,还需设置最大多普勒频移等参数;点击“调制回放”,界面会回放调制的全过程,通过动态图像使用户更直观深入地了解调制处理过程。
  (4)基带信号、已调信号及其频谱的图像显示,利用axes来声明和显示二维图像。
  以上四个模块能够方便简单地修改通信信号处理过程中的各项参数,观察数据模板中选定的输入变量,并对其进行时域和频域分析。图2为语音信号 AMSSB调制的仿真结果。点击“调制回放”,可得到调制过程的动画回放,使用户深刻形象地理解调制过程,调制回放图形如图3所示。

图2 语音信号AMSSB调制的仿真结果
  4.1.2 模拟信号接收端
  模拟信号接收端采用三大模块:
  (1)解调控制面板,有五个按钮控件,分别执行信号的接收、解调、解调过程回放、基带信号时域波形对比和已调信号时域波形对比。
  (2)接收信号的信息显示,可以显示发送端对信号进行的各种参数设置,利用句柄函数读取发送端保存在mat文件中的变量参数。
  (3)信号图像显示,继承了发送端信号图像同步显示和回放的优点,并且可以通过点击信号对比按钮,使用户直观地观察通信系统中基带信号和已调信号发送和通过通信信道失真后的时域波形对比。

图3 语音信号AMSSB调制过程回放图形
  信号通过信道后,在模拟信号接收端进行信号接收和解调逆向操作,可得解调信号的波形。图4对应的是图2信号通过加性高斯白噪声信道解调后得到的仿真结果。解调回放波形如图5所示。

图4 解调后得到的仿真结果

  
图5 解调回放波形
  4.2 数字通信信号处理的GUI设计与实现
  4.2.1 数字信号发射端
  数字信号发送端包括四个模块:
  (1)信号输入模块,同模拟发送端一样,输入到通信系统的模拟信号既可以是工作空间中存在的变量,也可以是实时采集的信号,如语音信号。
  (2)编码模块,分为信源编码和信道编码。信源编码,对于输入的模拟信号进行采样、量化、编码(常用64 Kb/s脉冲调制PCM)得到数字基带信号;信道编码,包括具有前向纠错功能的(7,4)汉明码、(15,7‘)循环码等,并显示纠错码的纠错位数。信源编码功能的实现是利用M文件编辑器编写合适的信源编码函数;信道编码功能的实现是利用Toolbox中提供的信源编码函数凹],首先对信源编码后的信号进行合适的矩阵转换,以符合信道编码函数输入变量的形式,再进行编码。
(3)数字信号传输模式的选择:数字基带传输、数字带通传输。选择适宜的调制方式(ASK,PSK,QASK,FSK,MSK,QAM等)[1?,并设置各种调制参数。
  (4)信号图像显示模块,对输入到通信信号处理系统中的模拟信号,显示其时域、频域波形,及信源编码后的PCM码流波形。
  点击“开始通信”按钮,弹出信道参数设置对话框,进行信道选择和各项参数设置。发送端界面如图6所示。

图6 数字信号发送端发送双声道语音信号
  4.2.2 数字信号接收端
  数字信号接收端主要完成对接收信号进行解调、译码等逆向处理操作,可实现不同调制解调方式下通信信号处理系统的分析和仿真。同样采用三大模块:
  (1)解调控制面板,包括六个按钮控件,分别执行信号接收、解调、信道解码、信源解码、时域图形对比、PCM码流图形对比等功能。
  (2)接收信号的信息显示,可以显示发送端对信号进行的各种参数设置。
  (3)信号图像显示。图7对应的是图6双声道语音信号通过AwGN后解调解码的仿真结果。

图7 解调解码的仿真结果
  5 结语
  本设计基于面向对象技术,提出了一种用于通信信号处理系统的仿真图形用户界面设计方案与实现技术,并搭建了相应的通信系统仿真平台。利用GUI 来实现通信信号处理仿真系统,界面简单友好,参数设置灵活,并且在仿真过程中能随时看到信号处理的文字和图形描述,便于更好的实时处理和进一步的预测和分析,使用户能很快地掌握该平台的功能和使用方法,便于学习和使用;同时开发的通信系统仿真平台具有良好的开放性,可以不断地完善和扩充,便于研究工作的延续。结构开放和全面可编程的软件无线电技术,利用软件模块代替传统通信信号处理系统中的硬件结构,在很大程度上克服了传统通信系统硬件结构复杂、不通用及系统不稳定等局限性,对于更好地实现无线通信传输具有重要意义。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-24 03:25 , 耗时 0.111073 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表