信号的产生及时间变量的变换汇总Word文件下载.docx
- 文档编号:16664895
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:18
- 大小:213.03KB
信号的产生及时间变量的变换汇总Word文件下载.docx
《信号的产生及时间变量的变换汇总Word文件下载.docx》由会员分享,可在线阅读,更多相关《信号的产生及时间变量的变换汇总Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
在MATLAB中,无论是连续时间信号还是离散时间信号,MATLAB都是用一个数字序列来表示信号,这个数①字序列在MATLAB中叫做向量(vector)。
通常的情况下,需要与时
=间变量相对应。
如前所述,MATLAB有很多内部数学函数可以用来产生这样的数字序列,例如sin()、cos()、exp()等函数可以直接产生一个按照正弦、余弦或指数规律变化的数字序列。
3、常用的图形控制函数
①axis([xmin,xmax,ymin,ymax]):
图型显示区域控制函数,其中xmin为横轴的显示起点,xmax为横轴的显示终点,ymin为纵轴的显示起点,ymax为纵轴的显示终点。
②有时,为了使图形具有可读性,需要在所绘制的图形中,加上一些网格线来反映信号的幅度大小。
MATLAB中的gridon/gridoff可以实现在你的图形中加网格线。
gridon:
在图形中加网格线。
gridoff:
取消图形中的网格线。
③stem(n,x,'
.'
)语句中加有'
选项,因此绘制的图形中每根棒条线的顶端是一个实心点。
④如果需要在序列的前后补较多的零的话,可以利用函数zeros(),其语法为:
zeros(1,N):
圆括号中的1和N表示该函数将产生一个一行N列的矩阵,矩阵中的所有元素均为零。
利用这个矩阵与序列x[n]进行组合,从而得到一个长度与n相等的向量。
⑤离散时间单位阶跃信号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个子图中。
4、信号的时移可用下面的数学表达式来描述:
设一个连续时间信号为x(t),它的时移y(t)表示为:
y(t)=x(t-t0)其中,t0为位移量。
若t0为正数,则y(t)等于将x(t)右移t0秒之后的结果。
反之,若t0为负数,则y(t)等于将x(t)左移t0秒之后的结果。
在MATLAB中,时移运算与数学上习惯表达方法完全相同。
5、信号的时域反褶
对一个信号x[n]的反褶运算在数学上y[n]=x[-n]这种反褶运算,用MATLAB实现起来也是非常简单的。
有多种方法可以实现信号的反褶运算。
方法一,修改绘图函数plot(t,x)和stem(n,x)中的时间变量t和n,即用-t和-n替代原来的t和n,这样绘制出来的图形,看起来就是原信号经时域反褶后的版本。
方法二,直接利用原信号与其反褶信号的数学关系式来实现。
这种方法最符合信号反褶运算的实际意义。
方法三,使用MATLAB内部函数fliplr()来实现信号的反褶运算。
其用法如下:
y=fliplr(x):
其中x为原信号x(t)或x[n],而y则为x的时域反褶。
需要说明的是,函数fliplr()对信号作时域反褶,仅仅将信号中各个元素的次序作了一个反转,这种反转处理是独立于时间变量t和n的。
因此,如果信号与其时间变量能够用一个数学函数来表达的话,那么建议将时间变量t和n的范围指定在一个正负对称的时间区间即可。
6、信号的时域尺度变换
信号x(t)的时域尺度变换在数学描述为y(t)=x(at),其中a为任意常数。
根据a的不同取值,这种时域尺度变换对信号x(t)具有非常不同的影响。
当a=1时,y(t)=x(t);
当a=-1时,y(t)=x(-t),即y(t)可以通过将x(t)反褶运算而得到;
当a>
1时,y(t)=x(at),y(t)是将x(t)在时间轴上的压缩而得到;
当0<
a<
1时,y(t)=x(at),y(t)是将x(t)在时间轴上的扩展而得到;
当-1<
0时,y(t)=x(at),y(t)是将x(t)在时间轴上的扩展同时翻转而得到;
当a<
-1时,y(t)=x(at),y(t)是将x(t)在时间轴上的压缩同时翻转而得到;
由此可见,信号的时域尺度变换,除了对信号进行时域压缩或扩展外,还可能包括对信号的时域反褶运算。
实际上,MATLAB完成式1.5的运算,并不需要特殊的处理,按照数学上的常规方法即能完成。
7、周期信号
周期信号是一类非常重要的信号。
给定一个信号x(t)或x[n],如果满足
x(t)=x(t+kT)x[n]=x[n+kN]
则该信号叫做周期信号。
其中,k为任意整数,T和N为常数,通常称为信号的基本周期或最小周期。
周期信号可以看作是一个时限的非周期信号经过周期延拓之后形成的。
在数字信号处理中,周期延拓这一信号处理方法非常重要。
【实验过程】
1、产生并画出下列信号:
a.单位冲激信号
与单位脉冲序列
;
b.单位阶跃信号u(t)与单位阶跃序列u[n].
(a)
%Impulsesquence
subplot(1,2,1);
%将当前绘图窗口分成1行2列,并选中其中的第一块准备绘图
n=[-20:
20];
%n是一个整数向量(数组),从20到20,步长为1,共有41个数,维 %数为1×
41
z=(n==0);
%z是一个与n维数相同的向量,其中的每个数n中对应位置处的整数与0比较%相等与否的结果。
与0比较的结果为False(0),与0的比较为True(0)
stem(n,z);
%以向量n为横坐标的值序列,以向量z为纵坐标的值序列
title('
单位脉冲序列'
);
xlabel('
n'
%图中横轴x轴标签为n
ylabel('
\delta[n]'
%纵轴y轴标签为δ(n)
%Impulsefunction
subplot(1,2,2);
t=-20:
0.1:
20;
y=(t==0);
plot(t,y,'
r'
单位冲击信号'
t'
\delta[t]'
(b)
%Stepsquence
n=[-10:
10];
z=(n>
=0);
单位阶跃序列'
u[n]'
%Stepfunction
t=-10:
10;
y=(t>
b'
单位阶跃信号'
u[t]'
思考题:
①在matlab中不能产生理想的单位冲激信号.
②不相等,
在零时刻的值为无穷,
在零时刻的值为1.
2.产生并画出下列信号:
a在[-2П,2П]的范围内,画出正弦信号sin(t);
b利用sawtooth函数,在[-5П,5П]的范围内,画出周期三角波和锯齿波;
c利用square函数,在[-5П,5П]的范围内,画出周期方波。
%sincewave
subplot(1,1,1);
t=-2*pi:
pi/20:
2*pi;
plot(t,sin(t));
正弦信号'
sin(t)'
%Triangularwave
t=-5*pi:
pi/100:
5*pi;
x=sawtooth(t,0.5);
%sawtooth为MATLAB固有函数;
0.5表示x的最大值出现在t一个2π%周期的中点处
plot(t,x);
周期三角波'
x'
%Sawtoothwave
z=sawtooth(t);
%表示z的最大值出现在t一个2π周期的最右边点处
plot(t,z);
周期锯齿波'
z'
(c)
%Squarewave
x=square(t);
axis([-5*pi,5*pi,-1.5,1.5]);
%人为制定绘图窗口中的绘图坐标范围,格式为:
%axis([Xmin,Xmax,ymin,ymax]);
如果不指定的%话,则由MATLAB自动决定绘图坐标范围,以保证所有%涉及的数据点都被包括在所绘图中
Squarewave'
)
(1).锯齿波有下降沿,三角波没有.
(2).两函数都产生周期为2
,可以通过改变角频率w的大小实现。
3.在[-4П,4П]的范围内,产生sinc函数曲线和diric函数曲线(N=5)
Sinc函数的定义sinc(t)=[sin(πt)]/πt;
diric的函数定义为diric=(sin(Nt/2))/(Nsin(t/2))
figure
(1);
clf;
%指定1号绘图窗口为当前绘图窗口,并清空当前的绘图窗口内容
t=-4*pi:
4*pi;
%Sincfunction
subplot(2,1,1);
plot(t,sinc(t));
Sinc函数曲线'
grid;
sinc(t)'
%Diricfunction
subplot(2,1,2);
plot(t,diric(t,5));
%diric(x,N)中的正整数N是该函数值在[0,2π]范围内的等间距%的极值数目(极值包括最大值最小值),N=5表示在[0,2π]间正好%有5个极值
Diric函数曲线'
diric(t)'
(1)sinc函数是奇函数;
当sinc(t)函数的导数等于0即
时,取得极值点;
当sin
=0即t=k(整数)时为零点。
diric函数是奇函数;
当diric函数得导数等于0即
=0时,取得极值点;
当sin(Nt/2)=0即当t=2k
/2时为零点。
4.在n=[-10:
10]范围内产生离散信号:
x[n]=
x=2*n.*(abs(n)<
=3);
%abs(n)<
=3是一个向量的运算,即向量n中的每个元素都取绝对值之%后,再与3比较。
在n中绝对值小于或等于3的元素,该比较结果为%true
(1),其他n中元素该比较结果为false(0)
stem(n,x);
离散信号'
x[n]'
5.在n=[-10:
10]范围内画出以下信号:
clear;
clc;
%清除工作区间、清除命令行窗口、清除图形窗口
x1=delta(n);
x2=delta(n+2);
x3=delta(n-4);
x4=2*delta(n+2)-delta(n-4);
subplot(2,2,1);
stem(n,x1);
x_1[n]=\delta[n]'
axis([-10,10,-1,2]);
gridon;
subplot(2,2,2);
stem(n,x2);
x_2[n]=\delta[n+2]'
subplot(2,2,3);
stem(n,x3);
x_3[n]=\delta[n-4]'
subplot(2,2,4);
stem(n,x4);
x_4[n]=2*\delta[n+2]-\delta[n-4]'
delta.m的源程序如下:
6产生复信号:
并画出它们的实部和虚部及模值和相角;
n=[0:
32];
x=exp(j*(pi/8)*n);
%exp指数信号
stem(n,real(x));
Realpart'
stem(n,imag(x));
Imaginarypart'
stem(n,abs(x));
Magnitude'
stem(n,(180/pi)*angle(x));
Phase(\circ)part'
%angle(x)inradunit;
(180/pi)*angle(x)indegreeunit
x=exp((-0.1+j*0.3)*n);
①模等于实部的平方加上虚部的平方再进行开方
②-180到180③Re[x[n]]=模*cos(r(n)),Im[x[n]]=模*sin(
(n))
7.已知x[n]=u[n]-u[n-10],要求将它进行奇偶分量进行分解,分解为奇分量
主程序如下:
x=stepseq(0,0,10)-stepseq(10,0,10);
[xe,xo,m]=evenodd(x,n);
Stepsequence'
axis([-1010-1.21.2]);
stem(m,xe);
Evenpart'
xe[n]'
stem(m,xo);
Oddpart'
xo[n]'
Stepseq.m的源程序如下:
function[x,n]=stepseq(n0,n1,n2);
ifnargin~=3%nargin(numberofargumentsinput);
“~=”表示不相等
disp('
Usage:
Y=stepseq(n0,n1,n2)'
elseif((n0<
n1)|(n0>
n2)|(n1>
n2))%n0<
n1或者n0>
n2或者n1>
n2
error('
argumentsmustsatisfyn1<
=n0<
=2'
end
n=[n1:
n2];
x=[(n-n0)>
=0];
evenodd.m的源程序如下:
function[xe,xo,m]=evenodd(x,n)
ifany(imag(x)~=0)
xisnotarealsequence'
return;
m=-fliplr(n);
%fliplr为MATLAB的固有函数,可将矩阵过向量进行左右对称翻转
m1=min([m,n]);
m2=max([m,n]);
m=m1:
m2;
%m1取[m,n]最小值,m2取[m,n]最大值。
%m1m2组成新的区间赋给m
nm=n
(1)-m
(1);
n1=1:
length(n);
x1=zeros(1,length(m));
x1(n1+nm)=x;
x=x1;
%现在的x的值也填满了这个对称区间,并且在这个新的对称区间内与原%来的x的区间相应的那些x元素之仍保持不变xe=0.5*(x+fliplr(x));
%偶对称分量由1/2*(x[n]+x[-n])得到
xo=0.5*(x-fliplr(x));
%奇对称分量由1/2*(x[n]-x[-n])得到
8.已知序列
a.画出x[n];
x=zeros(1,21);
y1=zeros(1,21);
y2=zeros(1,21);
y3=zeros(1,21);
%零矩阵
forn=-10:
10%for循环语句
switchn%switch语句的开始,后面紧跟着分支条件。
分支条件可以是一个变量、函数 %或表达式
case0
x(n+11)=2;
case2
x(n+11)=1;
case3
x(n+11)=-1;
case4
x(n+11)=3;
otherwise
x(n+11)=0;
end
forn=1:
21;
ifn-2>
y1(n)=x(n-2);
ifn+1<
=21
y2(n)=x(n+1);
end
y3(n+11)=x(-n+11);
n=-10:
xlabel('
stem(n,y1);
y_1[n]'
y_1'
stem(n,y2);
y_2[n]'
y_2'
stem(n,y3);
y_3[n]'
y_3'
①x[
]为x[n]向右移动了
个单位(
为正整数)
②x[-n]为x[n]沿纵轴翻转得来的
9.在n=[0:
31]范围内画出下列信号:
31];
x1=sin(n*pi/4).*cos(n*pi/4);
x2=sin(n);
figure
(1);
x_1[n]'
x_1'
axis([031-11]);
figure
(2);
x_2[n]'
x_2'
①
=(2kп)/N(N为整数)
②信号
[n]与
[n]是周期信号,其基波周期是8.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 产生 时间 变量 变换 汇总