《matlab在信号与图像处理中的应用.docx》由会员分享,可在线阅读,更多相关《matlab在信号与图像处理中的应用.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章MATLAB 信号处理根底学问在前面的章节中,我们对MATLAB R2023a 的根本学问作了具体的介绍,目的是让读者对 MATLAB 的应用环境以及根本功能有个初步的了解。随着MATLAB版本不断升级,其功能日益强大,应用范围更是日益广泛,掩盖了工业、电子、医疗、建筑等众多领域。特别是MATLAB主要用于矩阵运算,在数据分析、信号处理、自动把握等方面具有格外强大的功能, 已成为科研人员和工程技术人员必不行少的工具之一。从本章开头,我们将介绍 MATLAB 在特定领域内的应用。数字信号处理是当前的热门学科之一,相应的MATLAB R2023a 所供给的信号处理工具箱则对该方面的争论供给了
2、格外全面的支持。本章将基于信号处理工具箱,介绍 MATLAB 信号处理的根底学问,包括信号处理工具箱的简介、信号表示方法、数据读入方式、一些典型的离散序列和常用波形如何产生等内容。学习目标r 生疏信号处理工具箱的根本功能和特性r 把握信号的表示方法和数据的读入方式r 把握几种典型的离散序列r 把握常用波形发生器练习案例r 分别生成单位抽样序列d (0)和d (5)。r 分别生成单位阶跃序列u(0)和u(5)。r 生成正弦型序列sin(pn / 8)。r 分别生成实指数序列(3 / 4)n 和(4 / 3)n 。r 生成复指数序列e(0.05+ jp/ 6)n 。r 产生均值为 0.5,方差为
3、0.1 的白噪声序列。r 将实指数序列(3 / 4)n 扩展为具有 3 个周期的序列。r 生成一个方波信号,要求正信号所占百分比为60%。r 生成 0.5s 的锯齿波和三角波信号,频率都为10Hz,采样频率为 10kHz。r 输入变量x,生成sinc 函数波形。1r 生成一个线性扫频信号。r 产生一个二次型扫频信号,要求二次型扫频信号频谱为凹状。r 绘出狄立克莱Dirichlet函数图形。r 绘出中心频率为 50kHz 的高斯正弦脉冲,要求相对带宽 60%,包络下降到峰值的 40dB 之下。r 分别产生一个对称的和一个非对称的三角脉冲。r 产生一个矩形脉冲,要求脉冲宽度为2s。r 产生一个锯齿
4、形脉冲序列,要求重复频率为 3Hz,锯齿宽度 0.1s,信号总长度1s,采样频率 1kHz。r 产生一个幅度递减的高斯脉冲序列,每个脉冲的中心频率10kHz,带宽 40%,脉冲重复频率为 1kHz,采样率 50kHz,脉冲序列长度为 10ms,脉冲幅度每次递减 0.8。r 假设一个输入信号为三角波,绘出该信号经压控振荡器的输出波形,采样频率 10kHz。5.1 信号处理工具箱简介MATLAB 工具箱中包含了很多用于解决具体问题的应用程序专用M 文件,而信号处理工具箱则包含了很多执行信号处理算法的函数,如滤波器设计与实现、频谱分析、加窗、转换等等。本节将简要介绍一下信号处理工具箱的根本状况。5.
5、1.1 什么是信号处理工具箱信号处理工具箱Signal Processing Toolbox是基于 MATLAB数值计算环境的一系列工具函数的集合。工具箱支持各种形式的信号处理操作,从波形产生到滤波器设计和实现、参数建模和谱分析等等。工具箱供给了两大类工具:命令行函数和图形用户界面GUI,其中命令行函数主要应用于以下几个方面:r 离散时间滤波器设计、分析和实现r 模拟滤波器设计、分析和实现r 线性系统变换r 窗函数r 谱分析和倒谱分析cepstral analysisr 变换transformsr 统计信号处理r 参数建模r 线性推想r 多速率信号处理r 波形产生而交互式的图形用户界面主要应用
6、于:r 滤波器设计和分析5.1信号处理工具箱简介r 窗函数设计和分析r 信号作图和分析r 谱分析r 滤波处理5.1.2 信号的表示方法在 MATLAB 环境中,大局部数据都是以数值阵列的形式表示,马上一组实数或虚数按确定挨次排列在两维或更多维空间内。因而采集到的根本信号包括一维信号或序列、多通道信号、二维信号等都要表示成阵列的形式。对于一维采样信号或序列,在 MATLAB 中用向量表示。所谓向量是 1n 或 n1 的阵列,这里 n 是序列的采样值个数。引入一个序列的方法之一是在命令提示符后输入一列元素。例如:x = 5 3 8 -6 0 7这条语句产生了一个简洁的行向量,该向量由6 个实数组成
7、的序列构成。转置变换就会将该序列变成一个列向量:x = x”结果为:x =538-607对于单通道信号而言,最好承受列向量进展表示,这是由于列向量较易扩展到多通道。对于多通道数据而言,一个矩阵中的每一列都对应于一个通道,而矩阵中的每一行对应于一组采样点。一个包含x、2x 和 x/2 的三通道信号可以表示为y = x 2*x x/2将上面的x 值代入,得到结果:y =5.000010.00002.50003.00006.00001.50008.000016.00004.0000-6.0000-12.0000-3.00000.00000.00000.00007.000014.00003.50003
8、5.2典型离散序列5.1.3 数据的读入方式l 在 MATLAB 工作环境内读入在后续章节当中的一些具体范例,数据的猎取一般通过以下两种方式:r 直接输入,即在键盘上手动输入数据;r 利用 MATLAB或工具箱函数,例如sin、cos、sawtooth、square 等等;l 在 MATLAB 工作环境外读入在某些应用场合,可能需要从 MATLAB 工作环境之外输入。依据数据的格式,可以承受以下几种方法读入:r 利用 MATLAB的load命令,从ASCII 文件或 MAT文件中加载数据,该函数的使用方法已在其次章中给出介绍,这里不再赘述;r 利用一个低层文件I/O 函数将数据读入MATLAB
9、,例如fopen,fread,fscanf等;r 开发一个MEX 文件来读取数据;l 将数据转换为 MAT 文件也可利用其他资源读入数据,例如高级程序语言Fortran 或者C 等可将数据写成 MAT文件形式,再用MATLAB“load”命令读取。提示:信号处理工具箱仅支持双精度输入。假设输入单精度浮点型或整数型数据,将得不到正确的结果。将滤波器设计工具箱与定点工具箱联合使用,可使单精度浮点和定点类型数据能够用于滤波处理及滤波器设计。5.1.4 工具箱的核心功能信号处理工具箱函数大局部是一些以M 文件表示的算法,能够实现多种信号处理功能。这些函数是在MATLAB计算与制图环境之外的特地用于信号
10、处理领域的功能扩展。l 信号与系统工具箱函数所处理的根本实体是信号和系统。这些函数特地用于处理数字或离散信号,而非模拟或连续信号。工具箱支持的主要滤波器类型是单输入单输出的线性非时变滤波器。可以利用一个或几个模型例如传递函数、状态空间、零极点增益等来表示线性时不变系统,固然,这些不同表达形式之间可以进展相互转换。l 滤波器设计分析与实现信号处理工具箱供给滤波器设计功能,即依据特定需求,使用者可以自行设计滤波器。 工具箱中包含的滤波器设计功能主要包括FIR 和 IIR 滤波器设计分析和实现、滤波阶数估量、模拟滤波器原型设计与转换等。l 线性系统转换工具箱拥有大量的转换函数,包括二次剖面、状态空间
11、、零极点、网格或梯形函数、以及传递函数之间的转换等。l 窗函数工具箱供给了很多常用的窗函数,同时也供给了图形用户界面GUI以便于查看和比较这些窗函数,以及利用这些窗函数设计滤波器。l 谱分析承受参量和非参量方法,工具箱函数可用于估量功率谱密度、均方谱和伪谱。工具箱中包含的一些谱分析方法有Burg 法、协方差法、特征向量法、周期图法、Welch 和 Yule-Walker 法等等。其他的函数可用于计算功率谱密度平均能量和单边谱,以及将DC 重量移动到谱中心位置等功能。l 变换函数工具箱包含各种类型的变换和逆变换函数,包括傅立叶变换、Z 变换、离散余弦变换、希尔伯特变换等二次剖面、状态空间、零极点
12、、网格或梯形函数、以及传递函数之间的转换等。l 统计信号处理工具箱包含计算相关、相互关、协方差和自相关等统计信息的函数。l 参数建模工具箱供给了一些用于自回归参数建模的方法,有: Burg 法、协方差法、Yule-Walker法等,同时也供给了一些函数用于拟合模拟滤波器或离散时间滤波器的频率响应。l 线性推想工具箱包含了一些函数用于计算线性推想系数,以及自相关函数与推想多项式、反射系数和线谱频率之间的转换。l 多速率信号处理抽取、增降采样、重采样和三次样条插值等多速率信号处理功能,在工具箱中也有相应函数来实现。l 波形产生多种周期和非周期波形也可用工具箱中的相应函数来产生,包括线性调频脉冲、高
13、斯射频脉冲、高斯单脉冲、脉冲串、矩形波、三角波、锯齿波、方波等等。l 其他功能工具箱函数除了能够实现以上各种功能之外,还包括倒谱分析、调制、解调,以及各种绘图方法。5.2 典型离散序列在实际中的信号往往是连续的,经过采样和量化之后就变成离散的序列,才可送入计算机或数字滤波器进展处理,因此,我们这里关注的都是离散序列,或者说 MATLAB 处理的都是离散序列。首先给出一些常用的、比较典型的离散序列信号形式。5.2.1 单位抽样序列单位抽样序列的定义为5d (n)= 10n = 0n 0单位抽样序列d (n)在离散信号处理中的作用类似于连续信号处理中的冲激函数d (t ),但不同的是d (t )是
14、一个极限概念的信号, 在t = 0 时脉宽趋于零,幅值趋于无穷大,因而并非一个现实的信号,而d (n)在 n = 0 时幅值为 1,形式简洁便于计算。假设将d (n)在时间轴上延迟了k 个采样周期,则相应表达式为d (n - k )= 10n = k n k在 MATLAB 中可借助函数 zeros(1,N)来实现单位抽样序列。函数 zeros(1,N)产生一个长度为 N 的向量,向量中的每个元素都为零。下面通过具体例子看一下单位抽样序列的MATLAB生成方法。例 5-1 分别生成单位抽样序列d (0)和d (5)。% 实现单位抽样序列d (0)程序k=-10:10;delta=zeros(1
15、,10),1,zeros(1,10);stem(k,delta)% 实现单位抽样序列k=-10:10;d (5)程序delta=zeros(1,15),1,zeros(1,5); stem(k,delta)程序运行结果如图 5-1 所示。(a) d (0)(b) d (4)5.2.2 单位阶跃序列单位阶跃序列的定义为图 5-1单位抽样序列波形0u(n)= 1n 0 n 0单位抽样序列与单位阶跃序列关系亲热,可相互表示, 表达式为d (n)= u(n)- u(n -1)u(n)= k =0d (n - k )在 MATLAB 中可利用函数ones(1, N)来实现单位阶跃序列。函数 ones(1
16、,N)产生长度为N 的向量,向量中的每个元素都为单位1。MATLAB 生成单位阶跃序列的方法通过下面的例子给出。例 5-2 分别生成单位阶跃序列u(0)和u(5)% 实现单位阶跃序列 u(0)k=-10:10;delta=zeros(1,10),ones(1,11);stem(k,delta)% 实现单位阶跃序列k=-10:10;u(5)delta=zeros(1,15),ones(1,6); stem(k,delta)程序运行结果如图 5-2 所示。(a) u(0)(b) u(4)提示:MATLAB 产生的都是有限长序列,因此这里的单位阶跃序列为有限区间上的 u(n)。图 5-2单位阶跃序列
17、波形5.2.3 正弦型序列正弦序列的定义如下x(n)= Asin(nw0+j )0这里 A 为幅度, w0为数字角频率, j0为初始相位。正弦序列可对连续正弦波信号采样后得到。在MATLAB中,利用函数sin 或 cos 产生正余弦序列,这与连续正弦信号类似,只不过绘图承受 stem 函数,而非 plot 函数。下面是产生正弦序列sin pn 的 MATLAB 程序范 8 例。8sin pn 例 5-3 生成正弦型序列 。% 实现正弦型序列程序n=0:50;x=sin(pi/8*n); stem(n,x)程序运行结果如图 5-3 所示。图 5-3正弦序列波形5.2.4 实指数序列实指数序列的定
18、义为x(n)= an这里a 为一个实数,a 的值直接影响序列的波形。当a 1 时,序列发散。在 MATLAB 中通过数组的幂运算来产生实指数序列。下面是产生该序列的一个具体实例。 3 n 4 n 4 3 例 5-4 分别生成实指数序列和。% 实现实指数序列程序n=0:15;x1=(3/4).n;x2=(4/3).n; figure(1); stem(n,x1) figure(2); stem(n,x2)程序运行结果如图 5-4 所示。 3 n 4 n(a) (b) 4 3 5.2.5 复指数序列复指数序列的定义式为0x(n)= e(s + jw )n也可以将实部和虚局部开来表示,图 5-4 实
19、指数序列波形x(n)= esn (cosw0n + j sinw0n)= esn cosw0n + jesn sinw n0下面通过一个例子说明利用MATLAB 如何产生一个复指数序列。例 5-5 产生复指数序列e(0.05+ jp / 6)n% 实现复指数序列程序n=0:30;x=exp(.05+i*pi/6).n; xr=real(x); xi=imag(x); xm=abs(x); xa=angle(x);figure; subplot(221);stem(n,xr);title(”实部”);subplot(222);stem(n,xi);title(”虚部”);subplot(223)
20、;stem(n,xm);title(”模”);subplot(224);stem(n,xa);title(”相角”);程序运行结果如图 5-5 所示。从图中可以看出,复指数序列e(0.05+ jp / 6)n 的实部和虚部都是幅度按指数增长的正弦序列。5.2.6 随机序列图 5-5 复指数序列波形随机序列在 MATLAB 仿真分析中应用较多,常常用来模拟背景噪声。有两个函数可直接产生两类随机序列:r rand(1,N)产生0,1上均匀分布的随机序列;r randn(1,N)产生均值为 0,方差为 1 的高斯随机序列,即白噪声序列。固然,其他分布的随机序列也可通过以上两个函数的相应变换产生。提示
21、:均值和方差为特定值的白噪声序列也可通过函数 randn(1,N)来产生。例 5-6 产生均值为 0.5,方差为 0.1 的白噪声序列。%生成白噪声序列程序N=10;mean_v=0.5; var_v=0.1;x=mean_v+sqrt(var_v)*randn(1,N); disp(x)程序运行结果为:x =0.44100.72950.31401.19040.45690.53600.83730.51870.46980.23685.2.7 周期序列所谓周期序列,是满足下式的序列5.3波形发生器x(n)= x(n + N )- n 式中 N 为周期序列的周期,定义为满足上式的最小正整数。在MAT
22、LAB 中有很多种方法可以把一个长度为 N 的序列 x(n)扩展为有 K 个周期的序列 x (n) ,这里仅给其中的一种实现方p法,主要语句为:np=0:K:N-1;xp=x(mod(np,N)+1);其次条语句中的mod(np,N)为求模运算,规章是将 np 除以N,所得的余数为求模运算的结果。下面通过一个具体实例给出一个周期序列的产生过程。例 5-7 将实指数序列 3 n 扩展为具有 3 个周期的序列。 4 % 生成周期序列的程序n=0:15;x=(3/4).n;N=16;k=3;np=0:k*N-1; xp=x(mod(np,N)+1); stem(np,xp)程序运行结果如图 5-6
23、所示,生成的周期序列每个周期内都为一个实指数序列。图 5-6 实指数序列扩展为周期序列的波形以上是一些在 MATLAB 中较为常用的离散序列,其他形式的序列在这里就不再一一列举,在后续章节中如有用到,再给出相应介绍。5.3 波形发生器在 MATLAB 信号处理工具箱中,有多个函数用来产生各种形式的信号波形,例如方波、三角波、线性调频信号、脉冲信号等等。这里将工具箱供给的各个信号发生函数汇总于一表 内,见表 5-1。115.3波形发生器函数名square sawtooth sinc pulstran rectpulsvco产生信号形式方波信号锯齿波和三角波信号sinc 函数波形脉冲串矩形脉冲信号
24、压控振荡函数波形函数名chirp diric gauspulsgmonopulstripuls产生信号形式扫频信号 Dirichlet 函数波形高斯调制正弦脉冲高斯单脉冲三角脉冲信号表 5-1 信号处理工具箱中的信号发生函数接下来将对这些信号发生函数逐一进展介绍,通过一些具体的实例,说明各个函数的用法。5.3.1 方波函数square函数的调用格式为l x = square(t);l x = square(t,duty);第一种调用格式产生周期为 2,幅值为1 的方波;其次种格式产生指定形式的方波,参数duty 为 0 到 100 之间的任意一个数,它限定了在一个周期内信号为正所占的百分比。例
25、 5-8 生成一个方波信号,要求正信号所占百分比为60%。%方波信号生成程序t=0:0.01:8*pi;x=square(t,60); plot(t,x,”LineWidth”,2);axis(0 8*pi -1 1.5); set(gca,”FontSize”,14)生成的方波信号波形如图 5-7 所示。图 5-7 方波信号波形5.3.2 三角波函数Sawtooth函数的调用格式为:l x=sawtooth(t);l x=sawtooth(t,width);第一种格式产生周期为 2相对于时间向量 t 而言、峰值为1 的锯齿波。所谓锯齿波, 是指在 2 的整数倍位置,函数幅值为-1,而后以 1
26、/ 的斜率线性递增。其次种格式可以产生三角波,参数width 为 0 到 1 之间的任意一个数,打算了在 0 到 2 之间波形峰值消灭的位置。函数在(0, 2*width)区间内从-1 线性递增到 1,在(2*width, 2) 区间内从 1 线性递减到-1。因此,当 width=0.5 时,就可以产生一个标准的三角波,而sawtooth(t,1)则等价于第一种格式sawtooth(t)。下面通过两个具体实例说明锯齿波和三角波的 实现过程。提示:锯齿波函数 sawtooth(t)和三角波函数 sawtooth(t,width)中的参量 t 并格外规的时间向量,应将它等价于2ft ,这里 t 为
27、常规的时间向量。00例 5-9 生成 0.5s 的锯齿波和三角波信号,频率都为10Hz,采样频率为 10kHz。%锯齿波生成程序fs=10000;t=0:1/fs:.5; f=10;x=sawtooth(2*pi*f*t); figure(1);plot(t,x)%三角波生成程序y=sawtooth(2*pi*f*t,.5); figure(2);plot(t,y)程序运行结果如图 5-8 所示。图 5-8 锯齿波信号左和三角波信号右135.3.3 sinc 函数函数的调用格式为l y=sinc(x);即对输入变量x 计算sinc 函数的值,并输出与x 一样尺寸的向量y。这里 sinc 函数定
28、义为:sin c(t )=1sin(pt )t = 0ptt 0这是宽度为 2、幅值为 1 的矩形脉冲的连续傅立叶反变换:sin c(t )= 1 p e jwt dw2p-p例 5-10 输入变量x,生成sinc 函数波形%产生 sinc 函数波形x=-10:.01:10;y=sinc(x); plot(x,y) grid on生成的波形如图 5-9 所示。5.3.4 扫频信号函数chirp图 5-9 sinc 函数波形chirp 函数用于产生扫频余弦信号,也称作调频余弦信号,该信号在雷达和声纳信号处理中有着广泛的应用,其调用格式为:l y = chirp(t,f0,t1,f1)在时间范围t
29、 内产生扫频余弦信号,在0 时刻信号的瞬时频率为f0,在t1 时刻信号的瞬时频率为 f1,这里频率的单位都是Hz。假设没有特别指定,参数取默认值:f0=0除了对数扫频取e-6,其他状况都取 0 值, t1=1, f1=100。l y = chirp(t,f0,t1,f1,method)method 用来指定扫频方法,包括线性、二次型、对数三种,其中函数默认方法为线性扫频。利用三种方法得到的瞬时频率表达式分别如下:r 线性形式fi(t)=f0+Bt,B=(f1-f0)/t1 ;r 二次型形式fi(t)=f0+Bt2,B=(f1-f0)/t12;r 对数形式fi(t) = f0*Bt,B = (f
30、1/f0)1/ t1l y = chirp(t,f0,t1,f1,method, phi)参数 phi 用来指定初始相位,默认值为 0。l y = chirp(t,f0,t1,f1,quadratic, phi, shape)参数 shape 用来指定二次型扫频信号频谱的外形,有concave和convex两种形式, 分别表示凹状和凸状。例 5-11 生成一个线性扫频信号。%产生线性扫频信号fs=1000;t=0:1/fs:2; f0=0;t1=2; f1=400;y=chirp(t,f0,t1,f1); figure(1); plot(t,y,”LineWidth”,2);axis(0 0.
31、5 -1 1);set(gca,”FontSize”,14) figure(2);spectrogram(y,256,250,256,fs,”yaxis”)程序中 spectrogram是承受短时傅立叶变换方法作出线性扫频信号的时频分布图。所谓时频分布是分析信号在每个时间点上的频率值,即分析信号的频率随时间的变化关系。这里承受该分析方法处理扫频信号,可以更清楚地看出扫频信号频率变化的特点。本例中产生了一个初始频率为 0Hz,在 2s 时间点频率增为 400Hz 的线性扫频信号。程序运行结果如图 5-10 所示。左图为线性扫频信号的时域图,这里只取了前 0.5s 的时段,可看出随着时间的增加,信
32、号的频率渐渐增大。右图为该信号的时频分布图,可以清楚地看到信号 频率由最初的0Hz 渐渐增加到400Hz 的变化趋势,该图很好地反映了扫频信号的时频域特性。图 5-10 线性扫频信号波形左及其时频分布图右5.3波形发生器例 5-12 产生一个二次型扫频信号,要求二次型扫频信号频谱为凹状。%产生二次型扫频信号t=-1:1/fs:1; f0=0;t1=1; f1=400;y = chirp(t,f0,t1,f1,”q”); figure(1);plot(t,y); axis(0 .5 -1 1);figure(2); spectrogram(y,128,120,128,fs,”yaxis”)本例中
33、 f0f1,从而产生了一个凹状的二次型扫频信号,在 0 时刻的频率为 0,在 1s 时的频率为 400Hz。程序运行结果如图 5-11 所示,左侧的时域图只截取了 0.5s 时间段内的波形, 从右图可以清楚地看到二次型扫频信号的频率分布。图 5-11 二次型扫频信号波形左及其时频分布图右5.3.5 狄立克莱Dirichlet函数diricdiric 用于计算狄立克莱Dirichlet函数或者周期sinc 函数,其调用格式为y = diric(x,n);即对输入变量 x 计算 Dirichlet 函数的值,并输出与x 一样尺寸的向量y,这里 n 必需是一个正整数,该参量将 0 到 2 区间等分成
34、 N 个小区间。Dirichlet 函数,或者说周期 sinc 函数表达式为:x (n-1)( )nxdiric(x, n)= -12psin/ 2x = 0,2p,4p, n sin(x / 2)其他当 n 为奇数时,该函数的周期为 2,当 n 为偶数时,该函数的周期为 4。并且当 n 为偶数时, 函数最大值为 1,最小值为-1。例 5-13 绘出狄立克莱Dirichlet函数图形。165.3波形发生器%计算狄立克莱Dirichlet函数n1=5;n2=6;x=linspace(0,6*pi,200); y1=diric(x,n1); y2=diric(x,n2); figure(1)plo
35、t(x,y1,”LineWidth”,2); set(gca,”FontSize”,14) figure(2); plot(x,y2,”LineWidth”,2); set(gca,”FontSize”,14)本例中分别计算了 n 为奇数和偶数的两种状况下的狄立克莱Dirichlet函数,其波形分别如图 5-12 所示。(a)n=5(b)n=6提示:函数 diric(x, n)的参量n 必需为一个正整数,否则,MATLAB 命令窗口将会给出错误提示。图 5-12 Dirichlet 函数波形5.3.6 高斯调制正弦脉冲gauspulsgauspuls 函数为高斯调制的正弦脉冲发生器,其调用格式
36、为:l yi = gauspuls(t,fc,bw)返回最大幅度为 1 的高斯射频RF脉冲,中心频率fc,相对带宽bw,并且要求bw 必需大于零。默认值fc=1000Hz,bw=0.5。l yi = gauspuls(t,fc,bw,bwr)这里参量bwr 是相对带宽bw 的参考等级,用来描述小于峰值包络幅度的程度,单位为dB, 并且其值必需小于零,默认值为-6dB。l yi,yq = gauspuls()返回同步和正交两种形式的脉冲。l yi,yq,ye = gauspuls()返回值ye 为 RF 信号包络。17l tc = gauspuls(cutoff,fc,bw,bwr,tpe)返回
37、值 tc 为截止时间,即相对于峰值包络幅度,脉冲拖尾包络低于tpe 参量给定的 dB 值之下,此时对应的时间为截止时间tc。参量tpe 必需小于零,默认值为-60dB。例 5-14 绘出中心频率为 50kHz 的高斯正弦脉冲,要求相对带宽 60%,包络下降到峰值的 40dB 之下。%产生高斯调制正弦脉冲信号fc=50e3;bw=0.6;tc = gauspuls(”cutoff”,fc,bw,-40); t = linspace(-tc,tc,500)yi = gauspuls(t,fc,bw); plot(t,yi,”LineWidth”,2); set(gca,”FontSize”,14)
38、 grid on提示:程序中的参量假设承受默认值,可用空格代替,也可省略表示。本程序先求取了截止时间 tc,然后在-tc,tc时间段内,绘出高斯调制正弦脉冲信号,运行结果如图 5-13 所示。图 5-13 高斯调制正弦脉冲波形5.3.7 三角脉冲信号tripuls函数 tripuls 产生非周期的三角脉冲信号,函数调用格式为:l y = tripuls(t)在时间段t 内产生一个幅值高度为 1 的关于t=0 对称的三角脉冲,默认脉冲宽度为1。l y = tripuls(t,w)参量 w 限定了三角脉冲的宽度。l y = tripuls(t,w,s)参量 s 给定了三角脉冲的倾斜程度,-1s1。
39、当 s = 0 时,即为对称三角脉冲。例 5-15 分别产生一个对称的和一个非对称的三角脉冲。%产生三角脉冲信号t=-5:0.01:5;w=2;s=-.8;y1=tripuls(t,w); y2=tripuls(t,w,s) figure(1) plot(t,y1); figure(2) plot(t,y2);程序运行结果如图 5-14 所示。两个三角脉冲的宽度都为2,但是左图为一个对称形式的三角脉冲,而右图为一个非对称的三角脉冲。图 5-14 两种三角脉冲波形:对称形式左和非对称形式右5.3.8 矩形脉冲信号rectpuls函数 rectpuls 用于产生矩形脉冲信号,其调用格式为:l y
40、= rectpuls(t)在时间段t 内产生一个幅值高度为 1 的关于t=0 对称的矩形脉冲,默认脉冲宽度为1。l y = rectpuls(t,w)参量 w 限定了矩形脉冲的宽度。提示:函数 rectpuls 一般与产生的脉冲串的函数pulstran 结合使用。例 5-16 产生一个矩形脉冲,要求脉冲宽度为2s。%产生矩形脉冲信号t=-5:0.01:5; w=2;y=rectpuls(t,w); figure plot(T,y);axis(-5,5,-0.5,1.5)grid on程序运行结果如图 5-15 所示。5.3.9 脉冲序列pulstrain图 5-15 矩形脉冲信号波形函数 pu
41、lstran 基于某连续函数或原始脉冲信号生成一个脉冲序列,即可实现任意外形时限信号在时间轴上的延拓。其调用格式主要有两种,分别为:l y = pulstran(t,d,func,p1,p2, )实现方法是在时间向量 t 上计算 func(t)的值,利用向量 d 把握 func(t)每次延拓的间隔,最终输出 y 可以表示为y = func(t-d(1)+func(t-d(2)+这里的连续函数可以是上面介绍的几种函数类型:r gauspuls用以产生高斯调制正弦脉冲;r rectpuls用以产生非周期矩形脉冲;r tripuls用以产生非周期三角脉冲;另外 p1、p2 等是附加参量,依据具体的f
42、unc 而定。l y = pulstran(t,d,p,fs)这里参量p 为原始脉冲向量,屡次延时内插处理之和作为函数返回值y,这里 fs 为采样频率。另外,线性插值法是默认的插值方法。例 5-17 产生一个锯齿形脉冲序列,要求重复频率为 3Hz,锯齿宽度 0.1s,信号总长度 1s, 采样频率 1kHz。%产生锯齿形脉冲序列fs = 1e3;t = 0:1/fs:1;%重复频率 3Hz d = 0:1/3:1;%锯齿宽度p1=0.1;%锯齿倾斜度p2=1;y = pulstran(t,d,”tripuls”,p1,p2); figure;plot(t,y)程序运行结果如图 5-16 所示。5
43、.3波形发生器例 5-18 产生一个幅度递减的高斯脉冲序列,每个脉冲的中心频率 10kHz,带宽 40%, 脉冲重复频率为 1kHz,采样率 50kHz,脉冲序列长度为 10ms,脉冲幅度每次递减 0.8。%产生高斯脉冲序列fs = 50e3;t1 = 10e-3t = 0:1/fs:t1;d = 0:1/1E3:t1;0.8.(0:10)”;% 每个脉冲的中心频率 10kHz p1 = 10e3;% 每个脉冲带宽 40%p2 = .4;y = pulstran(t,d,”gauspuls”,p1,p2); plot(t,y)grid on程序运行结果如图 5-17 所示。图 5-16 锯齿形脉冲序列波形图 5-17 高斯脉冲序列波形5.3.10 压控震荡函数vco函数 vco 是一个压控振荡信号发生器,由一个实际输入向量或矩阵打算该振荡信号的频率。函数vco 调用格式主要有两种:l y = vco(x,fc,fs)这里 x 为实际输入的向量或矩阵,从-1 到 1 取值,其采样频率为fs;fc 是载波频率或参考频率。当x=0 时,返回值y 是一个频率为fc 的余弦信号,其幅度为 1,采样频率为fs。另外, x 的特定取值与振荡频率有确定的对应关系:r x = -1,对应 0 频率输出r x = 0,对应载频fc 输出r x = 1,对应 2fc 频率输出l y = vco(x