资源描述
实验一 常用信号的Matlab表示及运算
一、实验目的
1、掌握Matlab中表示信号的方法.
2、掌握Matlab中信号运算的实现方法。
3、掌握在Matlab中画信号波形的方法。
二、实验原理
1、Matlab中表示信号的方法
信号可以分为连续时间信号与离散时间信号,由于Matlab是通过软件进行信号处理的,所以Matlab中的信号都是离散时间信号,不过在一定条件下,可以近似地表示连续信号。
Matlab语言中的基本数据类型是向量和矩阵,所以信号也用向量或矩阵来表示,列向量和行向量表示单通道信号,矩阵表示多通道信号,矩阵中的每一列表示一个通道。例如,输入语句
x=[1 2 3 5 7]’;
就定义了一个五采样点的离散信号x,以x为基础,可以定义3通道信号
y=[x x/2 2*x];
结果为
y =
1.0000 0.5000 2.0000
2.0000 1.0000 4.0000
3.0000 1.5000 6.0000
5.0000 2.5000 10.0000
7.0000 3.5000 14.0000
需要注意的是,Matlab约定向量和矩阵的下标从1开始,如果用户要指定信号的真实时间下标,则应另外构造一个向量作为时间轴。例如表示离散信号
x(n)={x(-2) x(-1) x(0) x(1) x(2)};
则应定义时间轴向量n
n=[-2 -1 0 1 2];
然后定义采样点向量
x=[1 2 3 5 7];
键入命令
stem(n,x)
axis([-3 2 0 8])
就可以得到具有真实时间下标的信号x(n)的图形,见图1.1。
若要产生具有特定采样频率的信号,也需要定义时间轴向量。例如要产生一个采样频率为1000Hz的采样信号,应先定义时间轴
Fs=1000;
t=0:1/ Fs:1;
然后定义采样信号
x=sin(2*pi*50*t)+2*sin(2*pi*120*t);
键入命令
stem(t(1:50),x(1:50))
就可以画出信号x的前50个采样点的图形,见图1.2。
图1.1 图1.2
若要近似地表示连续信号 x=sin(2*pi*50*t)+2*sin(2*pi*120*t);前面定义时间轴和信号x的语句可保持不变,只需将画图的命令改成
plot(t(1:50),x(1:50))
即可得到连续的波形,见图1.3。
图1.3
需要说明的是,Matlab中画离散信号的图形用stem命令,例如画图1.1和图1.2,画连续信号的波形用plot命令,例如画图1.3。
表1.1是常用序列的数学描述和Matlab表示。
表1.1 常用序列的数学描述和Matlab表示
名称
数学描述
Matlab表示
单位采样信号
x = zeros(1,N); x(1)=1;
单位阶跃信号
x = ones(1,N);
实指数信号
n=0:N-1;
x=a.^n;
复指数信号
n=0:N-1;
x=exp((sigema+j*w)*n);
正(余)弦信号
n=0:N-1;
x=sin(w*n+sita);
MATLAB提供了许多工具箱函数来产生信号,其中大部分函数都需要一个时间向量t作为参数。下面列举几种常用的函数:
正弦信号:用sin( )函数产生。
格式:x=sin(t); 产生周期为的正弦信号。
周期锯齿波或三角波信号:用sawtooth( )函数产生。
格式:x=sawtooth(t) 产生周期为,函数值从-1到+1的锯齿波,在的整数倍处,值为-1,从-1到+1这一段波形的斜率为1/。
x=sawtooth(t,0.5)
产生周期为,函数值从-1到+1的三角波。
方波信号:用square( )函数产生。
格式:x=square(t)
产生周期为,函数值为-1和+1的方波信号。
x=square(t,DUTY)
产生周期为,占空比为DUTY*1%,函数值为-1和+1的方波信号。
例:输入以下语句:
t=[-2:0.001:2]; 时间向量作为参数(该句必不可少)
x=square(pi*t); 形成周期为2的方波
plot(t,x);显示波形
axis([-2 2 -1.2 1.2]);规定横轴的范围为[-2 2],纵轴的范围为[-1.2 1.2]
显示的波形如图1.4:
图1.4 图1.5
Sinc函数或函数:用sinc( )函数产生。
格式:x=sinc(t)
产生sinc(t)信号,即
例:产生sinc函数波形,结果见图1.5:
t=linspace(-5,5);
x=sinc(t);
plot(t,x)
2、Matlab中信号运算的实现方法
表1.2是信号运算的基本描述和Matlab实现。
表1.2 信号运算的基本描述和Matlab实现
运算名称
数学描述
Matlab表示
信号加
x = x1+x2;
信号乘
x = x1.*x2;
幅度变化
y=alpha*x;
位移
y=[zeros(1,n0) x];
折叠
y=fliplr(x);
n=-fliplr(n);
采样和
y=sum(x(n1:n2));
采样积
y=prod(x(n1:n2));
N次幂(N为常数)
y = x.^N;
三、实验内容和步骤
1、阅读本实验的实验原理。
2、用Matlab生成以下信号,并画出其图形。
。
四、实验报告要求
1、简述实验原理及目的。
2、给出完成实验内容所需的源程序和生成的信号波形。
展开阅读全文