刘小群
(宝鸡文理学院物理与光电技术学院,陕西宝鸡 721016)
相关性研究主要解决信号内部的关联问题、信号与信号之间的相干问题[1]。通信系统中常见的信号是正弦波信号,信道中的噪声是白噪声信号。这两种信号自相关函数的研究对于通信系统十分重要,研究白噪声的自相关函数对于信号编码很有意义。信号的自相关分析对于分析信号的特点及频域特性也十分重要。LabVIEW 是一种图形化编程软件,图形化编程是它与其他编程方法最大的区别,它的程序更加直观,方便理解与修改[2-3]。用户能够按照自己的需求设计系统功能,采用模块化的设计思路,操作方便,节省成本。文中设计了基于LabVIEW的通信信号自相关研究系统,首先产生正弦波、白噪声及正弦波叠加白噪声3 种信号,然后分别分析3 种波形的自相关函数及其功率谱。
文中设计的信号自相关分析系统的功能如下:
1)能够产生正弦波、白噪声及叠加白噪声的正弦波3 种信号,且波形的频率、幅值能够由用户进行设置;
2)将所产生的波形通过自相关函数输出其自相关波形;
3)将自相关波形通过FFT 函数进行功率谱分析,并输出功率谱波形图;
4)前面板上显示所产生的波形、自相关波形及其功率谱的波形。通过前面板可以调节正弦波及白噪声的幅值、频率。
信号相关性分析系统首先利用LabVIEW 中的波形生成函数产生正弦波、白噪声及叠加白噪声的正弦波3 种信号;通过自相关函数分析3 种信号的自相关波形,将自相关波形通过FFT 函数进行功率谱分析并输出功率谱波形图。根据波形图显示的结果研究信号的相关性及其频域特征。系统总体结构如图1 所示。
图1 系统总体结构
LabVIEW 程序由前面板和程序框图形成,用户可以通过前面板完成数据的输入输出显示。类似于仪器的操作面板。系统的前面板如图2 所示。前面板上有信号幅值、频率及所产生的波形、自相关函数波形及其功率谱的波形等[4-7]。用户可以通过前面板输入正弦波及白噪声的幅值、频率等信息。波形图显示控件能够显示所产生的波形、自相关函数的波形及功率谱波形。
图2 系统的前面板
程序框图是实现系统功能的核心,实现用户需要的功能,用户根据自己的需要选择函数、结构等进行连接并调试运行,程序框图中包含了前面板上控件、函数、结构等[8-11]。LabVIEW 中包括数值、数组、布尔、字符串等操作函数,有循环结构、条件结构、顺序结构、公式节点等,方便用户设计程序框图,且设计的程序框图十分直观[12-14]。该系统的程序框图如图3所示。
图3 系统的程序框图
信号相关性分析系统主要由程序框图实现3 种波形信号的产生、信号相关性分析及FFT 变换等功能。利用正弦波发生器及均匀白噪声发生器可以产生正弦波及白噪声。两种波形相加形成叠加白噪声的正弦波。每一个波形周期内的点数可以通过采样点数来设置,信号的幅值、频率、相位等都可以通过前面板进行设置。产生的3 种信号分别通过自相关函数得到它们的自相关波形,并显示在前面板上的波形图显示控件中。自相关波形通过FFT 得到功率谱波形并输出显示。波形的频率、幅值能够由前面板上的控件进行设置。
信号相关性系统仿真首先通过波形图控件观察产生的正弦波、白噪声及正弦波叠加白噪声3 种信号,并调节波形频率、幅值。将所产生的波形通过自相关函数输出其自相关波形;通过波形图控件观察比较自相关波形。然后将自相关波形通过FFT 函数进行功率谱分析并输出功率谱波形图。前面板上显示所产生的波形、自相关波形及其功率谱的波形。通过前面板可以调节正弦波及白噪声的幅值、频率。分别设置正弦波的幅值、频率、白噪声的幅值进行仿真,结果如图4~6 所示。
图4 10 Hz、5 V正弦波输出显示
经仿真,通过选择设置正弦波的幅值、频率产生相应的正弦波、白噪声及叠加白噪声的正弦波,并经过自相关函数输出3 路信号的自相关波形,在3 个波形图控件中分别显示结果。然后通过FFT 函数剖析3 路信号的功率谱波形。从自相关波形图可以发现,正弦波的自相关函数是周期的,叠加白噪声的正弦波的自相关函数也是周期信号。白噪声的自相干函数为一个冲激函数,说明只有在t=0 时刻白噪声是相关的,其余时刻互不相干。因此,白噪声能够用于通信中。
图5 50 Hz、5 V正弦波输出显示
图6 100 Hz、1 V正弦波输出显示
利用LabVIEW 设计了信号相关性研究系统,文中所设计的系统可以产生幅值、频率可调的正弦波、白噪声及叠加白噪声的正弦波,通过LabVIEW 中的自相关函数对3 种波形的自相关波形进行仿真,同时利用FFT 函数对频谱特性进行仿真。便于研究通信系统中的信号、噪声的自相关特性及频谱特性。该系统具备设计简洁,灵活性强的优点。运用LabVIEW 设计虚拟仪器系统,设计容易且非常直观,界面可以根据用户的需求设计,可以实现数据的保存、处理分析、网络传输等。也能够用于一些数据的收集监测、安全防范等。用户能够根据需要来扩展功能,能够有效地提升开发效率[15-18]。