题目:实时信号处理专业:电子信息工程摘要近年来随着科技的飞速发展,实时信号处理的应用正在不断的走向深入,同时也将实时信号带进了各项的应用中。
本论文通过对实时信号处理的概念以及设计流程、Matlab语言及其所能实现的功能、Matlab在数字信号处理中的应用、Matlab解决实际中的问题、四个方面来反映对实时信号处理的理解以及认识。
通过实时信号处理流程的设计了解Matlab语言的特点、性质及其所能实现的功能,并在利用Matlab解决生活实际问题的编程中真正掌握Matlab在五个方面所能实现的主要功能。
关键字:Matlab、实时信号、处理、计算、功能1 实时信号处理概述、实现方法及设计流程............ 错误!未定义书签。
1.1 实时信号处理概述 (3)1.2 实时信号实现方法及系统设计开发流程 (3)2 Matlab语言及其所能实现的功能................... 错误!未定义书签。
2.1 Matlab语言的基本概念 (5)2.2 5个具有代表性的程序 (6)2.2.1 用matlab产生标准音阶的7个单频正弦音符,并用计算机声卡放出错误!未定义书签。
2.2.2 绘制正多边形................................ 错误!未定义书签。
2.2.3 单边指数信号................................ 错误!未定义书签。
2.2.4 正弦波...................................... 错误!未定义书签。
2.2.5 单位脉冲序列................................ 错误!未定义书签。
3 Matlab在数字信号处理中的应用 (7)3.1 求给定有限长序列的DTFT (7)3.2 求系统的频率响应 (7)4 用Matlab解决实际中的问题....................... 错误!未定义书签。
4.1用matlab实现石头剪子布的游戏................. 错误!未定义书签。
5 结束语 (9)实时信号处理概述、实现方法即实现流程1.1 实时信号处理概述实时信号处理是将信号以数字方式表示并处理的理论和技术。
数字信号处理与模拟信号处理是实时信号处理的子集。
实时信号处理的目的是对真实世界的连续模拟信号进行数字处理和测量或滤波。
因此在进行实时信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。
而实时信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。
实时信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。
实时信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是单一的数字或模拟信号处理技术与设备所无法比拟的。
实时信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。
而使实时信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。
世界上三大DSP芯片生产商:1.德克萨斯仪器公司(TI) 2.模拟器件公司(ADI) 3.摩托罗拉公司(Motorola).这三家公司几乎垄断了通用DSP芯片市场。
实时信号处理的特征和分类信号(signal)是一种物理体现,或是传递信息的函数。
而信息是信号的具体内容。
模拟信号(analog signal):指时间连续、幅度连续的信号。
数字信号(digital signal):时间和幅度上都是离散(量化)的信号。
实时信号可用一序列的数表示,而每个数又可表示为二制码的形式,适合计算机处理。
一维(1-D)信号: 一个自变量的函数。
二维(2-D)信号: 两个自变量的函数。
多维(M-D)信号: 多个自变量的函数。
系统:处理信号的物理设备。
或者说,凡是能将信号加以变换以达到人们要求的各种设备。
模拟系统与数字系统。
信号处理的内容:滤波、变换、检测、谱分析、估计、压缩、识别等一系列的加工处理。
多数科学和工程中遇到的是模拟信号。
以前都是研究模拟信号处理的理论和实现。
模拟信号处理缺点:难以做到高精度,受环境影响较大,可靠性差,且不灵活等。
实时数字系统的优点:体积小、功耗低、精度高、可靠性高、灵活性大、易于大规模集成、可进行二维与多维处理随着信息时代、数字世界的到来,实时信号处理已成为一门极其重要的学科和技术领域。
1.2 实时信号实现方法及系统设计开发流程在设计需求规范,确定设计目标时,其实要解决二个方面的问题:即信号处理方面和非信号处理的问题。
信号处理的问题包括:输入、输出结果特性的分析,DSP算法的确定,以及按要求对确定的性能指标在通用机上用高级语言编程仿真。
非信号处理问题包括:应用环境、设备的可靠性指标,设备的可维护性,功耗、体积重量、成本、性能价格比等项目。
算法研究与仿真这是DSP应用实际系统设计中重要的一步。
系统性能指标能否实现,以何种算法和结构应对需求,都是在这一步考虑的。
这种仿真是在通用机上用高级语言编程实现的,编程时最好能仿DSP处理器形式运行,以达到更好的真实性。
DSP芯片选择中通常有下列几条应注意的有(1)精度(2)字长的选择(3)存储器安排(4)开发工具:在DSP系统设计中,开发工具是必不可少的,一个复杂的DSP系统,必须有功能强大的开发工具支持,开发工具包括软件和硬件两部分。
(5)功耗与电源管理(6)成本和厂家的销售后服务(7)支持多处理器DSP处理器软、硬件开发工具简介随着DSP处理器的功能不断强化和系统开发周期不断缩短,设计和调试DSP系统越来越依赖于DSP开发系统和开发工具,下图为DSP处理器开发流程图。
2.Matlab语言极其所能实现的功能2.1 Matlab语言的基本概念MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++ ,JA V A的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB 爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
应用MATLAB 产品族可以用来进行以下各种工作:● 数值分析● 数值和符号计算● 工程与科学绘图● 控制系统的设计与仿真● 数字图像处理技术● 数字信号处理技术● 通讯系统设计与仿真● 财务与金融工程特点●此高级语言可用于技术计算●此开发环境可对代码、文件和数据进行管理●交互式工具可以按迭代的方式探查、设计及求解问题●数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等●二维和三维图形函数可用于可视化数据●各种工具可用于构建自定义的图形用户界面●各种函数可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM 以及Microsoft Excel)集成[2]●不支持大写输入,内核仅仅支持小写优势(1)友好的工作平台和编程环境MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
(2)简单易用的程序语言Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
(3)强大的科学计算机数据处理能力MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
(4)出色的图形处理功能MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
(5)应用广泛的模块集合工具箱MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。
(6)实用的程序接口和发布平台新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB 程序自动转换为独立于MATLAB运行的C和C++代码。
(7)应用软件开发(包括用户界面)在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。
2.2 5个具有代表性的程序1.)用matlab产生标准音阶的7个单频正弦音符,并用计算机声卡放出m=1:7;f=262*2.^((m-1)/12);fs=8000;t=0:1/fs:.3;y=[];for i=1:length(f);y=[y,sin(2*pi*f(i)*t)];end;sound(y,fs)2.)绘制正多边形n=10;t=0:pi*2/n:2*pi;plot(exp(i*t),'-o');axis square;grid;3.)单边指数信号t=0:0.01:10;A=1;a=-0.4;ft=A*exp(a*t)plot(t,ft);xlabel('t');ylabel('f(t)')4. )正弦波t=0:0.001:10;A=1;w0=2*pi;phi=pi/6;ft=A*sin(w0*t+phi);plot(t,ft);xlabel('t');ylabel('f(t)')5.)单位脉冲序列clear,ns=0;nf=10;np=3;ns3=-2;[x1,n1]=impseq(np,ns,nf)[x2,n2]=stepseq(np,ns,nf)n3 = ns3:nf; x3=exp((-0.2+0.5j)*n3); % 复数指数序列subplot(2,2,1),stem(n1,x1);title('单位脉冲序列')axis([0,10,0,1.1])subplot(2,2,3),stem(n2,x2,'.');title('单位阶跃序列') % 用小圆点画序列axis([0,10,0,1.1])subplot(2,2,2),stem(n3,real(x3),'x');line([-5,10],[0,0]) % 画横坐标title('复指数序列'),ylabel('实部')subplot(2,2,4),stem(n3,imag(x3),'filled'); % 用实心圆点画序列line([-5,10],[0,0]),ylabel('虚部')set(gcf,'color','w')3 Matlab在数字信号处理中的应用3.1 求给定有限长序列的DTFT3.2 求系统的频率响应Matlab在数字信号处理中的应用。