基于Matlab的信号时域的描述及运算_第1页
基于Matlab的信号时域的描述及运算_第2页
基于Matlab的信号时域的描述及运算_第3页
基于Matlab的信号时域的描述及运算_第4页
基于Matlab的信号时域的描述及运算_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 基于Matlab的信号时域的描述及运算 实验目的:通过利用MATLAB语言软件实现信号的描述和运算练习,熟悉掌握实现基本信号时域运算的方法。实验内容:、对常见连续时间信号的描述及运算内容进行验证性操作练习,掌握用于实现正弦连续信号、方波信号、阶跃信号、白噪声、矩形脉冲等常见信号的基础程序方法,熟悉和掌握对连续信号进行移位、翻转、尺度变换等时域运算的程序方法。、对常见离散时间信号的描述及运算内容进行验证性操作练习,掌握用于实现正弦序列、周期方波序列、单位脉冲序列、单位阶跃序列、指数序列等常见信号的程序方法,熟悉和掌握对离散时间信号进行离散卷积、自相关函数、移位、翻转、

2、尺度变换等时域运算的程序方法。、编程完成练习题。 需要完成的练习题 (写出满足实现题目要求的MATLAB语言程序或命令)1、 结合后文准备内容中例13、在时间内,编程实现信号,并绘出结果图。2、 结合例19,在时间内,编程实现信号,并绘出结果图。3、 在时间内,编程实现信号,并绘出结果图。4、 结合例17,用tripluls函数生成右图所示的三角波,并进一步作如下信号变换,并绘出结果图。参考【例1-11】1)2) 5、 使用下面的信号合成公式,看看合成的信号是什么类型,并分析随着加入的谐波增加,信号波形有什么变化?参考程序:t=-8:0.01:8;w=input('方波的频率w=

3、9;);A=input('幅值A=');n=input('需要的谐波n=');y=A/2;for k=1:n y=y+(-1)(k-1)*cos(2*k-1)*w*t)*2*A/(pi*(2*k-1);endplot(t,y),grid、使用MATLAB产生下列离散序列并作出一个图形,设 (1) , 。 (结合例25) (2), , 。 (结合例24) (3) 。 、已知两信号,, (结合表21)(1)求两信号的卷积运算;(2)求出信号a的自相关函数;(3)将信号b进行翻转; (4)求两信号的互相关函数;实验报告要求:、简要介绍说明实验中用于实现常见信号的基本命

4、令。、简要介绍说明实验中用于实现时域运算的程序方法基本命令。、独立完成实验练习题,写出满足实现题目要求的MATLAB语言程序或命令,给出相对应的结果图。准备知识一、常用连续时间信号1、正弦信号A*cos(w0*t+phi) 产生一个频率为w0,相位为phi的余弦信号。A*sin(w0*t+phi) 产生一个频率为w0,相位为phi的正弦信号。例11 在时间范围内产生一个幅度为2,频率为4Hz,初相位为的正弦信号。clear all;clc%正弦信号 x(t)=A*sin(w0*t+phi)A=2; %信号幅度 f0=4; %信号频率phi=pi/6; %信号初相位w0=2*pi*f0; %信号

5、角频率t=0:0.01:1; %连续时间离散化 x=A*sin(w0*t+phi); %求出正弦信号plot(t,x); %画出信号波形ylabel('x(t)');xlabel('Time(s)');title('sinusoidal signal'); 图1.1 正弦信号2、周期方波信号square(w0*t) 产生基本频率为w0(周期为的周期方波。square(w0*t,DUTY) 产生基本频率为w0(周期为、占空比DUTY=的周期方波。为一个周期中信号为正的时间长度。当,DUTY=50,square(w0*t,50)= square(w0

6、*t)。例12 在时间范围内产生一个幅度为1,基频为3Hz,占空比为20%的周期方波。A=1; % 幅度f0=3; t=0:0.001:2.5; % 连续时间离散化(产生时间点),w0=2*f0*pi;duty=20; % 占空比为20% y=A*square(w0*t,duty); plot(t,y);axis(0,2.5,-1.5,1.5);ylabel('x(t)');xlabel('Time(s)');title('square wave') 图1.2 周期方波信号3、单位阶跃信号例13 在时间范围内产生阶跃信号2。t=-2:0.02:6

7、;x=2*(t>=0);stairs(t,x);-1axis(-2,6,0,2.5);ylabel('x(t)'); xlabel('Time(s)');title('step signal'); 图1.3 阶跃信号 4、单位冲激信号例14 在时间范围内产生一个冲激信号。t=-2:0.02:6;x=2*(t-2)=0);stairs(t,x);axis(-2,6,0,2.5);ylabel('x(t)'); xlabel('Time(s)');title('impulse signal');

8、图1.4 冲激信号5、矩形脉冲信号rectpulse(t)产生高度为1、宽度为1、关于t=0对称的矩形脉冲信号。rectpulse(t, w)产生高度为1、宽度为w、关于t=0对称的矩形脉冲信号。rectpulse(t-t0, w)产生高度为1、宽度为w、关于t=t0对称的矩形脉冲信号。例15 在时间范围内产生一个高度为1、宽度为3、延时2秒的矩形脉冲信号。t=-2:0.02:6;y=rectpuls(t-2,3);%对称中心在t=2处plot(t,y);axis(-2,6.5,0,1.5);ylabel('x(t)');xlabel('Time(s)');ti

9、tle('rectangular pulse') 图1.5 矩形脉冲信号6、取样信号取样函数信号定义为: 它是一个以为周期,幅度随但单调衰减的振荡信号。它在信号分析和通信理论中有着广泛应用,与它变化规律非常相似的有辛格函数,其定义为 所以在MATLAB中,可以使用命令得到取样函数信号。例16 在时间范围内产生取样信号。t=-10:.01:10; y=sinc(t/pi); % sa(t)=sin(t)/t plot(t,y);axis(-10,10,-1,1.5);ylabel('x(t)');xlabel('Time(s)');title(&#

10、39;sample function') 图1.6 取样函数信号 7、三角波信号tripuls(t) 产生高度为1,底边宽度为1、关于t=0位置对称的等腰三角波信号。tripuls(t,w) 产生高度为1,底边宽度为w、关于t=0位置对称的等腰三角波信号。tripuls(t,w, s) 产生高度为1,底边宽度为w、底边中心t=0、斜度为s()的三角波信号。s=0产生等腰三角波。例17在时间范围内产生一个高度为2、宽度为2,底边中心在2.5、斜度为的三角波信号。t=-5:0.01:5;x=2*tripuls(t-2.5,2,-1);plot(t,x);ylabel('x(t)&#

11、39;);xlabel('Time(s)');title('triangle signal')图1.7 取样函数信号8、噪声信号rand 产生在0,1区间均匀分布的白噪声。 randn 产生高斯分布(均值为0,协方差为1)的白噪声。例18 在时间范围内产生101个均匀分布的白噪声和高斯分布的白噪声。t=0:0.01:1;subplot(2,1,1);plot(t,rand(1,length(t);ylabel('x(t)');title('average distributional noise');subplot(2,1,2);

12、plot(t,randn(1,length(t);ylabel('x(t)');xlabel('Time(s)');title('guass distributional noise'); 图1.8 白噪声信号二、连续时间信号的常用运算例19在时间内生成幅度按指数衰减的正弦信号=。A=5;f0=4;phi=0;w0=2*pi*f0;a=6;t=0:0.001:1;x=A*sin(w0*t+phi).*exp(-a*t); %注意这里是点乘plot(t,x);ylabel('x(t)');xlabel('Time(s)

13、9;); 图1.9 例110使用命令tripulse(t)生成一个三角形脉冲,设。 (1)计算该信号的微分并且画出波形。 (2)计算该信号在内的记分值。 (3)计算该信号的积分并画出波形解:1)使用diff函数计算信号的微分并画出波形,结果见图1-10(a)t=-2:0.02:2; % 共有201个数据点x=tripuls(t); %产生单位高度、底边宽度为1、对称中心在t=0的等腰三角形y=diff(x); % 共有200个数据点n=length(t)-1;subplot(2,1,1); plot(t,x);ylabel('x(t)'); xlabel('Time(s

14、)');subplot(2,1,2);plot(t(1:n),y,'r');ylabel('dx(t)/dt');xlabel('Time(s)');【例1-11】信号的平移使用命令tripulse(t)生成一个三角形脉冲,其宽度为2,关于中心t=0对称,利用subs指令实现信号向左平移2个单位。syms t;f=sym('tripuls(t,2,0)')f1=subs(f,t,t+2);t=-4:0.001:4;subplot(211)ezplot(f,-8,8),gridsubplot(212)ezplot(f1,-8

15、,8),gridtitle('信号的平移')思考:若将上面的f1=subs(f,t,t+2)换成f1=subs(f,t,-2*t+2),结果会怎样?2)函数quad和quad8都是数值积分函数。使用格式:Q=quad(function_name,a,b);Q为定积分返回值, function-name为函数名,a和b指定定积分区间。调用函数quad积分:z=quad(tripuls, -2 ,2)返回: z=0. 50003) 调用函数quad积分:(结果见图110(b))t=-2:0.02:2;x=tripuls(t,2,0);for u=1:length(t); int_x

16、(u)=quad('tripuls',-2,t(u);endsubplot(2,1,1); plot(t,x);ylabel('x(t)');subplot(2,1,2); plot(t,int_x);ylabel('integral of x(t)');xlabel('time(s)');title('show the process of integral') ;图1.10(a) 图1.10(b)例112计算信号在时间内的能量。信号的能量:信号的功率:解:首先做一个函数powert.m计算信号的瞬时能量func

17、tion f=powert(t) f=(abs(exp(-1.*t).2;计算时间内的能量power_t=quad(powert,0,1)power_t=0.4323三、常见离散时间信号1、正弦序列A*cos(w0*n+phi) 产生一个频率为w0,相位为phi的余弦信号。A*sin(w0*n+phi) 产生一个频率为w0,相位为phi的正弦信号。例21产生一个幅度为2,数字角频率为,相位为的正弦信号。 A=2;phi=pi/6; omega=2*pi/12; n=-10:10;%时间间隔为单位1 x=A*sin(omega*n+phi); stem(n,x); ylabel('x(n

18、)');xlabel('Time index n'); title('discrete-time sinusoidal signal') 图2.1 正弦序列2、离散周期方波例22在内产生一个幅度为1,数字角频率为,占空比为50%的离散周期方波。A=1;omega=pi/4;duty=50;n=-10:10;x=A*square(omega*n,duty);stem(n,x); ylabel('x(n)');xlabel('Time index n');title('discrete-time square wave

19、'); 图2.2 离散周期方波3、离散指数序列例23在内产生指数序列。结果图如图2.3所示。A=0.5;r=3/4;n=-10:10;x=A*r.n;stem(n,x); ylabel('x(n)');xlabel('Time index n');title('discrete-time exponential signal'); 图2.3 离散指数序列4、单位阶跃序列 既可用ones(1,n)和zeros(1,n)命令,也可用逻辑判断命令生成阶跃序列。例24在内生成单位阶跃序列。信号可由两种方法生成,方法1: 方法2:n0=3; n0=

20、3;n=-2:20; n=-2:20;x=zeros(1,5),ones(1,18); x=(n-n0)>=0;stem(n,x); stem(n,x);ylabel('x(n)');xlabel('Time index n'); ylabel('x(n)');xlabel('Time index n');title('unitary step sequence'); title('unitary step sequence');图2.4(a) 图2.4(b)结果图分别如图2.4(a), (b

21、)所示,有图可见这两种方法是等效的。但方法2 显得更为简单。5、单位脉冲序列 既可用ones(1,n)和zeros(1,n)命令,也可用逻辑判断命令生成脉冲序列。例25在内生成单位脉冲序列。方法1:n0=3;n=-2:20;x=zeros(1,5),1,zeros(1,17);stem(n,x);axis(-2,20,0,1);ylabel('x(n)');xlabel('Time index n');title('unitary pulse signal');方法2:n0=3;n=-2:20;x=(n-n0)=0;stem(n,x);axis(

22、-2,20,0,1);ylabel('x(n)');xlabel('Time index n');title('unitary pulse signal');图2.5(a) 图2.5(b)结果图分别如图2.5(a), (b)所示,有图可见这两种方法是等效的。但方法2 显得更为简单。6、噪声序列rand(1,N) 产生长度为N的在0,1区间均匀分布白噪声。 randn(1,N) 产生长度为N的高斯分布(均值为0,协方差为1)白噪声。四、常用信号运算序列常用运算的MATLAB实现如表2-1所示序列常用运算的MATLAB实现运算名称数学表达式MATLAB实现信号幅度变化Y=alpha*x信号时移Y=zeros(1,k),x信号翻转Y=flip(x)信号累加Y=cumsum(x)信号差分(或近似微分Y=diff(x)信号求和Y=sum(x(n1:n2)两个信号相加Y=x1+x2两个信号相乘Y=x1*x2两个信号卷积Y=conv(x1,x2)两个信号相关Y=xcorr(x1,x2)例26

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论