基于MATLAB的信号处理仿真分析

更新时间:2024-04-16 19:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于MATLAB的信号处理仿真分析

中文摘要: Matlab在信号分析与处理中有着广泛的应用。本文以具体的函数信号产生、信号变换、功率谱估计方法,详述了如何应用Matlab语言编程的方法设计对信号进行编辑和仿真分析。利用MATLAB 软件,通过设计图形用户界面(GUI),说明Matlab功能强大、简单实用、调节容易、可视性好,可大大提高计算效率,缩短编程时间,是一种简便实用的计算工具,可成功地应用于信号处理中,在教学和研究等领域具有广泛的应用前景和一定的推广价值。 关键词:Matlab 信号产生 信号变换 功率谱估计 GUI。

Abstract: Matlab has a wide range of applications in signal analysis and processing, This article has pointed out its characteristics, interfaces and basic method of calculation, Specific function signal generator, function transform, classical spectral estimation methods, detailed in the application of the Matlab programming language designed for editing of the signal analysis and simulation. Through the design of graphical user interface (GUI) by Using Matlab,we can learn that Matlab is powerful, simple, practical, easy adjustment, visibility, and can greatly improve the

computational efficiency and shorten the programming time is a simple and practical tool,can be successfully applied to signal processing, in the teaching and research in areas such as the application of a wide range of prospects and the promotion of a certain value.

Key Words: Matlab Signal generation Signal change Power spectrum

estimation GUI

目 录

第1页(共38页)

第一章 绪论 ????????????????????????????3 1.1 MATLAB简介????????????????????????3

1.2 MATLAB的特点和优势????????????????????4 1.3图形用户界面(GUI)?????????????????????5 1.4设计内容 ??????????????????????????5 第二章 信号产生及其MATLAB实现 ????????????????? 5

2.1离散信号及其MATLAB实现 ????????????????? 6 2.2连续信号及其MATLAB实现??????????????????9 2.3噪声及波形信号的MATLAB实现 ???????????????13 第三章 信号变换及其MATLAB实现 ????????????????? 18 3.1 Z变换 ??????????????????????????18

3.2离散傅里叶变换DFT ????????????????????20 3.3快速傅里叶变换FFT ????????????????????21 第四章 基于MALTAB的功率谱估计 ??????????????????23 3.1 直接法 ?????????????????????????23

3.2 间接法 ?????????????????????????25 3.3 改进直接法????????????????????????26 第五章 图形用户界面(GUI)的实现??????????????????27

5.1 GUI界面设计概述 ????????????????????27 5.2 GUI的具体实现过程????????????????????29 5.3 GUI总界面????????????????????????36 第六章 总结????????????????????????????37 第七章 致 谢 ???????????????????????????37 参考文献 ?????????????????????????????38

第一章 绪论

第2页(共38页)

1.1 MATLAB简介

MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。历经升级,到2001年已经有了6.0版,现在MATLAB 6.1、6.5、7.0、7.X都已相继面世。早期的MATLAB在DOS环境下运行,1990年推出了Windows版本。1993年,Mathworks公司又推出了MATLAB的微机版本,从分支持在Microsoft Windows界面下的编程。随着版本的升级,内容不断扩充,它的功能越来越强大,特别是在系统仿真和实时运行等方面,有很多新进展,更扩大了它的应用前景,是各种科学计算软件中使用频率最高的软件。

MATLAB包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属

第3页(共38页)

于此类。

开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。

1993年出现SIMULINK,这是基于框图的仿真平台,SIMULINK挂接在MATLAB环境上,以MATLAB的强大计算功能为基础,以直观的模块框图进行仿真和计算。SIMULINK提供了各种仿真工具,尤其是它不断扩展的、内容丰富的模块库,为系统的仿真提供了极大便利。在SIMULINK平台上,拖拉和连接典型模块就可以绘制仿真对象的模型框图,并对模型进行仿真。在SIMULINK平台上,仿真模型的可读性很强,这就避免了在MATLAB窗口使用MATLAB命令和函数仿真时,需要熟悉记忆大量M函数的麻烦,对广大工程技术人员来说,这无疑是最好的福音。现在的MATLAB都同时捆绑了SIMULINK,SIMULINK

的版本也在不断升级,从

1993

年的

MATLAB4.0/SIMULINK1.0版到2001年的MATLAB6.1/SIMULINK4.1版, 2002年即推出了MATLAB6.5/SIMULINK5.0版。MATLAB已经不再是单纯的“矩阵实验室”了,它已经成为一个高级计算和仿真平台。

1.2 MATLAB的特点和优势 特点:

(1)此高级语言可用于技术计算

(2)此开发环境可对代码、文件和数据进行管理

(3)交互式工具可以按迭代的方式探查、设计及求解问题

(4)数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分 (5)二维和三维图形函数可用于可视化数据 (6)各种工具可用于构建自定义的图形用户界面

(7)各种函数可将基于MATLAB的算法与外部应用程序和语言(如 C、C++、Fortran、Java、COM 以及 Microsoft Excel)集成

优势:

(1)友好的工作平台和编程环境 (2)简单易用的程序语言

(3)强大的科学计算机数据处理能力 (4)出色的图形处理功能

第4页(共38页)

(5)应用广泛的模块集合工具箱 (6)实用的程序接口和发布平台

(7)应用软件开发(包括用户界面) 1.3图形用户界面(GUI)

MATLAB提供的图形用户界面开发环境(GUIDE)来完成界面设计。GUIDE主要是一个界面设计工具集,MATLAB将所有GUI支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法。GUI将用户保存设计好的GUI界面保存在一个FIG资源文件中,同时自动生成包含GUI初始化和组件界面布局控制代码的M文件,为实现回调函数提供了一个参考框架。这种提供图形用户界面的应用程序能够使用户的学习和使用更为方便、直观和实用。

1.4设计内容

(1)信号产生及其MATLAB实现

a.离散信号及其MATLAB实现 b.连续信号及其MATLAB实现 c.噪声及波形信号的MATLAB实现 (2)信号变换及其MATLAB实现 a.Z变换

b.离散傅里叶变换DFT c.快速傅里叶变换FFT (3)功率谱估计 a.直接法 b.间接法 c.改进直接法

(4)图形用户界面(GUI)的实现

第二章 信号产生及其MATLAB实现

在MATLAB中产生信号,很多可以通过MATLAB内部的一些简单函数如zeros、ones等来实现。同时MATLAB可实现信号的基本运算,如移位、相加、相乘等。

第5页(共38页)

MATLAB内部提供了大量的函数用来产生噪声及常用的信号波形。下面对数字信号处理中的常用信号的产生进行阐述。

2.1离散信号及其MATLAB实现

(1)单位冲激序列

编写程序产生32点并右移20的单位冲激序列。 MATLAB程序如下: N=32; K=20;

x=zeros(1,N); x(K)=1; xn=0:N-1; stem(xn,x)

axis([-1 33 0 1.1]) 运行结果:

(2)单位阶跃序列

编写程序产生N=32点的单位阶跃序列。 MATLAB程序如下: x=ones(1,N);

第6页(共38页)

xn=0:N-1; stem(xn,x);

axis([-1 32 0 1.1]); 运行结果:

(3)斜坡序列

编写程序产生斜率为3移位为4的斜坡序列。 MATLAB程序如下: N=32; k=4; B=3;

x=[zeros(1,k) ones(1,N-k)]; for i=1:N

x(i)=B*x(i)*(i-k); end xn=0:N-1; stem(xn,x)

axis([-1 32 0 90]) 运行结果:

第7页(共38页)

(4)正弦序列

编写程序产生幅度A=3,频率f=100,初始相位fai=1.2的正弦序列。 MATLAB程序如下: N=32; A=3; f=100; fai=1.2; xn=0:N-1;

x=A*sin(2*pi*f*(xn/N)+fai); stem(xn,x)

axis([-1 32 -3.2 3.2]) 运行结果:

第8页(共38页)

(5)实指数序列

编写程序产生幅度A=3,a=0.7的实指数序列。 MATLAB程序如下: N=32; A=3; a=0.7; xn=0:N-1; x=A*a.^xn; stem(xn,x) 运行结果:

2.2连续信号及其MATLAB实现

(1)单位冲激信号

编写程序产生t=1/50的单位脉冲信号。 MATLAB程序如下: t1=-0.5:0.0001:0; A=50; A1=1/A; n1=length(t1); u1=zeros(1,n1); t2=0:0.001:A1; t0=0;

第9页(共38页)

u2=A*stepfun(t2,t0); t3=A1:0.001:1; n3=length(t3); u3=zeros(1,n3); t=[t1 t2 t3]; u=[u1 u2 u3]; plot(t,u)

axis([-0.5 1 0 52]) 运行结果:

(2)单位阶跃信号

编写程序产生单位阶跃函数 。 MATLAB程序如下: t=-0.5:0.001:1; t0=0;

u=stepfun(t,t0); plot(t,u);

axis([-0.5 1 -0.2 1.2]); 运行结果:

第10页(共38页)

(3)实指数函数

编写程序产生实指数函数f(t)=3e0.5t 。 MATLAB程序如下: t=0:0.001:3; A=3; a=0.5; u=A*exp(a*t); plot(t,u)

axis([-0.2 3.1 -0.2 14]) 运行结果:

(4)正弦函数

编写程序产生正弦函数f(t)=3cos(6πt+1) 。 MATLAB程序如下: t=-0.5:0.001:1;

第11页(共38页)

A=3; f=3; fai=1;

u=A*sin(2*pi*f*t+fai); plot(t,u)

axis([-0.5 1 -3.2 3.2]) 运行结果:

(5)指数调制正弦函数

0.5t

编写程序产生指数调制正弦函数f(t)=3ecos(10πt-1)。

MATLAB程序如下:

t=0:0.001:2.5; A=3; a=0.5; f=5; fai=1; u1=A*exp(a*t); u2=sin(2*pi*f*t+fai); u12=u1.*u2; t0=1;

u3=stepfun(t,t0); u=u12.*u3;

第12页(共38页)

plot(t,u)

axis([0 2.6 -10.2 10.2])

运行结果:

2.3噪声及波形信号的MATLAB实现

MATLAB内部提供了大量的函数用来产生噪声及常用的信号波形。这些信号在信号处理中非常重要。下面将对这些波形产生函数及其使用进行介绍:

(1)SQUARE函数

SQUARE函数分为SQUARE(T)和SQUARE(T,DUTY)两种格式。

SQUARE(T):相对于时间变量T产生周期为2π,幅值为±1的方波。 SQUARE(T,DUTY):产生指定周期的方波。DUTY:信号为正值的区域在一个周期内所占的比例。

① 编写程序产生占空比为30%,幅度为1的方波信号。 MATLAB程序如下: t=0:0.01:6*pi; x=square(t,30); plot(t,x);

axis([0 6*pi -1 1.1]) 运行结果:

第13页(共38页)

② 编写程序产生频率为10Hz的锯齿波。 MATLAB程序如下: f=10; fs=1000; t1=0:1/fs:1; t=2*pi*f*t1; y=sawtooth(t); plot(t,y) 运行结果:

③ 编写程序产生频率为10Hz的三角波。 MATLAB程序如下: f=10; fs=1000; width=0.5;

第14页(共38页)

t1=0:1/fs:1; t=2*pi*f*t1;

y=sawtooth(t,width); plot(t,y) 运行结果:

(2)SINC函数

SINC函数的调用格式是SINC(T),对输入的变量T计算数学sinc函数的值。即

?1t?0?sinc(t)??sin(?t)

t?0???t

它是宽度为2π,幅度为1的矩形脉冲的逆傅里叶变换:

1sinc(t)?2??jwte?dt?? 用MATLAB编写一段程序得到SINC函数的曲线。 MATLAB程序如下: t=linspace(-10,10); x=sinc(t); plot(t,x) 运行结果:

第15页(共38页)

Xk=xn*WNnk;% DFT系数的行向量 figure(1) stem(n,xn); figure(2) stem(k,abs(Xk));

有限序列及其DFT的图形:

3.3快速傅里叶变换FFT

快速傅里叶变换算法FFT可分为时间抽取法(DIT-FFT)和频率抽取(DIF-FFT)。Fft是MATLAB内部函数,常用格式为:y=fft(x,n)。ifft函数用来计算序列的逆傅里叶变换,常用格式为:y=ifft(x,n)。

设某信号x(n)是由两种频率的正弦信号加白噪声组成,即:x(n)=a1sin(2πf-1

n/fs)+a2sin(2πf2n/fs)+n(t)。求当a1=5,a2=3,f1=2Hz,,f2=2.05Hz,以及采

样频率取为fs=10Hz,信号x(n)的FFT频谱及其IFFT变换。 程序如下:

第21页(共38页)

%产生两个正弦加白噪声 N=256; f1=.1; f2=.2; fs=1; a1=5; a2=3; w=2*pi/fs;

x=a1*sin(w*f1*(0:N-1))+a2*sin(w*f2*(0:N-1))+randn(1,N); axes(handles.axes1) plot(x(1:N/4)); %应用FFT求频谱 f=-0.5:1/N:0.5-1/N; X=fft(x);

axes(handles.axes4) plot(f,fftshift(abs(X))) %应用IFFT求原信号 y=ifft(X);

axes(handles.axes5) plot(real(x(1:N/4))) 运行结果:

第22页(共38页)

第四章 基于MALTAB的功率谱估计

功率谱估计涉及到信号与系统、随机信号分析、概率统计、随机过程及矩阵代书等一系列基础科学,应用广泛。

功率谱估计方法可分为经典谱估计法与现代谱估计法。经典谱估计法又可分为直接法与间接法。现代谱估计的提出主要是针对经典谱估计的分辨率低和方差性能不好等问题提出的。现代谱估计方法大致可分为参数模型谱估计和非参数模型谱估计。下面将举例对其中一些方法进行介绍。

4.1 直接法

又称周期图法,是把随机序列x(n)的N个观测数据视为一能量有限的序列,直接计算x(n)的离散傅里叶变换,得X(k),然后再取其幅值的平方除以N,作为序列x(n)真实功率谱的估计,即: ?(k)?1|X(k)|2PPER N在MATLAB中,函数periodogram也可实现周期图法功率谱估计。其调用格式为:

[Pxx,F]=PERIDODGRAM(x,WINDOW,NFFT,Fs) x——进行功率谱估计的输入有限长序列

第23页(共38页)

WINDOW——用于指定采用的窗函数 NFFT——设定FFT算法的长度 Fs——采样频率,默认值为1 Pxx——输出的功率谱估计值 F——得到的频率点

下面举例对这两种不同算法进行比较:

计算噪声序列 sin(2*pi*100*n)+4*sin(2*pi*500*n)+randn(size(n)) 的功率谱。

?T直接法 Fs=2000; NFFT=1024; n=0:1/Fs:1;

x=sin(2*pi*100*n)+4*sin(2*pi*500*n)+randn(size(n)); % 噪声序列 X=fft(x,NFFT); % 计算FFT pxx=abs(X).^2/length(n); % 求解PSD t=0:round(NFFT/2-1); k=t*Fs/NFFT;

P=10*log(pxx(t+1)); % axes(handles.axes1) plot(k,P);

%periodogram函数法 Fs=2000; NFFT=1024; n=0:1/Fs:1;

x=sin(2*pi*100*n)+4*sin(2*pi*500*n)+randn(size(n)); % 噪声序列 window=boxcar(length(x)); periodogram(x,window,NFFT,Fs); 运行结果比较如下:

第24页(共38页)

4.2间接法

?(m),?(m)求傅里叶变换,间接法先由序列x(n)估计出自相关函数R然后对Rxx便得到x(n)的功率谱估计,即:

?(k)?PBT??RN?mk(m)W xNm??N利用间接法计算噪声序列 sin(2*pi*100*n)+4*sin(2*pi*500*n)+randn(size(n))的功率谱。

程序如下: Fs=2000; NFFT=1024; n=0:1/Fs:1;

第25页(共38页)

x=sin(2*pi*100*n)+4*sin(2*pi*500*n)+randn(size(n)); % 噪声序列 Cx=xcorr(x,'unbiased'); % 计算序列的自相关函数 Cxk=fft(Cx,NFFT); % 计算FFT pxx=abs(Cxk); % 求解PSD t=0:round(NFFT/2-1); k=t*Fs/NFFT;

P=10*log(pxx(t+1)); % 纵坐标的单位为dB axes(handles.axes3) plot(k,P); 运行结果:

4.3 改进直接法—Bartlett法

Bartlett平均周期图的方法是将N点的有限长序列x(n)分段求周期图再平均。 在MATLAB中,可以利用函数psd来实现对Bartlett平均周期图方法的功率谱估计。其调用格式为:

[Pxx,Pxxc,F]=PSD(x,NFFT,Fs,WINDOW,NOVERLAP,P)

利用Bartlett计算噪声序列 sin(2*pi*100*n)+4*sin(2*pi*500*n)+randn(size(n))的功率谱。 程序如下: Fs=2000; NFFT=1024; n=0:1/Fs:1;

x=sin(2*pi*100*n)+4*sin(2*pi*500*n)+randn(size(n)); % 噪声序列

第26页(共38页)

window=boxcar(1024); noverlap=0; p=0.9;

[Pxx,Pxxc]=psd(x,NFFT,Fs,window,noverlap,p); index=0:round(NFFT/2-1); k=index*Fs/NFFT;

plot_Pxx=10*log10(Pxx(index+1)); plot_Pxxc=10*log10(Pxxc(index+1)); axes(handles.axes4) plot(k,plot_Pxx) 运行结果:

第五章 图形用户界面(GUI)的实现

5. 1 GUI界面设计概述

GUI设计面板是GUI设计工具应用的平面,面板上部提供了菜单和常用工具按钮,左边提供了多种如命令按钮、单选按钮、可编辑文本框、静态文本框、弹出式菜单等。进行设计时, 首先单击面板左边所需的控件, 然后在右边的图形界面编辑区中再次单击某一恰当位置, 这时将在该位上为图形界面添加相应的

第27页(共38页)

控件。一个图形界面的完成, 除了设计其外观外, 还有相当的一部分是通过属性的设来完成的。因此在设置这些属性时, 要注意下面几个常用又很重要的属性设置:

1、控件风格和外观

(1)BackgroundColor:设置控件背景颜色,使用[R G B]或颜色定义。 (2)CData:在控件上显示的真彩色图像,使用矩阵表示。 (3)ForegroundColor:文本颜色。

(4)String属性:控件上的文本,以及列表框和弹出菜单的选项。 (5)Visible:控件是否可见。 2、对象的常规信息

(1)Enable属性: 表示此控件的使能状态,设置为on”,表示可选,为“off”时则表示不可选。

(2)Style:控件对象类型。 (3)Tag:控件表示(用户定义)。

(4)TooltipString属性:提示信息显示。当鼠标指针位于此控件上时,显示提示信息。

(5)UserData:用户指定数据。 (6)Position:控件对象的尺寸和位置。 (7)Units:设置控件的位置及大小的单位

(8)有关字体的属性,如 FontAngle, FontName等。

3、控件回调函数的执行

(1)BusyAction:处理回调函数的中断。有两种选项:即Cancel:取消中断事件,queue:排队(默认设置)。

(2)ButtonDownFcn属性:按钮按下时的处理函数。

(3)CallBack属性:是连接程序界面整个程序系统的实质性功能的纽带。该属性值应该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行求值。

(4)CreateFcn:在对象产生过程中执行的回调函数。 (5)DeleteFcn:删除对象过程中执行的回调函数。

第28页(共38页)

(6)Interruptible属性:指定当前的回调函数在执行时是否允许中断,去执行其他的函数。

4、控件当前状态信息

(1)ListboxTop:在列表框中显示的最顶层的字符串的索引。 (2)Max:最大值。 (3)Min:最小值。 (4)Value:控件的当前值。

应用MATLAB制作这样一个过程是非常方便的, 我们可以通过GUI操作来看到。该环境下要设计一个友好的仿真界面,一般应完成以下两个步骤:

(1)GUI界面设计。主要是通过不同的文本框、按钮等许多工具的使用,设计出一个图形用户界面。要清楚这个图形界面的功能是什么,即在图形界面上的操作会引发什么样的结果。

(2)回调函数的设计。用户应根据设计好的图形界面的功能,针对各个不同的图形对象来编写出能够实现该功能的函数代码,确保这个图形界面能够完成所预定的功能。

5.2 GUI的具体实现过程

(1)信号产生

信号产生的总界面分为离散信号产生、连续信号产生和噪声及波形信号产生,利用三个按钮分别调用已经编好的对应界面,总界面下图所示:

① 离散信号产生

离散信号产生分为单位冲激序列、单位阶跃序列、斜坡序列、正弦序列和实指数

第29页(共38页)

序列五种。利用五个单选按钮放在一个button group 里面,实现选中单选按钮,在坐标轴画出相应的图形。具体实现过程为右键单击单选按钮,点callback,把要产生信号的程序放入对应位置。例如选中单位阶跃序列,界面如下图所示:

选中正弦序列,界面如下图所示:

第30页(共38页)

②连续信号产生

连续信号产生分为单位冲激函数、单位阶跃函数、实指数函数、正弦函数和指数调制正弦函数五种。利用五个单选按钮放在一个button group 里面,实现选中单选按钮,在坐标轴画出相应的图形。具体实现过程为右键单击单选按钮,点callback,把要产生信号的程序放入对应位置。例如选中实指数函数,界面如下图所示:

选中指数调制正弦函数函数,界面如下图所示:

第31页(共38页)

③噪声及波形信号产生

噪声及波形信号产生分为方波、锯齿波、三角波、sinc函数、diric函数和线性调频信号六种。利用六个单选按钮放在一个button group 里面,实现选中单选按钮,在坐标轴画出相应的图形。具体实现过程为右键单击单选按钮,点callback,把要产生信号的程序放入对应位置。例如选中sinc函数,界面如下图所示:

选中线性调频信号,界面如下图所示:

(2)信号变换

信号变换的总界面分为Z变换、离散傅里叶变换DFT和快速傅里叶变换FFT,

第32页(共38页)

利用三个按钮分别调用已经编好的对应界面,总界面下图所示:

① Z变换

Z变换的GUI界面实现主要过程为右键单击按钮,点callback,把Z变换的程序放入对应位置。实现单击运行显示,在坐标轴画出Z变换的系统输出响应曲线;单击退出,界面关闭。 界面如下图所示:

② 离散傅里叶变换DFT

离散傅里叶变换DFT的GUI界面实现主要过程为右键单击单选按钮,点

第33页(共38页)

callback,把有限序列产生的程序和DFT的程序分别放入对应位置。实现单击单选按钮,在坐标轴画出有限序列产生和DFT的曲线;单击退出,界面关闭。当单选按钮不选中时,清楚对应坐标轴图形。此步功能程序实现如下: radiobutton3_value=get(handles.radiobutton3,'Value'); if (radiobutton3_value==1) ……… %画 对应曲线 elseif radiobutton3_value==0 axes(handles.axes6); cla; end; 界面运行如下:

③ 快速傅里叶变换FFT

快速傅里叶变换FFT的GUI界面实现主要过程为右键单击单选按钮,点callback,

第34页(共38页)

把原始信号、FFT频谱和IFFT频谱的程序分别放入对应位置。实现单击单选按钮,在坐标轴画出原始信号、FFT频谱和IFFT频谱;单击退出,界面关闭。当单选按钮不选中时,清楚对应坐标轴图形。界面运行如下:

(3)功率谱估计

功率谱估计的总界面分为直接法、间接法和改进直接法三部分,利用三个按钮分别调用已经编好的对应界面,总界面下图所示:

第35页(共38页)

为了便于对这三种方法进行比较,特意把三种方法的结果放在一个界面上。利用axes(handles.axes1)语句,让结果在特定的坐标轴上显示。界面运行如下:

5.3 GUI总界面

汇总以上各个组成部分,基于Matlab的信号处理仿真分析的GUI总界面如下图所示:

第36页(共38页)

第六章 总结

MATLAB是信号处理技术实现的重要手段。本文利用MATLAB实现了信号产生、信号变换以及功率谱估计,说明了MATLAB语言在信号处理方面的应用,从中可见,MATLAB提供的大量而丰富的内部函数,高效简洁的编程语言,能满足信号处理的各种需要。同时,图形用户界面(GUI)应用在信号处理中,可以更快捷、直观的呈现出信号分析的过程和结果,具有事半功倍之效果。

将MATLAB软件引入到信号处理中,熟悉并掌握这种语言,将其用于信号处理,使分析过程更加方便、灵活,更加直观化、形象化,同时可以大大提高工作效率。随着信号处理技术和MATLAB的迅速发展,新的MATLAB信号处理工具箱的内容也随着丰富,MATLAB在信号处理中必将会有更加广泛的应用。

第七章 致 谢

在这一学期的毕业设计中,从确定毕业设计题目,查阅资料到论文的写作、修改和最后定稿得到了我的导师蔡忠见老师的悉心指导。特别是他多次询问设计进程,并为我指点迷津,帮助我开拓思路,精心点拨,热忱鼓励。他严谨的治学态度、勤勉的工作精神、谦虚和蔼的待人深深地感染和激励着我。在此,谨向蔡忠见老师致以诚挚的谢意和崇高的敬意。

此外,也要感谢在论文写作过程中,帮助过我并且一起共同奋斗的大学同学们,能够顺利完成论文,是因为一路上有你、有你们,才使我克服一个又一个难题和障碍,圆满完成了课题工作。在次衷心地感谢所有在我论文写作过程中给予过我帮助的人们,谢谢!

最后,向大学四年曾经教导过我的师长和前辈,帮助过我的同学,永远支持我的亲人,表达我内心最深的谢意!诚挚感谢所有在我成长道路上关心、支持和帮助过我的人们!

第37页(共38页)

参考文献

[1] 范影乐.MATLAB仿真应用详解[M].北京:人民邮电出版社,2001. [2] 刘卫国.MATLAB程序设计与应用[M].北京:高等教育出版社,2002. [3] 陈怀琛,吴大正,高西全.MATLAB及在电子信息课程中的应用.北京:电子工

业出版社,2006.

[4] 徐明远,邵玉斌.MATLAB仿真在通信与电子工程中的应用.西安电子科技大学

出版社,2004.

[5] 邹鯤,袁俊泉,龚享铱.Matlab 6.X信号处理.清华大学出版社,2002. [6] 楼顺天. 基于MATLAB 的系统分析与设计: 信号处理[M]. 西安:西安电子

科技大学出版社, 2001.

[7] 康凤举.现代仿真技术与应用[M].北京:国防工业出版社,2001.

[8] 王默玉, 宗伟, 刘春磊, 等. 基于MATLAB 的图形用户界面的构造方式与

应用[J]. 现代电力, 2002.

[9] 李强,明艳,陈前斌,等.基于Matlab 的数字信号处理实验仿真系统的实现

[J]. 实验技术与管理, 2006.

[10] 沈捷, 王莉. 基于MATLAB 的图形交互式数字信号处理教学实验系统[J].

电脑开发与应用, 2007.

第38页(共38页)

本文来源:https://www.bwwdw.com/article/dymp.html

Top