基于GUI的数字信号处理实验平台的开发

本文介绍了基于GUI的数字信号处理实验平台的开发,采用层次化的设计方法,利用GUI实现图形用户界面,以交互的方式实现对《数字信号处理》中重要教学内容的动态仿真。用MATLAB的图形界面设计工具(GUI),以数字信号处理理论知识为基础,设计了与课堂教学、实验

  1引言

  一直以来,数字信号处理都被广泛应用于研究数字滤波、快速实现离散变换的算法以及对频谱的分析等领域,一直以来都被作为电子信息、通信等信息工程领域的必修课程,是一门通过研究数字方法从而实现对信号进行快速算法以及分析、变换、滤波、检测、调制、解调的重要学科。最近伴随着数字电路与计算机技术的迅速发展,数字信号处理技术应用范围也不仅仅只被应用于传统的通信与电子信息工程方面,它已经被越来越广泛的应用于生物工程、雷达等许多高科技尖端领域,为各种工程领域的发展提供了重要动力。数字信号处理这门课程也被许多高校设为信息专业领域必修课程[1]。这门课程的特点是:公式多、推导性质复杂繁琐、有较多的概念,更需要以其他诸多课程为基础,所以学生在学习的过程中,很容易因为跟不上进度,没有吃透书本知识,理解不到位以及大量的复杂运算而失去对《数字信号处理》这门课的学习兴趣。就这门课的现状而言,是非常不理想的,所以我们必须打破这种现状,在网络和计算机飞速发展的今天,各行各业都都开始与计算机进行挂钩,我们完全可以借助计算机来完成各种复杂的公式运算从而实现计算机辅助教学的模式。
  Matlab提供了大量数学函数和关于信号处理的工具箱,其强大的功能和交互式的环境使得它在这30多年内成为了科学研究,工程技术等领域不可或缺的仿真平台。MATLAB相比其它软件具有三大优势,一是其在数值分析和工程科学绘图等方面功能强大;二是其界面操作方便,编程语言简单易懂;三是拥有交互式的环境,方便由用户自由扩展其功能。MATLAB的图形化显示和图形处理功能相当完备,还拥有高效的数值精确计算和建模仿真功能,可以应用到在数值分析[2]。现在许多校在教授这门课时都会同时增开相应的课程实验课,通常选择使用Matlab来对数据信息进行仿真模拟展示,使用该软件的图形交互界面借助于配套的实验工具,实现理论与模拟结果的相结合,从而加深学生理解。[3]

  2数字信号处理简介

  2.1数字信号处理基本介绍

  数字信号处理技术通常利用数值运算的方式来处理数据,它通常将信号转换成二进制数字的形式,然后来对这些二进制数据进行处理,相对传统的模拟信号处理方式,可以极大提高灵活性,同时可以极大提高数据精度降低损耗,可以很方便的实现系统的集成,具有模拟系统无法比拟的性能优势[9]。
  现在例如电、光、电磁、热量等许多外部客观信息都可以通过相应的传感器进行收集,这些收集到的信号信息都可以通过相应的转换设备被转换成数字信号。所以当下在很多工程领域都使用数字信号处理的技术。要想实现将这些信息进行数字形式的处理就首先需要使用相应设备对信号信息进行采集,然后通过相应设备转换成数字信号,然后对这些采集到的信息进行处理分析等操作,最后需要通过软件转换或者硬件处理的方式来对相应信号信息进行处理。通过软件实现处理通常需要自己编写算法程序实现相应数字信号处理;硬件实现则是按照其原理图和电路图,设计相对应的硬件结构图,用乘法器、加法器、延时器、控制器以及输入输出接口等基本部件来实现。由此可见,软件实现方法比较灵活,而硬件实现方法运算速度快,不是很灵活。数字信号处理由于需要使用傅里叶变换、Z变换等数学知识来实现数字信号的处理,所以,数字信号具有灵活性高,同时可以极大提高数据精度降低损耗,可以很方便的实现系统的集成等模拟系统所无法比拟的性能优势。
  数字信号处理就是将模拟信号转换成数字信号进行处理,要想实现模拟信号到数字信号的转换,就需要将模拟信号进行测量或者滤波操作来实现模数转换。最后处理之后的结果要想进行展示就需要再将数字信号再转换回模拟信号,这就需要通过数模转换器实现的。
  最早实现模数转换通常使用DFT离散傅立叶变换算法来离散信号的数字域和频域,从而实现将模拟信号转换成计算机可以处理的离散信号。而真正实现将这种处理技术运用到实践中的是这种算法的改进版FFT快速傅立叶转换算法,这种算法比起DFT性能有了极大的改进与提升,极大减少数据运算量,从而实时实现模数转换,这种算法极大推动了数字信号处理成为工程应用技术。
基于GUI的数字信号处理实验平台的开发

  2.2傅里叶变换分类

  根据原信号的不同类型,我们可以把傅立叶变换分为四种类别:
  1、非周期性连续信号傅立叶变换(Fourier Transform)
  2、周期性连续信号傅立叶级数(Fourier Series)
  3、非周期性离散信号离散时域傅立叶变换(Discrete Time Fourier Transform)
  4、周期性离散信号离散傅立叶变换(Discrete Fourier Transform)
  2.3 DFT的基本性质
  1)线性性质
  如果和是两个有限长序列,长度分别为和,且
  式中a,b为常数,取,则y(n)的N点DFT
  (3-3)
  其中和分别为和的N点DFT。
  2)循环移位特性
  (1)序列的循环移位
  设x(n)为有限长序列,长度为M,M≤N,则x(n)的循环移位定义为
  (3-4)
  (2)时域循环移位定理
  设x(n)是长度为M(M≤N)的有限长序列,y(n)为x(n)的循环移位,即
  (3-5)
  (3-6)
  其中,0≤k≤N—1
  (3)频域循环移位定理
  如果,0≤k≤N—1
  则(3-7)
  3)循环卷积定理
  有限长序列和长度分别为和,,和在N点的循环卷积为:
  则x(n)的N点DFT为:
  (3-8)

  2.3 DFT对模拟信号进行谱分析

  在工程实际当中经常遇到的模拟信号是连续函数及其频谱函数也是连续函数,为了使用DFT变换对进行谱分析,对进行时域采样可以得到,然后x(n)进行DFT变换,可以得到函数X(k)是在频率区间上对x(n)进行傅里叶变换得到的N点等间隔采样,其中x(n)和X(k)全部是有限长序列。然而,由傅里叶变换理论可知,对于长度有限的信号其频谱的宽度是无限的,相反,比较弱的信号其频谱的持续时间会变得接近无限长,因此,在根据采样定理进行采样时,相应的采样序列应该是无限长,这样就不能使用DFT变换了。在实际情况中,对于拥有很宽频谱的信号,为预防对其时域采样后产生不好频谱的混叠现象,一般会先对信号使用前置滤波器将其幅度比较小的高频部分给滤掉,是的信号的带宽比采样频率小;同理,对于具有很惨持续时间的信号,选取的采样点过多也会造成计算困难和存储困难,一般情况下也是选取有限个采样点进行采样计算。由此可以看出,对模拟信号进行DFT变换的结果只是个近似值,其效果由信号的带宽、采样截取长度和采样频率决定。

  2.4分析、计算离散傅里叶变换(DFT)

  计算DFT有3种不同的方法,分别是:
  1.首先,可以通过联立方程来求解,它因效率太低而无法在实际中使用。
  已知时域中N个点的值,求这N个点在频域中的值(忽略频域中必为零的两个值)。由基本的代数常识可知:要求解N个未知数,就必须写出N个方程。为了求这些值,将每个正弦波的第一个样点加起来,这个和必等于时域信号必等于时域信号的第一个样点值,即可得到第一个方程。同理,时域信号中的每个样点都可以写成类似的方程,就得到了所需的N个方程。使用该方法进行求解时,计算量非常大,实际上从未在DSP中使用。该方法的提出说明了一个信号为什么可以被分解成正弦波,需要分解出多少个正弦波,以及这些基本函数必须线性不相关。
  2.第二种方法是通过相关性计算DFT。它是以从一个信号中检测已知信号为基础的,是DFT的标准算法。将时域信号与适当的正弦或余弦波相乘,再把所得结果全部累加起来,即可得到频域中的每个样点值,这就是DFT的分析方程,也就是从时域值求解频域值的数学方法,如下图:
  图2 DFT的分析方程
  3.第三种方法,称为快速傅里叶变换(FFT),该算法将一个含有N个点的DFT分解为N个只含有一个点的DFT。
  在实际应用中,如果进行DFT的点数少于32个,则选用相关性的方法来计算,否则选用FFT进行计算。

  2.5离散傅里叶变换(DFT)注意事项

  (1)时域和频域混叠
  根据奈奎斯特采样定理,在一般的情况下采样频率必须大于采样信号的最高频率的两倍,才能后采样得到完整的信号。由于在实际情况中,信号的持续时间不可能是无限的,所以理论上来讲,信号的频谱宽度可以是无限的,无论去多大的采样频率都是不可能采样到完整的采样信号的。但是当高频分量超过一定范围后,其对采样信号的影响已经可以忽略不计,因此在工程中需要先对信号进行低通滤波。
  (2)截断效应
  在实际情况中模拟信号往往是有限长度的,其不可能是无限长,因此必须先将模拟信号截断成程度为N的有限长信号,再使用DFT变换对信号进行谱分析。
  (3)频谱泄露
  原序列x(n)在截断后每根谱线上都会带有一个辛格普,这是由于原序列是离散谱线,就像向两边延伸谱线,这种由于截断导致频谱延宽的现象称为泄漏,泄漏会导致频谱变得模糊不清,频谱的分辨率变得很低。
  (4)谱间干扰
  由于截断,会使得主要的谱线的两边形成许多的旁瓣,导致不同频谱分量间的干扰,这就是谱间干扰,这可能会导致弱信号被强信号淹没,而且也会使得分别率既降低。截断造成的谱间干扰是不可能完全消除的,只能根据实际情况来进行调整折中达到性能最优。
  (5)栅栏效应
  DFT对信号进行N个点频谱的间隔采样,其中采样频率区间为,采样后会得到多个离散点X(k),并且去采样频点为基频F的倍数,这就像通过一条的细小的缝隙来看栅栏外的风景,只能在细小的缝隙处才能看到外面的景象,这细小的缝隙就是离散采样点,而其余部分则都看不到外面,这就是栅栏效应。可以在时域数据的末端增加一些零值点,来减小栅栏效应。
  (6)信号长度的选择
  对信号长度的选择会影响到DFT变换的性能。在实际中,信号的长度往往是长度随机的。因此在实际中,往往是对几个典型的或者周期性的信号进行频谱分析,然后在得到合理的结果。

  2.6数字滤波器的简单介绍

  2.6.1滤波器的基本概念
  数字滤波器主要用于处理数字信号,能够将数字信号中无用的信息和成分滤出掉,只保留需要的信号。从这一角度分析,模拟和数字滤波器的作用是一样的,只是处理的信号形式不同。数字滤波器有精度高,处理方便,操作灵活,性能稳定,没有模拟滤波器中的阻抗匹配问题等优点,比模拟滤波器拥有更加强大的功能。数字滤波器也能用于处理模拟信号,但是在处理前要通过模数转换器,把模拟信号转变为数字信号9]。
  设计数字滤波器的方式主要有两种,一是通过计算机软件,编程实现数字滤波器需要实现的功能,是基于软件系统的设计方法,二是通过硬件设备,建立专门的数字处理工具。在信号处理领域中,可以利用matlab软件设计滤波器,其提供了专业的工具箱,能够实现滤波的功能,还可以分析频谱。工具箱中有大量使用方便的工具,集成了丰富的功能。直接调用相关函数,就能完成滤波器的设计、参数设置和指标分析,且分析速度快、准确率高,为相关研究提供了便利条件。
  2.6.2数字滤波器的分类
  1.从功能上分低通、带通、高通、带阻。
  2.从实现方法上分FIR、IIR
  3.从设计方法上来分Chebyshev(切比雪夫),Butterworth(巴特沃斯)….
  4.从处理信号来分经典滤波器、现代滤波器等。
  数字滤波器的理想低通、高通、带通、带通、带阻滤波器幅度特性
  基于GUI的数字信号处理实验平台的开发
  但是,如果信号的干扰和频带互相重叠,叫不能完成对干扰的有效滤除。
  现代滤波器这一类滤波器可按照随机信号内部的一些统计分布规律,从干扰中最佳地提取信号。
  现代滤波器理论源于维纳在40年代及其以后的工作,这一类滤波器的代表为维纳滤波器,此外,还有卡尔曼滤波器、线性预测器、自适应滤波器。
  2.6.3数字滤波器的技术要求
  通常用的数字滤波器一般属于选频滤波器。假设数字滤波器的传输函数用下式表示
  H(ejw)=│H(ejw)│e jΩ(w)(2.6)
  式中,H(ejw)称为幅频特性,Q(w)称为相频特性。
  幅频特性表示信号通过该滤波器后各频率成分衰减情况;相频特性反映各频率成分通过滤波器后在时间上的延时情况。
  因此,即使两个滤波器幅频特性相同,而相频特性不一样,对相同的输入,滤波器输出的信号波形是不一样的。
  一般选频滤波器的技术要求由幅频特性给出,相频特性一般不作要求。但如果对输出波形有要求,则需要考虑相频特性的技术指标,例如,语音合成、波形传输、图像信号处理等。

  3 MATLAB软件介绍

  3.1 MATLAB现状

  MATLAB简称Matrix Laboratory,是矩阵实验室之意。最初,matlab主要用于矩阵的计算和分析,作为数学分析工具,进行数学计算。随着技术的发展,matlab的功能日益完善,也在刷领域得到应用。matlab是一款专业的数学分析工具,由math works公司设计并推出,采用面向对象的高级开发语言,提供了有好的显示界面,能够进行数值计算和分析、算法开发、编写代码,还提供了数据分析、应用开发的交互式开发环境、文件管理的多项操作。matlab的工具箱数量高达十余个,还提供了simulink和matlab两大专业功能。
  利用matlab的GUIDE工具箱能够在可视化的(GUI)图形界面中进行滤波器的设计,设置参数,模拟和仿真数字信号。在GUI中,包括按键、文本框、弹出框、窗口等,通过鼠标点击或选择就能完成滤波器的设计,使用方便、灵活,为数字信号处理的分析和研究提供了便利条件,初学者也能轻松掌握。该GUI,能将Matlab软件和多媒体硬件很好的结合,形成一种新的计算机辅助教学形式,可以很好的解决传统教学方法中不易完成或不可能完成的教学任务。而在实际的教学应用中,大幅度的提高了教学的效率和效果,也很好的证明了这种新的CAI方式有利于加强学生对理论知识的理解。[4]
  下面来介绍一下MATLAB的优点:
  1.友好的工作平台和编程环境
  MATLAB由一系列工具组成。用户通过matlab工具,直接调用其中的文件或函数,就能够实现特定功能。通过可视化的显示界面,能够直接看到分析结果,清晰、直观。matlab软件包括文件浏览、工作空间、图形界面、帮助、搜索路径、调试器、编辑器、命令窗口等。随着技术的发现,matlc软件不断更新和优化,为用户提供了友好的显示界面,使用方便,操作性强,易于掌握。最新版的matlab改进了帮助和查询系统能够轻松搜索和查询所需要的信息,为实际使用带来更大的便利。matlat有强大的调试工具,开发环境良好,无需编译就能够直接运行程序,并提供纠错报告,为程序开发和设计提供可靠参考,极大提高了编程效率。
  2.强大的科学计算机数据处理能力
  MATLAB作为一个善于矩阵运算的工具,它的数学运算能力是很强的,对于一些大的数据集合,编程要比C语言简易很多,因为在C语言上一个语句只能执行一个数的操作,大批数据的处理就需要使用循环。matlab软件中植入了丰富的函数和算法,数学函数的数量高达600余个,计算能力强,计算速度快,能够进行大数据量的计算。通过直接调用函数就能完成相应计算,使用方便,在实际工程项目和科学研究中得到广泛应用。算法库不仅包含基本的算法,还包括改进、优化的最新算法,容错性更好,适用性更强,如傅立叶变换、侵侮分析、矩阵计算等,能够直接当成编程工具来使用。通过函数,能建立动态仿真模型、多维数组、三角函数、复数和稀疏矩阵的计算,数据或频域变幻的数据分析,符号运算,求解微积分方程组和线性方程组,进行矩阵计算等。此外,还能应用到实际工程之中,解决最优路径、工程优化等问题。也相关领域的分析和研究带来了极大便利。
  3.除具备超强的数值计算能力外,它还提供了专业水平的文字处理,符号计算,实时控制和可视化建模仿真等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用FORTRAN等语言完相同的事情简捷得多
  4.MATLAB软件具有很强大的数据可视化功能和图形符号表达功能。该软件不仅能够进行二维绘图和三维绘图,还可以给三维图形添加光照处理以及四维数据的显示等[5]。
  5.MATLAB的开放性使其广受用户欢迎,除了内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件。
  6.MATLAB中GUI设计作用和功能在工作学习中的意义是更加形象直观,如果你把你的程序封装成GUI话,那么别人不需要理解你的算法也可以根据你的提示输入并得到想要的结果。

  3.2 MATLAB基础知识

  3.2.1基本运算
  在MATLAB下进行基本数学运算,只需将运算式直接打入提小号(>>)之后,并按入Enter键即可。例如:
  >>(5*2+1.3-0.80)*10/25
  Ans=4.2000
  MATLAB会将运算结果直接存入一变ans,代表MATLAB运算后的答案(Answer)并显不其数值于屏幕上
  提示:
  “>>”是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由于编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。
  我们也可将上述运算式的结果设定给另一个变数x
  X=(5*2+1.3-0.8)*10^2/25
  X=42
  3.2.2常用的数学函数
  abs(x):纯量的绝对值或向量的长度angle(z):复数z的相角(Phase angle)
  sqrt(x):开平方round(x):四舍五入至最近整数fix(x):无论正负,舍去小数至最近整数
  rat(x):将实数x化为分数表不rats(x):将实数x化为多项分数展开
  floor(x):地板函数,即舍去正小数至最近整数sign(x):符号函数(Signum function)
  ceil(x):天花板函数,即加入正小数至最近整数
  3.2.3 MATLAB的绘图功能
  1、绘制二维图形的一般步骤
  (1)数据的准备:选定所要表现的范围
  产生自变量采样向量
  计算相应的函数值向量
  典型指令x=0:pi/100:2*Pi;
  (2)选定图形窗及其子同的位置:
  缺省时,打开figure No.1当前窗,当前子图可用指令指定图形窗号和子图号
  典型指令:figure(1)%指定1号图形窗
  subplot(2,2,2)%指定2号子团
  (3)调用(高层)绘图指令:线型、色彩、数据点形
  典型指令:plot(x,y,'-ro')%用红色实线画曲线,其数据点类型为o
  (4)设置轴的范围与刻度、坐标分格线
  典型指令:axis([o,inf,-1,1])%设置坐标轴的范围
  grid on%画坐标分格线
  (5)图形注释,包括图名、坐标名、图例、文字说明等
  典型指令:title(‘专家系统’)%图名
  xlabel(‘’);ylabel('y')%轴名
  legend('sinx','cosx')%图例
  terct(2,1,'y-ajax')%文字说明
  (6)打印图形窗上的直接打印选项或按键,利用图形后处理软件打印,采用图形窗选项或按键打印最简捷。
  步骤1,3是最基本的绘同步骤。至于其他步骤,并不完全必须。
  2、三维图形的绘制
  绘制三维曲线最常用的函数是plot3,它的一般格式为plot3(x,y,z),MATLAB除了能够绘制曲线图形外,还能够绘制网格图形和曲面图[6]。

  3.3 MATLAB在数字信号处理中的应用

  目前,MATLAB在数字信号处理的仿真实验中用于数字信号处理仿真实验平台的设计已经十分普遍,很多实验在真正在实验室操作之前,一般先进行仿真,而MATLAB为此提供了十分便利的条件。在科学研究中,实验是必不可少的,但是实验室的造价高昂,但是大量的科学验证都必须得进行实验,所以,人们就在计算机上设计出了相关的仿真软件,用于在计算机上模拟出实验环境,MATLAB就是一款这样的软件,使用MATLAB来进行实验仿真就可以达到类似于在实验室进行实验的效果。数字信号处理实验使用MATLAB来进行仿真,可以让实验变得更加容易,由于MATLAB的仿真的效果良好,能够推动科学技术的发展。MATLAB仿真平台能够使得实验能在计算机软件上进行模拟仿真,使实验变得更加容易和普及化,能极大的推动科学的进步。[7]

  4 MATLAB GUI的数字信号处理仿真平台的设计和实现

  4.1 GUI界面设计基础知识

  GUIDE全称为Graphical User Interface Development Environment,即MATALB图形用户接口开发环境。它提供了一系列工具用于建立GUI界面的方法。GUI工具栏、GUI布局区、GUI对象选择区,以及状态栏为其组成主要的四大部分。在MATLAB中,创建并设计GUI界面的主要有二种方法:使用.m文件直接动态添加控件;使用GUIDE快速的生成GUI界面。显然第二种可视化编辑方法算更适合写大型程序。分别为使用可视化的界面环境可直接通过编写程序。本设计主要采用前者的设计方法[10]

  4.2 GUI界面设计基本步骤

  1、使用可视化的界面环境来实现GUI界面的设计,首先设计整个演示系统的主界面、功能选择界面和子界面。
  2、其次分别编写各个子界面中各个控件对象(object)的回调函数,来实现直接通过操作界面上各个控件,就可以方便地对《数字信号处理》中重要内容的仿真及仿真图形进行读取和分析的目的。
  3、然后编写功能选择界面的回调函数,将各个模块的子界面整合在信号与系统演示系统的功能选择界面中,实现操作功能选择界面的各个空间就可以进入任何一个子模块界面进行实例仿真的功能。
  4、最后编写实验演示系统主界面的回调函数,实现从主界面直接切换进入功能选择界面的功能[11]。
 基于GUI的数字信号处理实验平台的开发

  4.3数字切比雪夫滤波器

  4.3.1切比雪夫滤波器的基本知识
  切比雪夫滤波器在通带内的幅度响应是等波纹的,而在阻带内是单调下降的;或者在通带内是单调下降的,而在阻带内是等波纹的。
  切比雪夫滤波器的幅度平方函数为
  (4.1)
  式中,ε称为纹波参数,它与通带内幅度响应的纹波有关;Ωc为有效通带截止频率,N是滤波器的阶数。
  切比雪夫滤波器是由ε、Ωc和N共3个参数确定。
  4.3.2切比雪夫滤波器的设计步骤
  (1)根据滤波器的指标确定参数ε、Ωc和N。
  (2)计算常量α、a和b,并求出极点Sk。
  (3)由s平面左半平面的极点构成传递函加H a(s)。
  (4)利用冲激响应不变法或双线性变换法将H a(s)转换成H(z)。
  4.3.3数字滤波器的典型的分析和设计方法
  频域:
  1)幅频特性,相位特性,群延迟特性。
  2)舍入噪声,也就是常说的平均噪声功率和噪声谱。
  时域:
  1)冲激和响应,还有对其他输入的时间响应。
  2)极限环。分析这些特性的方法主要有:a.节点方程式。b.混合方程式。c.状态方程式。d.传输函数。分析输入输出之间的关系可知,a~d逐渐增多,则从d的传递函数可以知道频域和时域的输入输出之间的关系特性。分析系统的结构可以知道,d~a依次不断增多,因此知道系统结构就知道节点方程式,从节点方式式也能推出系统结构,这两者是相通的。但我们这里只讨论传递函数。

  4.4高通滤波器

  4.4.1高通滤波器的工作原理
  去掉信号中不必要的低频成分,去掉低频干扰的滤波器;在电力系统中,谐波补偿时用高通滤波器滤除某次及其以上的各次谐波。高通滤波器是指车载功放中能够让中、高频信号通过而不让低频信号通过的电路,其作用是滤去音频信号中的低音成分,增强中音和高音成分以驱动扬声器的中音和高音单元。此外高通滤波器常常和低通滤波器成对出现,不论哪一种,都是为了把一定的声音频率送到指定的单元。
  4.4.2基于MATLAB的数字信号处理虚拟实验仿真平台主界面
  (1)用MATLAB进行关于FIR的仿真编程,利用MATLAB的GUI功能来设计仿真平台的主界面如图4.1所示:
 基于GUI的数字信号处理实验平台的开发
  从这个界面我们就可以清晰的看到整个仿真平台的构建,以及具体各部分的功能。
  (2)原始数据及输入数据运行程序后生成的波形如下图4.2:
  %这个程序用于产生外部测试信号并用于让GUI界面去读取这个保存的外部数据
  clear
  clc
  %采样率Fs;
  Fs=600;
  %时间序列
  t=0:1/Fs:0.5;
  %设置信号频率;%设置信号幅度
  f1=40;amp1=20;
  f2=60;amp2=10;
  f3=150;amp3=13;
  f4=200;amp4=20;
  f5=220;amp5=10;
  f6=280;amp6=10;
  %产生叠加的测试信号
  x=amp1*sin(2*pi*f1*t)+amp2*cos(2*pi*f2*t)+…
  amp3*sin(2*pi*f3*t)+amp4*sin(2*pi*f4*t)+amp5*cos(2*pi*f5*t)+amp6*sin(2*pi*f6*t);%产生6个频率叠加的信号
  a=x;
  %保存为外部文件,用于GUI界面读取
  save('a','a');
 基于GUI的数字信号处理实验平台的开发
  这部分的上图是读取MATLAB额外产生的外部信号,显示出时域波形,下图是对读取的这个信号进行傅里叶变换求出频谱并画出频谱图。可见在几个频率点上都有冲击,这就说明了产生的外部信号就是这几个频谱的叠加。上图的采样频率Fs=600。
  (3)生成所设置滤波器如图4.3:
  基于GUI的数字信号处理实验平台的开发
  这个部分是根据输入的滤波器参数生成的频谱响应和相位特性图,因为所设置的带通滤波器的截至频率是100~170之间,所以产生的幅频特性的通带范围也是在100~170之间,从相频响应看100~170刚好是-3dB衰减的位置,由上图可清晰的看出来。
  (4)滤波后如图4.4:
 基于GUI的数字信号处理实验平台的开发
  这部分的功能就是滤波器把原来的多频率信号进行滤波,从下图频谱图可以看出滤波后只剩下通带内的频率分量了,对应上图的时域就是那个频率单一的正弦信号。
  (5)运行程序后整个仿真平台如图4.5:
  基于GUI的数字信号处理实验平台的开发
  这个界面的整体就是贯穿信号处理过程的全部仿真,包括信号的产生,滤波器的产生以及滤波后的对比分析。从这个界面上可以初步分析出因为一开始的信号频率很多所以频谱有很多尖峰,然后滤波后的频谱图就留下了一个尖峰,还有对应的一开始信号有好多频率混杂波形很乱,通过滤波后就正剩下一个正弦波。这样就完成一次完整的信号处理仿真过程。

  4.5结果展示

基于GUI的数字信号处理实验平台的开发

  5总结

  MATLAB的数字信号处理实验平台的设计技术的实现与创新离不开计算机技术的不断发展,MATLAB设计出来的仿真实验平台对教学有很大的帮助,可以借助于该平台所设计的相关典型的实验,达到教学的目的。由于在现实中,很多实验器材不具备以及实验器材的不可避免的误差影响,使得实验效果不是很明显,所以用MATLAB GUI设计出这个平台不仅方便还可以高度仿真。MATLAB GUI设计平台占用资源极少,只需要一台电脑就可以进行试验,以这是一个很有研究意义的仿真平台。以后还应该加强设计优化,使它更实用和更简单。
  最后我要感谢我的指导老师—胡菊菊老师,在我的论文撰写期间,老师对我严格要求同时,对我论文中存在的问题也是耐心讲解、悉心指导,这才让我的学士学位论文写作得以顺利完成。胡老师平易近人的性格,严谨的工作态度、渊博的专业学识使我在此次论文学习中受益匪浅。她也是我以后学习和工作的典范。同时我要感谢通信2班的全体,在我大学生涯的思念学习期间他们给予了我很多的帮助和鼓励,一同探讨问题、一同解决问题的经历是如此的宝贵。

  参考文献

  [1]高西全,丁玉美.数字信号处理[M].2版.西安:电子科技大学出版社,2003.
  [2]刘艳.基于MATLAB GUI的数字信号处理仿真平台的设计[J].电子世界,2013(17):133-134.
  [3]施晓红,周佳.精通GUI图形界面编程[M].北京:北京大学出版社,2003.
  [4]沈捷,王莉.数字信号处理教学实验软件包的GUI设计与实现[J].实验技术与管理,2008,25(2):88-91.
  [5]邓华等.MATLAB通信仿真及应用实例详解[M].北京:人民邮电出版社,2003.
  [6]Edward W.Kamen,Bonnie S.Heck.Fundamentals of Signal and Systems Uing the Web and MATLAB[M].English:Pearson Education,2002.
  [7]朱雷平.MATLAB在数字信号处理中的应用[J].科技信息:学术版,2007(5):180+18
  [8]程佩青.数字信号处理教程(第4版)[M].清华大学出版社,2013:65-70.
  [9]楼顺天、李博菡.基于MATLAB的系统分析与设计现—信号处理[M].西安电子科技大学出版社,1998:112-130.
  [10]杨丹,赵海滨.MATLAB从入门到精通[M].北京:中国铁道出版社,2013:1-18
  [11]罗华飞.MATLAB GUI设计学习手记(第三版)[M].北京:北京航空航天大学出版社,2014:353-428
  [12]王群,姚为正,王兆安.高通滤波器对谐波检测电路检测效果的影响分析[J].电力系统自动化,1999,23(16):17-19.
下载提示:

1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。

2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。

3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。

原创文章,作者:写文章小能手,如若转载,请注明出处:https://www.447766.cn/chachong/16141.html,

Like (0)
写文章小能手的头像写文章小能手游客
Previous 2022年1月29日
Next 2022年1月29日

相关推荐

My title page contents