基于LabVIEW的通信仿真
时间:06-08
来源:互联网
点击:
引言
美国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 Dwave子VI化为数字波形进行显示,接下来通过数模转换VI恢复到模拟的信号,如图3所示。
● 信号的同步
为了实现信号的同步,避免信道延迟带来的影响,在整个传输过程中引入了保护信号和同步信号。生成的保护和同步信号从E端输出。在信息比特进入调制子VI之前,就在信息比特的前面加上了保护信号和同步信号,E端和A端输出的信号合为一路信号,然后再进行调制。在接受方通过把同步信号映射为字符,再与接受的字符流进行比较,确定同步信号的位置,实现接受和发射的同步。同步信号的产生和输出,如图4所示。
● 误码率的计算
为了计算误码率,C端的源信息流和D端的接受信息流通过一个比较(Compare)子VI进行比较,计算出误码的个数,从而计算出误码率,如图5所示。
● 性能分析
4PSK数字相位调制波形可表示为
其向量表达式为
4PSK符号错误概率为
由于进行了(7,4)汉明码纠错编码,然后进行4PSK调制,并且 比特符号对相应信号相位映射中采用格雷(Gray)码,因而编码比特能量可以用信息比特能量表示为
且程序采用的模拟加性高斯白噪声信道,设定信道的信噪比则为 ,可得
图6为仿真生成和理论生成的误码率的对照图。信道信噪比超过7dB以后,要求样本数很大,由于计算机内存的限制,使得仿真的结果与理论的结果有一定偏差。在7dB之前,仿真误比特率和理论值很接近,拟合得很好。
美国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 Dwave子VI化为数字波形进行显示,接下来通过数模转换VI恢复到模拟的信号,如图3所示。
● 信号的同步
为了实现信号的同步,避免信道延迟带来的影响,在整个传输过程中引入了保护信号和同步信号。生成的保护和同步信号从E端输出。在信息比特进入调制子VI之前,就在信息比特的前面加上了保护信号和同步信号,E端和A端输出的信号合为一路信号,然后再进行调制。在接受方通过把同步信号映射为字符,再与接受的字符流进行比较,确定同步信号的位置,实现接受和发射的同步。同步信号的产生和输出,如图4所示。
● 误码率的计算
为了计算误码率,C端的源信息流和D端的接受信息流通过一个比较(Compare)子VI进行比较,计算出误码的个数,从而计算出误码率,如图5所示。
● 性能分析
4PSK数字相位调制波形可表示为
其向量表达式为
4PSK符号错误概率为
由于进行了(7,4)汉明码纠错编码,然后进行4PSK调制,并且 比特符号对相应信号相位映射中采用格雷(Gray)码,因而编码比特能量可以用信息比特能量表示为
且程序采用的模拟加性高斯白噪声信道,设定信道的信噪比则为 ,可得
图6为仿真生成和理论生成的误码率的对照图。信道信噪比超过7dB以后,要求样本数很大,由于计算机内存的限制,使得仿真的结果与理论的结果有一定偏差。在7dB之前,仿真误比特率和理论值很接近,拟合得很好。
- LabVIEW中BP神经网络的实现及应用(06-19)
- 基于LabVIEW的多通道数据采集系统的研究(06-29)
- 大区域内的无线数据采集系统(09-04)
- 基于LabVIEW的网络虚拟实验室设计(09-24)
- 在LabVIEW中实现基于C/S结构的远程数据采集 (11-24)
- LabVIEW和NI USRP硬件加快了认知无线电研究 (08-07)