基于LabVIEW的通信仿真(图)

2006-04-27 21:44:05

基于LabVIEW的通信仿真(图)
align=right marginWidth=0 marginHeight=0 src="http://view.atdmt.com/DSF/iview/lctaets20030000019dsf/direct/01?click=" frameBorder=0 width=200 scrolling=no height=200 allowTransparency topmargin="0" leftmargin="0"> >!-- Inject Script Filtered --<0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border="0" src="http://view.atdmt.com/DSF/view/lctaets20030000019dsf/direct/01/" />

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所示。

0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" src="http://www.epc.com.cn/magzine/20060105/20050808092313.jpg">


● 调制、解调和信道传输
---从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所示。

0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" src="http://www.epc.com.cn/magzine/20060105/20050808092323.jpg">
● 解码和信号恢复
---B端输出的二进制比特流进入到解码(Decode)子VI,其完成数据流的汉明码译码的功能。解码VI将比特流组成七维的矢量数组,经汉明距离的判断,再把七维矢量纠错转化为四维矢量,即D端输出的接受信息流,完成纠错译码的功能。四维的矢量数组由To Dwave子VI化为数字波形进行显示,接下来通过数模转换VI恢复到模拟的信号,如图3所示。

0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" src="http://www.epc.com.cn/magzine/20060105/20050808092331.jpg">


● 信号的同步
---为了实现信号的同步,避免信道延迟带来的影响,在整个传输过程中引入了保护信号和同步信号。生成的保护和同步信号从E端输出。在信息比特进入调制子VI之前,就在信息比特的前面加上了保护信号和同步信号,E端和A端输出的信号合为一路信号,然后再进行调制。在接受方通过把同步信号映射为字符,再与接受的字符流进行比较,确定同步信号的位置,实现接受和发射的同步。同步信号的产生和输出,如图4所示。

0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" src="http://www.epc.com.cn/magzine/20060105/20050808092339.jpg">
● 误码率的计算
---为了计算误码率,C端的源信息流和D端的接受信息流通过一个比较(Compare)子VI进行比较,计算出误码的个数,从而计算出误码率,如图5所示。

0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" src="http://www.epc.com.cn/magzine/20060105/20050808092349.jpg">
● 性能分析
---4PSK数字相位调制波形可表示为

---其向量表达式为

---4PSK符号错误概率为

---由于进行了(7,4)汉明码纠错编码,然后进行4PSK调制,并且 比特符号对相应信号相位映射中采用格雷(Gray)码,因而编码比特能量可以用信息比特能量表示为

---

---程序采用的模拟加性高斯白噪声信道,设定信道的信噪比则为 ,可得

---图6为仿真生成和理论生成的误码率的对照图。信道信噪比超过7dB以后,要求样本数很大,由于计算机内存的限制,使得仿真的结果与理论的结果有一定偏差。在7dB之前,仿真误比特率和理论值很接近,拟合得很好。

0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" src="http://www.epc.com.cn/magzine/20060105/20050808092415.jpg">

结论
---作为应用最广的数据采集和控制开发环境之一,LabVIEW在通信仿真中有着重要的作用。由于LabVIEW有很强的仪器控制功能,相对于Matlab等其他仿真软件,LabVIEW能更有效地把仿真试验移植到实际中。LabVIEW只需要用实际的发射和接受机及实际的信道来替换模拟的发射和接受机及模拟的信道,但也要进行一定量的相应改动。这样就能很好地把LabVIEW在仿真和仪器控制两方面的功能有机结合起来,更好地发挥LabVIEW在虚拟仪器中的作用。

参考文献
1 田丽华编著.编码理论.西安电子科技大学出版社.2004
2 John G. Proakis. Digital Communication. Fourth edition. McGraw-Hill Companies. 2001
3 曹志刚,钱亚生编著.现代通信原理.清华大学出版社. 2002


你可能感兴趣的:(基于LabVIEW的通信仿真(图))