好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验一 信号的产生及时间变量的变换.doc

7页
  • 卖家[上传人]:mg****85
  • 文档编号:36894876
  • 上传时间:2018-04-04
  • 文档格式:DOC
  • 文档大小:61KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 实验一实验一 信号的产生及时间变量的变换信号的产生及时间变量的变换一、实验目的一、实验目的1.熟悉和掌握常用的用于信号与系统时域仿真分析的 MATLAB 函数; 2.掌握连续时间和离散时间信号的 MATLAB 产生,掌握用周期延拓的方法将一个非周 期信号进行周期信号延拓形成一个周期信号的 MATLAB 编程; 基本要求:掌握用 MATLAB 描述连续时间信号和离散时间信号的方法,能够编写 MATLAB 程序,实现各种信号的时域变换和运算,并且以图形的方式再现各种信号的波形二、实验原理二、实验原理1. 信号的时域表示方法信号的时域表示方法1.1 将信号表示成独立时间变量的函数将信号表示成独立时间变量的函数例如 x(t)=sin(ωt) 和 x[n]=n(0.5)nu[n] 分别表示一个连续时间信号和一个离散时间信号在 MATLAB 中有许多内部函数,可以 直接完成信号的这种表达,例如: sin():正弦信号 cos():余弦信号 exp():指数信号1.2 用信号的波形图来描述信号用信号的波形图来描述信号用函数曲线表示一个信号,图 1.1 就是一个连续时间信号和一个离散时间信号的波形图。

      图 1.1 连续时间信号与离散时间信号的波形图1.3 将信号用一个数据序列来表示将信号用一个数据序列来表示对于离散时间信号,还可以表示成一个数的序列,例如:x[n]={...., 0.1, 1.1, -1.2, 0, 1.3, ….}↑n=02 用用 MATLAB 仿真连续时间信号和离散时间信号仿真连续时间信号和离散时间信号在 MATLAB 中,无论是连续时间信号还是离散时间信号,MATLAB 都是用一个数字 序列来表示信号,这个数字序列在 MATLAB 中叫做向量(vector)通常的情况下,需要与 时间变量相对应如前所述,MATLAB 有很多内部数学函数可以用来产生这样的数字序列,例如 sin()、 cos()、exp()等函数可以直接产生一个按照正弦、余弦或指数规律变化的数字序列2.1 连续时间信号的仿真连续时间信号的仿真程序 Program1_1 是用MATLAB 对一个正弦信号进行仿真的程序,请仔细阅读该 程序,并在计算机上运行,观察所得图形 % Program1_1 % This program is used to generate a sinusoidal signal and draw its plot clear, % Clear all variables close all, % Close all figure windows dt = 0.01; % Specify the step of time variable t = -2:dt:2; % Specify the interval of time x = sin(2*pi*t); % Generate the signal plot(t,x) % Open a figure window and draw the plot of x(t) title('Sinusoidal signal x(t)') xlabel('Time t (sec)') 常用的图形控制函数常用的图形控制函数 axis([xmin,xmax,ymin,ymax]):图型显示区域控制函数,其中 xmin 为横轴的显示起点, xmax 为横轴的显示终点,ymin 为纵轴的显示起点,ymax 为纵轴的显示终点。

      有时,为了使图形具有可读性,需要在所绘制的图形中,加上一些网格线来反映信号 的幅度大小MATLAB 中的 grid on/grid off 可以实现在你的图形中加网格线 grid on:在图形中加网格线 grid off:取消图形中的网格线 x = input(‘Type in signal x(t) in closed form:’) 单位阶跃信号 u(t) 和单位冲激信号 δ(t) 是二个非常有用的信号它们的定义如下1.1(a)0, 0)(1)( ttdttt 1.1(b)  0, 00, 1)(tttu这里分别给出相应的简单的产生单位冲激信号和单位阶跃信号的扩展函数产生单位 冲激信号的扩展函数为: function y = delta(t) dt = 0.01; y = (u(t)-u(t-dt))/dt;产生单位阶跃信号的扩展函数为: % Unit step function function y = u(t) y = (t>=0); % y = 1 for t > 0, else y = 0请将这二个 MATLAB 函数分别以 delta 和 u 为文件名保存在 work 文件夹中,以后, 就可以像教材中的方法使用单位冲激信号 δ(t) 和单位阶跃信号 u(t)。

      2.2 离散时间信号的仿真离散时间信号的仿真程序 Program1_2 用来产生离散时间信号 x[n]=sin(0.2πn) % Program1_2+% This program is used to generate a discrete-time sinusoidal signal and draw its plot clear, % Clear all variables close all, % Close all figure windows n = -10:10; % Specify the interval of time x = sin(0.2*pi*n); % Generate the signal stem (n,x) % Open a figure window and draw the plot of x[n] title ('Sinusoidal signal x[n]') xlabel ('Time index n')请仔细阅读该程序,比较程序 Program1_1 和 Program1_2 中的不同之处,以便自己编 程时能够正确使用这种方法仿真连续时间信号和离散时间信号。

      程序 Program1_3 用来仿真下面形式的离散时间信号:x[n]={...., 0.1, 1.1, -1.2, 0, 1.3, ….}↑n=0 % Program1_3 % This program is used to generate a discrete-time sequence % and draw its plot clear, % Clear all variables close all, % Close all figure windows n = -5:5; % Specify the interval of time, the number of points of n is 11. x = [0, 0, 0, 0, 0.1, 1.1, -1.2, 0, 1.3, 0, 0]; % Generate the signal stem(n,x,'.') % Open a figure window and draw the plot of x[n] grid on, title ('A discrete-time sequence x[n]') xlabel ('Time index n')由于在程序的 stem(n,x,'.') 语句中加有'.'选项,因此绘制的图形中每根棒条线的顶端是 一个实心点。

      如果需要在序列的前后补较多的零的话,可以利用函数 zeros(),其语法为:zeros(1, N):圆括号中的 1 和 N 表示该函数将产生一个一行 N 列的矩阵,矩阵中的所 有元素均为零利用这个矩阵与序列 x[n]进行组合,从而得到一个长度与 n 相等的向量例如,当 x[n]={ 0.1, 1.1, -1.2, 0, 1.3} 时,为了得到程序 Program1_3 中的序列,↑n=0 可以用这个 MATLAB 语句 x = [zeros(1,4) x zeros(1, 2)] 来实现用这种方法编写的程序如 下: % Program1_4 % This program is used to generate a discrete-time sinusoidal signal % and draw its plot clear, % Clear all variables close all, % Close all figure windows n = -5:5; % Specify the interval of time x = [zeros(1,4), 0.1, 1.1, -1.2, 0, 1.3, zeros(1,2)]; % Generate the sequence stem (n,x,'.') % Open a figure window and draw the plot of x[n] grid on, title ('A discrete-time sequence x[n]') xlabel ('Time index n')离散时间单位阶跃信号 u[n]定义为1.2  0, 00, 1][nnnu离散时间单位阶跃信号 u[n]除了也可以直接用前面给出的扩展函数来产生,还可以利 用 MATLAB 内部函数 ones(1,N) 来实现。

      这个函数类似于 zeros(1,N),所不同的是它产生 的矩阵的所有元素都为 1值得注意的是,利用 ones(1,N) 来实现的单位阶跃序列并不是真正的单位阶跃序列, 而是一个长度为 N 单位门(Gate)序列,也就是 u[n]-u[n-N]但是在一个有限的图形窗口中, 我们看到的还是一个单位阶跃序列在绘制信号的波形图时,有时我们需要将若干个图形绘制在图一个图形窗口中,这就 需要使用 MATLAB 的图形分割函数 subplot(),其用法是在绘图函数 stem 或 plot 之前,使 用图形分割函数 subplot(n1,n2,n3),其中的参数 n1,n2 和 n3 的含义是,该函数将把一个图 形窗口分割成 n1xn2 个子图,即将绘制的图形将绘制在第 n3 个子图中2.3信号的时域变换信号的时域变换2.3.1 信号的时移信号的时移信号的时移可用下面的数学表达式来描述:设一个连续时间信号为 x(t),它的时移 y(t) 表示为:y(t) = x(t - t0) 1.3 其中,t0为位移量若 t0为正数,则 y(t)等于将 x(t)右移 t0秒之后的结果。

      反之,若 t0为负 数,则 y(t)等于将 x(t)左移 t0秒之后的结果在 MATLAB 中,时移运算与数学上习惯表达方法完全相同程序 Program1_5 对给定一个连续时间信号 x(t) = e-0.5tu(t),对它分别左移 2 秒钟和右移 2 秒钟得到信号 x1(t) = e-0.5(t+2)u(t+2)和 x2(t) = e-0.5(t-2)u(t-2) % Program1_5 % This program is used to implement the time-shift operation % on a continuous。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.