熟悉MATLAB软件的相关函数的使用方法各种信号的时域波形.docx
《熟悉MATLAB软件的相关函数的使用方法各种信号的时域波形.docx》由会员分享,可在线阅读,更多相关《熟悉MATLAB软件的相关函数的使用方法各种信号的时域波形.docx(19页珍藏版)》请在冰豆网上搜索。
![熟悉MATLAB软件的相关函数的使用方法各种信号的时域波形.docx](https://file1.bdocx.com/fileroot1/2023-1/23/b2a146b6-d88c-40cb-a1e5-b8c8a81ac756/b2a146b6-d88c-40cb-a1e5-b8c8a81ac7561.gif)
熟悉MATLAB软件的相关函数的使用方法各种信号的时域波形
实验目的:
熟悉MATLAB软件的相关函数的使用方法、各种信号的时域波形。
实验容:
1、用MATLAB软件绘制各类典型信号的时域波形并且给出程序源代码。
(1)指数信号、指数序列;
(2)单位阶跃函数、单位阶跃序列;
(3)单位脉冲信号;单位抽样序列;
(4)矩形信号,矩形序列信号,矩形宽度自定;
(5)正弦信号、正弦序列,其中振幅和频率自选;
2、假设存在一个单边离散指数序列
,参数自选;
为随机噪声,方差和均值自选;绘制
,
和
的图形
3、绘制你所采集的电信号的时域波形(部分即可),进行必要的说明和分析
4、选作提高:
编写一个程序,运行后可以在键盘上依次任意输入两个序列,计算两个序列的线性卷积,并输出计算结果。
(相关函数:
input,conv)
实现方案:
(1)指数信号、指数序列
1、指数信号分为实指数信号和复指数信号,其中实指数信号的基本形式为。
其中,K、a为实数。
当a>0时,实指数信号随时间按指数式增长;当a<0时,实指数信号随时间按指数式衰减;当a=0时,实指数信号不随时间变化,转化为直流信号。
MATLAB中用exp函数来表示实指数信号,语句表示为y=K*exp(a*t).
下面用MATLAB命令产生单边递增指数信号,当0<=t<=5的波形图。
MATLAB源程序为:
K=3;a=2;
t=0:
0.01:
5;
y=K*exp(a*t);
plot(t,y),gridon
程序运行后,产生如下图所示的波形。
2、复指数信号
复指数信号的基本形式为
其中,
是复变量;、为实数。
当=0时,为一个实指数信号;当时,的实部和虚部分别是按指数规律衰减的正弦振荡;当时,的实部和虚部均为等幅的正弦振荡。
下面用MATLAB生成复指数信号,0<=t<=3的波形。
源程序为:
t=0:
0.01:
5;
y=K*exp(a*t);
plot(t,y),gridon
t=0:
0.01:
3;
K=4;a=-3;b=10;
y=K*exp((a+i*b)*t);
plot(t,y),gridon
生成波形图如下图所示:
3、实指数序列
实指数序列定义为,其中n为正整数。
下面利用MATLAB分别绘制实指数序列、,源代码及波形图如下:
n=0:
10;
a1=1.2;a2=-1.2;
x1=a1.^n;x2=a2.^n;
subplot(221);
stem(n,x1,'fill'),gridon;
subplot(222);
stem(n,x2,'fill'),gridon
4、复指数序列
复指数序列定义为
当a=0时,得到虚指数序列,为正弦序列的数字域频率。
由欧拉公式知,复指数序列可进一步表示为:
当a>0时,复指数序列x(n)的实部和虚部分别是按指数规律增长的正弦振荡序列;
当a<0时,复指数序列x(n)的实部和虚部分别是按指数规律衰减的正弦振荡序列;
当a=0时,复指数序列x(n)的实部和虚部分别是按指数规律等幅的正弦振荡序列
下面用MATLAB绘制出复指数序列的实部、虚部、模及相角随时间变化的曲线。
源程序及波形图如下:
n=0:
30;
x=exp(-0.1+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);stem(n,xm);title('模');
subplot(224);stem(n,xa);title('相角')
(2)单位阶跃函数,单位阶跃序列;
1、单位阶跃信号是信号分析中的基本信号之一,在信号与系统中有着十分重要的意义,常用于化简信号的时域数学表示。
单位阶跃信号用符号u(t)表示,定义为:
下面用MATLAB绘制出单位阶跃信号u(t).
MATLAB源程序为:
t=-1:
0.01:
5;
y=(t>=0);
plot(t,y),gridon;
axis([-15-0.51.5]);
2、单位阶跃序列
单位阶跃序列u(n)定义为:
单位阶跃序列的源程序及波形图如下:
n=-30:
30;
un=[zeros(1,30),ones(1,31)];
stem(n,un)
(3)单位脉冲信号、单位脉冲序列
1、单位脉冲信号的定义为
根据冲激函数的定义,可知冲激函数有如下性质:
(1)如果函数f(t)在处连续,其值为,则有
(2)筛选特性若f(t)在t=0处连续,则有
(3)为偶函数,即
(4)冲激函数与阶跃函数的关系为:
或
(5)尺度特性
用MATLAB绘制单位冲激函数的源程序及波形图如下:
x=-10:
0.1:
10;
y=(x==0);
plot(x,y)
2、单位抽样序列
单位抽样序列也叫单位样值信号或单位冲激序列,定义为:
用MATLAB绘制单位抽样序列的源程序及波形如下:
n=-3:
3;
y=(n==0);
stem(n,y),gridon
(4)矩形信号、矩形信号序列
矩形信号的定义为:
用MATLAB绘制矩形信号的源程序及波形图如下:
t=-3:
0.01:
3;
width=1;
y=rectpuls(t,width);
stem(t,y)
矩形序列的定义为:
矩形序列有一个重要参数,就是序列宽度N.与u(n)的关系为
=u(n)-u(n-N)
因此,用MATLAB表示矩形序列可以利用预先定义好的uDT函数。
定义函数的方法为在MATLAB中新建一个Editor编译文件,在空白处输入如下程序:
Functiony=uDT(n)
Y=n>=0;%表示当参数为非负的时候输入1
输入完成后点保存,一般会在我的文档MATLAB文件夹中生成一个文件名为uDT的文件,接下来的编程就是要调用uDT函数编程。
MATLAB源程序为:
n=-3:
8;
x=uDT(n)-uDT(n-5);
stem(n,x,'fill'),xlabel('n'),gridon
波形如下图:
(5)正弦信号、正弦序列
正弦信号的的基本形式为,或。
其中,
K是振幅;是角频率;是初相位。
这三个参数称为正弦信号的三要素。
下面我们利用MATLAB产生正弦信号,并绘制出0到3秒
的波形图。
MATLAB源程序为:
K=2;w=2*pi;phi=pi/4;
t=0:
0.01:
3;
y=K*sin(w*t+phi);
plot(t,y),gridon
axis([0,3,-2.2,2.2])
程序运行后,将产生如下波形:
2、正弦序列
正弦序列定义为:
其中,是正弦序列的数字域频率;为初相。
与连续的正弦信号不同,正弦序列
的自变量n必须为整数。
可以证明只有当为有理数时,正弦序列才具有周期性。
下面利用MATLAB绘制正弦序列的波形图。
MATLAB源程序为:
n=0:
39;
x=sin(pi/6*n);
stem(n,x,'fill'),xlabel('n'),gridon
title('正弦序列')
axis([0,40,-1.5,1.5]);
产生的波形图如下图:
(2)假设单边离散指数序列,其中n为正整数,下面用MATLAB绘制其
波形图并给出源程序
n=0:
10;
a=1.5;
s=a.^n;
stem(n,s,'fill'),gridon
而随机噪声指的是在未来任一给定时刻,其瞬时值都不能精确预知的噪声。
常见的随
机噪声主要分三类:
单频噪声、脉冲噪声和起伏噪声。
在MATLAB中噪声主要用
Randn函数实现。
Randn是求正态分布的随机数矩阵,下面我们用MATLAB生成一个
噪声信号。
源程序及波形如下:
N=10;
n=0:
N-1;
y=randn(1,N);
plot(n,y),gridon
下面通过MATLAB编程,实现2个信号的叠加,源程序及波形如下:
N=10;
>>n=0:
N-1;
>>x1=1.5.^n;
>>x2=randn(1,N);
>>x2=x2-mean(x2);%改变均值
x2=x2/std(x2);%改变方差
a=0.2;
b=sqrt(0.6);
>>x2=a+b*x2;%高斯噪声新的均值和方差
x3=x1+x2;%求和
subplot(2,2,1);stem(n,x1);title('s[n]');grid%绘图1
subplot(2,2,2);stem(n,x2);title('d[n]');grid%绘图2
subplot(2,1,2);stem(n,x3);title('s[n]+d[n]');grid%绘图3
mean(x2)%确认均值
var(x2)%确认方差
ans=
0.2000
ans=
0.6000
(3)绘制你所采集的电信号的时域波形(部分即可),进行必要的说明和分析
在做数字电子电路实验时,已知我们采集到一个芯片某管脚的高低电平序列为
01011100,下面我们用MATLAB绘制出其波形,程序及波形如下:
a=[01011100];
t=1:
length(a);
stairs(t-1,a);
axis([0length(a)min(a)-0.5max(a)+0.5])
由波形可知,芯片管脚输出电平信号刚好是01011100,与理论完全吻合,显示出
MATLAB工具的强大作用。
(4)写一个程序,运行后可以在键盘上依次任意输入两个序列,计算两个序列的线性卷积,并输出计算结果。
(相关函数:
input,conv)
先设定2个序列X、H的长度分别为N=5M=6,卷积后的平移量L=M+N-1
源程序如下:
N=5;
M=6;
L=N+M-1;
x=input('');
h=input('');
y=conv(x,h);
nx=0:
N-1;
nh=0:
M-1;
ny=0:
L-1;
subplot(231);
stem(nx,x,'.k');xlabel('n');ylabel('x(n)');gridon;
subplot(232);
stem(nh,h,'.k');xlabel('n');ylabel('h(n)');gridon;
subplot(233);
stem(ny,y,'.k');xlabel('n');ylabel('y(n)');gridon
在MATLAB中运行该程序几秒钟后,会提示输入2个序列,此时分别输入
【12345】和【234567】由MATLAB自动运算出2序列的卷积和。
序列图如下:
有5个值和6个值的序列卷积后刚好得到5+6-1=10个值的序列,这也是我们为什么
要定义平移量为L=N+M-1的原因。