论文部分内容阅读
摘要:基于LabVIEW软件在应用中的一些优势以及其图形化界面给基本概念和理论分析带来的巨大方便,引出将其应用于数字信号处理教学过程中。主要结合LabVIEW在常用信号生成、时域分析、频域分析和各种常用信号变换中的应用方法,[1]更加直观地反映了LabVIEW的优点。
关键词:LabVIEW;数字信号处理;FFT
作者简介:姜利英(1981-),女,河南漯河人,郑州轻工业学院电气信息工程学院,副教授;张艳(1987-),女,河南洛阳人,郑州轻工业学院电气信息工程学院硕士研究生。(河南 郑州 450002)
基金项目:本文系郑州轻工业学院研究生教育教学第一批教改立项项目(项目编号:01005)的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2011)27-0160-02
随着近些年来电子信息科学技术的飞速发展,数字信号处理在其中的地位越来越重要,因此得到广泛的应用。数字信号处理也成为现在各个高等院校为电子信息工程和通信专业开设的主要专业基础课。由于课程中包含了较多的公式、概念、定理以及算法,尤其是对各种离散时间信号所进行的分析,理论性太强,分析过程复杂、难懂。在对该门课程讲授的过程中,仅仅通过理论推导不能让学生从根本上理解数字信号处理这门课程在实际工作中的应用,这就失去了学习该门课程的意义。因此就要找到一种更为直观且更容易被理解的方法来改善课程的讲授。与其他的一些编程语言或者平台相比较,LabVIEW软件凭借它的优势更适合于数字信号处理的学习和相关实验的设计。
一、LabVIEW简介
LabVIEW(Labvotary Virtual Instruments Engineering Workbench)是美国仪器公司(NI)1986年推出的一款图形化的软件开发环境,该开发环境具有一系列其他编程环境不具备的优点,从它流程图式的编程,到不需预先编译就存在语法检测和调试过程中使用的数据探针以及它所包含的丰富的函数、数值分析、信号处理和设备驱动等功能,都被人们广为称赞,成为目前虚拟仪器实现软件设计的最流行的工具之一。[2]LabVIEW没有常规仪器的控制面板,不需要复杂的编程代码,而是采用一种可视化的图形编程语言——G语言来完成用户对仪器设计的要求。利用LabVIEW编写的程序主要包括前面板和程序面板两个部分。其中前面板用来放置各种控件,主要包括输入控件、显示控件、调节控件等,且只需拖放图形控件就可以轻松快捷地开发相应应用程序的用户界面;程序面板则用来放置各种功能函数,包括信号生成、信号分析、数据采集、数据处理等,并可以通过组合框图模块来实现更复杂的功能。
二、LabVIEW应用于数字信号处理教学中的优点
LabVIEW中包含了大量的信号生成、信号分析和信号处理VI,能够实现对不同信号的调制、滤波、变换、频谱分析等。由于数字信号处理课程中的核心内容是对离散时间信号进行分析,包括时域分析和频域分析,因此会存在大量计算和推导过程,使得该门课程教授起来比较枯燥乏味,学生们对这样的分析也往往不感兴趣,从而给课程的教授带来了很大的不便。而LabVIEW可视化的图形界面正好弥补了仅仅使用理论分析带来的缺点。将分析过程利用前面板中的波形图或者波形图表的形式表现出来,大大简化了分析和推导的难度,不仅直观、简洁、清晰易懂,而且增强了学生的学习兴趣,从而提高了学习效率。
三、LabVIEW在数字信号处理中的应用
数字信号处理课程主要包括离散信号、系统分析、Z变换、DFT、FFT、IIR以及FIR滤波器设计等内容,利用LabVIEW中各种信号分析和处理VI编写的程序能够实现对课程中各部分内容的分析。下面给出了几个实例,充分证明了将LabVIEW应用到数字信号处理教学中的正确性。
1.利用DFT计算线性卷积
(1)分析过程。设是一个M点序列,是一个L点序列,,即是和的线性卷积,那么是一个(M+L-1)点的序列。DFT对应的是循环卷积而不是线性卷积,要想利用DFT运算的快速性来计算线性卷积就要完成以下一些变换:首先对M点序列以及L点序列分别进行序列扩展,使它们构成新的序列和,并且两序列的长度均为M+L-1点;其次,和分别是某两个周期序列的一个周期,周期的长度为M+L-1,并计算两者的循环卷积;最后如果用DFT计算,即就是与乘积的傅里叶逆变换,其中、分别是、的DFT。[3]
(2)利用LabVIEW实现卷积计算。程序面板主要包括两个部分:第一是利用循环产生的两个数组;第二是对两个数组进行的变换,包括数组的补零以及傅里叶变换和逆变换。
前面板包括两个数值输入控件,用以设定两序列的长度;两个数值显示控件,用来显示直接线性卷积和利用DFT计算线性卷积后序列的长度;四个波形显示控件,用来显示两个序列以及不同方法下的运算结果。当设定两序列的长度分别为15和20时的运行结果如图1所示。
观察图1可知,直接对两序列进行线性卷积和利用DFT对两序列进行卷积的结果是一样的,从而直观、清晰地证明了利用DFT进行线性卷积方法的正确性。
2.频率分辨率
(1)频率分辨率的概念。分辨率(resolution)是信号处理中的基础概念,包括频率分辨率和时间分辨率两种,这里主要讨论的是频率分辨率的问题。频率分辨率是通过一个频域的窗函数来观察频谱时所看到的频率的宽度,或者说频率分辨率是指所用算法能将信号中两个靠的很近的谱峰保持分开的能力。通常我们采用的信号由两个或者多个频率相接近且幅度相同的正弦信号叠加产生,利用一个矩形窗将信号截短为T秒。以Ts为抽样间隔对进行抽样,那么抽样频率为fs=1/Ts,T秒长的时间内抽样点数为M=T/Ts。因此连续信号变成了离散序列,它也可以看作是无穷长离散序列和一宽度为M的矩形窗相乘的结果。因此,频率分辨率为:
式中T=MTs是原信号截短后的长度。[3]
(2)频率分辨率LabVIEW实现。下面我们通过一个例题来说明频率分辨率的问题:
设是三个正弦信号的叠加信号,其中最高频率不超过3Hz,用抽样频率fs=10Hz对其进行抽样。根据抽样定理可知,不会发生频率混叠问题。现设T=25.6s,然后对抽样后得到的序列进行FFT,通过计算得到的频率的最大分辨率 Hz。
取信号的三个频率分别为f1、f2、f3,当它们取不同的值时得到的频谱分布情况也不同。其中程序面板包括对三个频率的设定、信号采样、FFT变换、是否超过频率分辨率判断等。前面板中主要有频率选择控件、波形频谱显示控件、超频率分辨率报警控件以及频谱区分波形显示控件。如图2为前面板,通过改变信号频率可以观察到不同的结果。其中第二个报警灯点亮,指示了频率f2和f3无法区分,而右侧下方的波形图只显示了两个波峰,也表明有两个频率无法区分。也就是说如果构成信号的两个频率成分频率差值小于信号的频率分辨率,则这两个频率成分无法区分;反之,则可以区分。
3.栅栏效应
(1)栅栏效应分析。在数字信号处理中为了计算方便和快速,通常使用FFT对信号进行频域的分析。在利用FFT对连续时间信号进行频域分析的过程中,由于FFT计算频谱只限制在离散点上,也就是只限制在信号基本频率的整数倍处,而不是连续频率函数,这就像通过一个“栅栏”观看风景一样,只能在离散点的地方看到真实的景象,这种现象就被称为“栅栏效应”。[4]
(2)利用LabVIEW产生栅栏效应。如图3所示,在前面板上放置两个波形显示控件,分别显示正弦信号进行FFT变换后的原始频谱和进行放大处理后的频谱,从下方的波形图中可以清楚地看到一个个“栅栏”。在程序运行过程中,可以通过调整正弦信号的频率和相位、改变窗函数的类型来观察其对这些“栅栏”的影响。
通常情况下,减小栅栏效应的一个方法就是使频域抽样更密,也就是增加频域抽样点数。在不改变时域数据的情况下,要在时域数据的末端补零,使信号在一个周期内的点数增加,而不改变原有的记录数据。[4]这在LabVIEW中是很容易实现的,因为LabVIEW中包含专门对信号补零的VI。因此,只要在上述程序中给时域信号进行补零,则必然会使频域中谱线变密,原来看不到的频谱分量就能够看到了,从而减小了“栅栏效应”的影响。
四、结语
通过以上例子可以看出,作为一种图形化的语言,LabVIEW能够将一些复杂的理论清晰、简单地表示出来。同时,在实验过程中,学生们还可以对程序中不同的参数进行修改以获得不同的实验结果,并对结果进行分析。在此过程中加深了学生对抽象的专业理论知识的理解和掌握,从而提高学习兴趣。实践证明,将LabVIEW应用于数字信号处理课程中将会使课程取得很好的教学效果。
参考文献:
[1]张桐,陈国顺,王正林,等.精通LabVIEW程序设计[M].北京:电子工业出版社,2008.
[2]岂兴明,周建兴,矫津毅,等.LabVIEW8.2中文版入门与典型实例[M].北京:人民邮电出版社,2010.
[3]胡广书.数字信号处理——理论、算法与实现(第二版)[M].北京:清华大学出版社,2003.
[4]程佩青.数字信号处理教程(第三版)[M].北京:清华大学出版社,
2007.
(责任编辑:王祝萍)
关键词:LabVIEW;数字信号处理;FFT
作者简介:姜利英(1981-),女,河南漯河人,郑州轻工业学院电气信息工程学院,副教授;张艳(1987-),女,河南洛阳人,郑州轻工业学院电气信息工程学院硕士研究生。(河南 郑州 450002)
基金项目:本文系郑州轻工业学院研究生教育教学第一批教改立项项目(项目编号:01005)的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2011)27-0160-02
随着近些年来电子信息科学技术的飞速发展,数字信号处理在其中的地位越来越重要,因此得到广泛的应用。数字信号处理也成为现在各个高等院校为电子信息工程和通信专业开设的主要专业基础课。由于课程中包含了较多的公式、概念、定理以及算法,尤其是对各种离散时间信号所进行的分析,理论性太强,分析过程复杂、难懂。在对该门课程讲授的过程中,仅仅通过理论推导不能让学生从根本上理解数字信号处理这门课程在实际工作中的应用,这就失去了学习该门课程的意义。因此就要找到一种更为直观且更容易被理解的方法来改善课程的讲授。与其他的一些编程语言或者平台相比较,LabVIEW软件凭借它的优势更适合于数字信号处理的学习和相关实验的设计。
一、LabVIEW简介
LabVIEW(Labvotary Virtual Instruments Engineering Workbench)是美国仪器公司(NI)1986年推出的一款图形化的软件开发环境,该开发环境具有一系列其他编程环境不具备的优点,从它流程图式的编程,到不需预先编译就存在语法检测和调试过程中使用的数据探针以及它所包含的丰富的函数、数值分析、信号处理和设备驱动等功能,都被人们广为称赞,成为目前虚拟仪器实现软件设计的最流行的工具之一。[2]LabVIEW没有常规仪器的控制面板,不需要复杂的编程代码,而是采用一种可视化的图形编程语言——G语言来完成用户对仪器设计的要求。利用LabVIEW编写的程序主要包括前面板和程序面板两个部分。其中前面板用来放置各种控件,主要包括输入控件、显示控件、调节控件等,且只需拖放图形控件就可以轻松快捷地开发相应应用程序的用户界面;程序面板则用来放置各种功能函数,包括信号生成、信号分析、数据采集、数据处理等,并可以通过组合框图模块来实现更复杂的功能。
二、LabVIEW应用于数字信号处理教学中的优点
LabVIEW中包含了大量的信号生成、信号分析和信号处理VI,能够实现对不同信号的调制、滤波、变换、频谱分析等。由于数字信号处理课程中的核心内容是对离散时间信号进行分析,包括时域分析和频域分析,因此会存在大量计算和推导过程,使得该门课程教授起来比较枯燥乏味,学生们对这样的分析也往往不感兴趣,从而给课程的教授带来了很大的不便。而LabVIEW可视化的图形界面正好弥补了仅仅使用理论分析带来的缺点。将分析过程利用前面板中的波形图或者波形图表的形式表现出来,大大简化了分析和推导的难度,不仅直观、简洁、清晰易懂,而且增强了学生的学习兴趣,从而提高了学习效率。
三、LabVIEW在数字信号处理中的应用
数字信号处理课程主要包括离散信号、系统分析、Z变换、DFT、FFT、IIR以及FIR滤波器设计等内容,利用LabVIEW中各种信号分析和处理VI编写的程序能够实现对课程中各部分内容的分析。下面给出了几个实例,充分证明了将LabVIEW应用到数字信号处理教学中的正确性。
1.利用DFT计算线性卷积
(1)分析过程。设是一个M点序列,是一个L点序列,,即是和的线性卷积,那么是一个(M+L-1)点的序列。DFT对应的是循环卷积而不是线性卷积,要想利用DFT运算的快速性来计算线性卷积就要完成以下一些变换:首先对M点序列以及L点序列分别进行序列扩展,使它们构成新的序列和,并且两序列的长度均为M+L-1点;其次,和分别是某两个周期序列的一个周期,周期的长度为M+L-1,并计算两者的循环卷积;最后如果用DFT计算,即就是与乘积的傅里叶逆变换,其中、分别是、的DFT。[3]
(2)利用LabVIEW实现卷积计算。程序面板主要包括两个部分:第一是利用循环产生的两个数组;第二是对两个数组进行的变换,包括数组的补零以及傅里叶变换和逆变换。
前面板包括两个数值输入控件,用以设定两序列的长度;两个数值显示控件,用来显示直接线性卷积和利用DFT计算线性卷积后序列的长度;四个波形显示控件,用来显示两个序列以及不同方法下的运算结果。当设定两序列的长度分别为15和20时的运行结果如图1所示。
观察图1可知,直接对两序列进行线性卷积和利用DFT对两序列进行卷积的结果是一样的,从而直观、清晰地证明了利用DFT进行线性卷积方法的正确性。
2.频率分辨率
(1)频率分辨率的概念。分辨率(resolution)是信号处理中的基础概念,包括频率分辨率和时间分辨率两种,这里主要讨论的是频率分辨率的问题。频率分辨率是通过一个频域的窗函数来观察频谱时所看到的频率的宽度,或者说频率分辨率是指所用算法能将信号中两个靠的很近的谱峰保持分开的能力。通常我们采用的信号由两个或者多个频率相接近且幅度相同的正弦信号叠加产生,利用一个矩形窗将信号截短为T秒。以Ts为抽样间隔对进行抽样,那么抽样频率为fs=1/Ts,T秒长的时间内抽样点数为M=T/Ts。因此连续信号变成了离散序列,它也可以看作是无穷长离散序列和一宽度为M的矩形窗相乘的结果。因此,频率分辨率为:
式中T=MTs是原信号截短后的长度。[3]
(2)频率分辨率LabVIEW实现。下面我们通过一个例题来说明频率分辨率的问题:
设是三个正弦信号的叠加信号,其中最高频率不超过3Hz,用抽样频率fs=10Hz对其进行抽样。根据抽样定理可知,不会发生频率混叠问题。现设T=25.6s,然后对抽样后得到的序列进行FFT,通过计算得到的频率的最大分辨率 Hz。
取信号的三个频率分别为f1、f2、f3,当它们取不同的值时得到的频谱分布情况也不同。其中程序面板包括对三个频率的设定、信号采样、FFT变换、是否超过频率分辨率判断等。前面板中主要有频率选择控件、波形频谱显示控件、超频率分辨率报警控件以及频谱区分波形显示控件。如图2为前面板,通过改变信号频率可以观察到不同的结果。其中第二个报警灯点亮,指示了频率f2和f3无法区分,而右侧下方的波形图只显示了两个波峰,也表明有两个频率无法区分。也就是说如果构成信号的两个频率成分频率差值小于信号的频率分辨率,则这两个频率成分无法区分;反之,则可以区分。
3.栅栏效应
(1)栅栏效应分析。在数字信号处理中为了计算方便和快速,通常使用FFT对信号进行频域的分析。在利用FFT对连续时间信号进行频域分析的过程中,由于FFT计算频谱只限制在离散点上,也就是只限制在信号基本频率的整数倍处,而不是连续频率函数,这就像通过一个“栅栏”观看风景一样,只能在离散点的地方看到真实的景象,这种现象就被称为“栅栏效应”。[4]
(2)利用LabVIEW产生栅栏效应。如图3所示,在前面板上放置两个波形显示控件,分别显示正弦信号进行FFT变换后的原始频谱和进行放大处理后的频谱,从下方的波形图中可以清楚地看到一个个“栅栏”。在程序运行过程中,可以通过调整正弦信号的频率和相位、改变窗函数的类型来观察其对这些“栅栏”的影响。
通常情况下,减小栅栏效应的一个方法就是使频域抽样更密,也就是增加频域抽样点数。在不改变时域数据的情况下,要在时域数据的末端补零,使信号在一个周期内的点数增加,而不改变原有的记录数据。[4]这在LabVIEW中是很容易实现的,因为LabVIEW中包含专门对信号补零的VI。因此,只要在上述程序中给时域信号进行补零,则必然会使频域中谱线变密,原来看不到的频谱分量就能够看到了,从而减小了“栅栏效应”的影响。
四、结语
通过以上例子可以看出,作为一种图形化的语言,LabVIEW能够将一些复杂的理论清晰、简单地表示出来。同时,在实验过程中,学生们还可以对程序中不同的参数进行修改以获得不同的实验结果,并对结果进行分析。在此过程中加深了学生对抽象的专业理论知识的理解和掌握,从而提高学习兴趣。实践证明,将LabVIEW应用于数字信号处理课程中将会使课程取得很好的教学效果。
参考文献:
[1]张桐,陈国顺,王正林,等.精通LabVIEW程序设计[M].北京:电子工业出版社,2008.
[2]岂兴明,周建兴,矫津毅,等.LabVIEW8.2中文版入门与典型实例[M].北京:人民邮电出版社,2010.
[3]胡广书.数字信号处理——理论、算法与实现(第二版)[M].北京:清华大学出版社,2003.
[4]程佩青.数字信号处理教程(第三版)[M].北京:清华大学出版社,
2007.
(责任编辑:王祝萍)