基于LabVIEW的通信仿真(图)
扫描二维码
随时随地手机看文章
Communication Simulation Based on LabVIEW
摘 要:采用LabVIEW软件对应用于无线信道中的4PSK的数字通信方式和主要通信过程的实际情况进行计算机模拟仿真。主要通信过程为抽样、量化、编码、调制解调、纠错编码等,并给出了几种调制解调的主要特性,为建立实际通信系统提供了基本的依据。
关键词:移相键控(PSK);信噪比
引言
美国NI公司推出的LabVIEW语言是一种优秀的面向对象的图形化编程语言,使用图标代替文本代码创建应用程序,拥有大量与其他应用程序通信的VI库。LabVIEW作为目前国际上应用最广的数据采集和控制开发环境之一,在测试与测量、数据采集、仪器控制、数字信号分析、通信仿真等领域获得了广泛的应用。本文主要研究基于LabVIEW的通信仿真。
LabVIEW程序结构
LabVIEW程序主要包括两部分:前面板(即人机界面)和方框图程序。前面板用于模拟真实仪器的面板操作,可设置输入数值、观察输出值以及实现图表、文本等显示。框图程序应用图形编程语言编写,相当于传统程序的源代码。其用于传送前面板输入的命令参数到仪器以执行相应的操作。LabVIEW的强大功能在于层次化结构,用户可以把创建的VI程序当作子程序调用,以创建更复杂的程序,而且,调用阶数可以是任意的。labVIEW编程方法与传统的程序设计方法不同,它拥有流程图程序设计语言的特点,摆脱了传统程序语言线性结构的束缚。labVIEW的执行顺序依方块图间数据的流向决定,而不像一般通用的编程语言逐行执行。在编写方块图程序时,只需从功能模块中选用不同的函数图标,然后再以线条相互连接,即可实现数据的传输。
仿真过程
信号源产生的是模拟信号,必须首先对它进行数字处理。在仿真过程中,用100Hz的正弦信号作为信号源。按照一般语音通信的要求,这里采用8kHz速率对100Hz的正弦号进行抽样,得到的是间隔为125μs的离散抽样值。信号的幅度为归一化幅度,最小幅度为-1,最大幅度为1,再进行32级(4bit)PCM量化编码。再将每一个样值转化成4bit的二进制的PCM代码流,其速率为32kbps。对PCM编码的数据流进行汉明编码,得到的是56kbps的纠错编码后的数据流。随后进行调制,在发送端对码流进行4PSK数字编码调制,采用的载波是400kHz的正弦波,然后送上信道进行传输。信道是最常见的高斯加性白噪声信道,信号传输过程中受到高斯噪声的干扰。在接收端对接受到的码流进行数字解调、汉明码解码,最后PCM信号恢复所发送的信号。
这里所使用的仿真环境为LabVIEW软件。下文中主要针对4PSK的仿真进行叙述。
● 抽样、量化和编码
在发送端,源(Source)子VI产生一个100Hz的正弦信号作为信号源,通过量化(Quantify)子VI对它进行抽样和量化。对信号源进行8kHz的抽样,抽样产生的离散抽样值归一化为绝对值小于等于1的数据流。量化器把-1~1的范围等分为32个小区间,每一个区间用0~31之间的一个整数表示,每个样值通过它被量化成32个值中的某一个值,再转化成元素为0、1的矢量,即C端输出的源信息流。这时输出的是长度为4的矢量,进入到编码(Coding)子VI。在信号传输的过程中,为了提高信号的传输效率,降低误码率,采用了纠错编码技术。这里采用的是(4,7)汉明纠错编码技术。对8kSPS的矢量信号中,每个矢量加入3bit的控制位,但所占的时间长度仍为原来4位矢量的时间长度。接着,将7位的矢量信号进行串行化,产生56kbps的0、1数据流输出到A端,如图1所示。
● 调制、解调和信道传输
从A端输出的二进制数据流在调制(Modulation)子VI中进行4PSK数字调制。4PSK是受0~3这4个数据调制的,这四个值是用连续两个二进制位表示的。这里进行的调制是基带调制,调制子VI输出的调制过后的基带信号。采用多个控件实现对调制的一些基本参数的设定,如字符速率、每个字符的采样数、波形形成滤波器的类型及参数。输出的基带信号通过上变频(upconverter)VI实现上变频,把基带信号搬移到400kHz的频率段。对应实际中的信号,就可以直接发射到信道上了。仿真过程中,采用的是一个简单的加性高斯白噪声信道模型。通过对信噪比(Eb/NO)控件的设置,实现对信道信噪比参数的选择。接受端收到一个被信道噪声损伤的信号,通过相逆过程实现解调功能。经过下变频(downconverter)VI程序下变频的基带信号进入到解调(Demodulation)子VI。在解调中进行相位检测,将4个不同的相位检测出来,映射成0~3的4个不同的量值,然后转换为2bit的二进制比特流从B端输出。所述实现了调制解调和高斯白噪声信道的传输,如图2所示。
● 解码和信号恢复
B端输出的二进制比特流进入到解码(Decode)子VI,其完成数据流的汉明码译码的功能。解码VI将比特流组成七维的矢量数组,经汉明距离的判断,再把七维矢量纠错转化为四维矢量,即D端输出的接受信息流,完成纠错译码的功能。四维的矢量数组由To Dw