基于matlab的基本运算和信号调制与解调.docx
- 文档编号:11633101
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:35
- 大小:354.99KB
基于matlab的基本运算和信号调制与解调.docx
《基于matlab的基本运算和信号调制与解调.docx》由会员分享,可在线阅读,更多相关《基于matlab的基本运算和信号调制与解调.docx(35页珍藏版)》请在冰豆网上搜索。
基于matlab的基本运算和信号调制与解调
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
题目:
基于MATLAB的基本运算和信号调制与解调
初始条件:
1.MATLAB软件
2.信号处理的相关知识
3.信号的常规幅度调制、单边带幅度调制以及双边带调制
要求完成的主要任务:
1.采用MATLAB选用适当的函数或矩阵进行如下计算
(1)极限的计算、微分的计算、积分的计算、级数的计算、求解代数方程、求解常微分方程;
(2)矩阵的最大值、最小值、均值、方差、转置、逆、行列式、特征值的计算、矩阵的相乘、右除、左除、幂运算;
(3)多项式加减乘除运算、多项式求导、求根和求值运算、多项式的部分分式展开、多项式的拟合、插值运算。
2.
(1)已知某消息信号
以双边幅度调制(DSB-AM)方式调制载波
,所得到的已调制信号记为
,设
,
。
试比较消息信号与已调信号,并绘制它们的频谱。
(2)对
(1)的DSB-AM调制信号进行相干解调,并绘出信号的时频域曲线。
(3)对
(1)中的信号进行单边带幅度调制(SSB-AM)绘制信号的时频域曲线。
(4)对
(1)中的信号进行常规幅度调制(AM),给定调制指数
绘制信号的时频域曲线。
时间安排:
第5周:
安排任务,分组
第6-7周:
设计仿真,撰写报告
第8周:
完成设计,提交报告,答辩
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
目录
摘要I
AbstractII
1基本运算编程及运行结果1
1.1基础微积分计算1
1.1.1极限的计算1
1.1.2微分的计算1
1.1.3积分的计算2
1.1.4级数的计算3
1.1.5求解代数方程3
1.1.6求解常微分方程4
1.2矩阵的基本计算5
1.2.1矩阵的最大值、最小值6
1.2.2矩阵的均值、方差7
1.2.3矩阵的转置8
1.2.4矩阵的逆、行列式9
1.2.5矩阵特征值的计算10
1.2.6矩阵的相乘10
1.2.7矩阵右除和左除11
1.2.8矩阵的幂运算12
1.3多项式的基本运算13
1.3.1多项式的四则运算13
1.3.2多项式的求导、求根、求值14
1.3.3多项式的部分分式展开16
1.3.4多项式的拟合17
1.3.5多项式插值运算18
2基于MATLAB的信号调制与解调20
2.1常规双边带幅度调制(DSB-AM)与解调20
2.1.1DSB-AM调制原理与分析20
2.1.2常规双边带解调原理22
2.2单边带幅度调制(SSB-AM)原理24
2.3常规幅度调制(AM)原理25
2.3.1幅度调制的一般模型25
2.3.2常规双边带调幅(AM)26
2.3.2.1AM信号的表达式、频谱及带宽26
2.3.2.2AM信号的功率分配及调制效率28
2.4.双边幅度调制(DSB-AM)与解调29
2.4.1DSB-AM调制29
2.4.2相干解调31
2.5单边带幅度调制(SSB-AM)33
2.6常规幅度调制(AM)35
3小结与体会36
4参考文献37
摘要
MATLAB的含义是矩阵实验室(MATRIXLABORATORY),其进行数值计算的基本单位是复数数组(或称阵列),由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便。
Matlab已经发展成为多学科、多种工作平台的功能强大的大型软件。
Matlab是一个交互式的系统,它的基本运算单元是不需指定维数的矩阵,按照IEEE的数值计算标准(能正确处理无穷数Inf(Infinity)、无定义数NaN(not-a-number)及其运算)进行计算.系统提供了大量的矩阵及其它运算函数,可以方便地进行一些很复杂的计算,而且运算效率极高.Matlab命令和数学中的符号、公式非常接近,可读性强,容易掌握,还可利用它所提供的编程语言进行编程完成特定的工作.
Abstract
MATLABisthemeaningofMATRIXlab(MATRIXLABORATORY),thenumericalcalculationofbasicunitisapluralarray(orweigharray),becauseitdoesnotneeddefinitionofanarraydimension,andgivesMATRIXfunction,specialMATRIXspecializedlibraryfunction,makeinsolvingsuchassignalprocessing,modeling,systemidentification,controlandoptimizationinthefieldsoftheproblem,appeargreatlyforthright,efficientandconvenient.MATLABhasbecomemuchdiscipline,avarietyofworkplatform'spowerfullarge-scalesoftware.
Matlabisaninteractivesystem,itsbasiccomputingunitthatnoneedtospecifydimensionofmatrix,accordingtoanIEEEnumericalcalculationstandard(tocorrectlyhandletheinfinitenumberofInfinity.inf(),havenoNaN(notdefinednumber-a-by)anditsoperationstocalculate.Systemprovidesagreatdealofmatrixandotheroperationfunction,canbeconvenienttosomeverycomplicatedcalculation,andoperationefficiencyisextremelyhigh.Matlabordersandinmathematicssymbols,formulaveryclose,readable,easytomaster,stillcanuseitsofferofprogrammingprogramminglanguagetoperformaspecificjob.
1基本运算编程及运行结果
1.1基础微积分计算
微积分的计算可以说是数学的基础,关于基础的微机分计算主要有求函数的极限,微分运算,积分运算,级数的计算,代数的求解,以及常微分方程的求解,下面分别介绍。
1.1.1极限的计算
MATLAB中极限函数limit格式如下:
limit(F,x,a);limit(F,a);limit(F);limit(F,x,a,'right');limit(F,x,a,'left')
其中F表示的是函数式,x表示求极限的变量,a表示的是变量取的值,left或right表示是取左极限还是右极限。
例:
求y=
x2
分析:
这是一个典型的求极限的题目,题目中涉及了两个变量,故在程序开始应该先定义两个变量,然后直接利用函数limit编程计算。
示例程序如下:
symsxy
y=limit(x^2,x,2)
运行结果如下:
1.1.2微分的计算
MATLAB中微分函数diff格式如下:
Y=diff(X);Y=diff(X,n);Y=diff(X,n,dim)
其中X表示待微分的变量,n表示n次微分,第三式表示沿着定维dim的n阶微分。
例:
求
sin(x)的微分;
分析:
微分运算能直观的显示函数值的变化快慢,在平时计算中常常反映变量的变化对函数值的影响大小这是一个简单的一阶微分式子,可以直接写定义变量然后求结果。
示例程序如下:
symsxydy
y=sin(x)
dy=diff(y)
运行结果如下:
1.1.3积分的计算
MATLAB中积分常用函数为int,格式如下:
int(f,x,a,b)
其中f表示待积分的函数,x表示积分变量,而a,b则分别表示积分起始终止点。
例:
求下列变上限积分
分析:
积分运算大量运用于求面积体积等,此处选用的是一个变上限积分,属于有些典型的积分例子,但任然是根据函数格式就可以写出程序。
示例程序如下:
symskx;
y=k^2;
f=int(y,k,x,x^2)
运行结果如下:
1.1.4级数的计算
MATLAB中级数常用函数为symsum,格式如下:
r=symsum(s);r=symsum(s,v);r=symsum(s,a,b);r=symsum(s,v,a,b)
函数表达的意义是表达式s关于变量v从a到b求和。
例:
计算级数
的值,
示例程序如下:
symsk;
simple(symsum(1/k,1,10))
运行结果如下:
1.1.5求解代数方程
代数方程分为很多种,有简单有复杂,方法也有很多。
一般多项式方程的根可为实数,也可为复数,可用MATLAB符号工具箱中的solve()函数,MATLAB中求解代数方程常用函数solve格式如下:
[x,…]=solve(eqn1,eqn2,…,eqnn,’x,…’)
其中eqn表示的是式子,x等表示的是变量。
例:
求解方程2x+5=9
示例程序如下:
symsx
[x]=solve('2*x+5=9','x')
运行结果如下:
1.1.6求解常微分方程
未知的函数以及它的某些阶的导数连同自变量都由一已知方程联系在一起的方程称为微分方程。
如果未知函数是一元函数,称为常微分方程。
MATLAB中主要用dsolve求符号解析解。
dsolve的基本格式是:
s=dsolve(‘方程1’,‘方程2’,…,’初始条件1’,’初始条件2’…,’自变量’)
例:
求解微分方程
求解析解。
示例程序如下:
symsyt
s=dsolve('Dy=-y+t+1','y(0)=1','t');
simplify(s)
运行结果如下:
1.2矩阵的基本计算
矩阵计算是线性代数中的核心内容,其对于整个数学系统的计算方面的意义是十分巨大的,集中它的基本运算包括最大值、最小值、均值、方差、转置、逆、行列式、特征值的计算、矩阵的相乘、右除、左除、幂运算等等,下面将具体介绍。
矩阵的运算都是要以矩阵为基础的,本报告中决定选用一组矩阵来完成几乎全部可以完成的计算,那么首先就得生成矩阵了。
矩阵的定义和分配可以有多种方法。
最简单的方法是有方括号[]包围的逐行给定元素。
若定义一个标量,则方括号就不需要了。
相同行中的元素是由一行或多个空格‘’或一个逗号‘,’分隔,列由分号‘;’或回车键分隔。
没有结尾分号的每个命令在屏幕上显示出其结果。
若结尾带分号,就执行计算,但计算结果并不显示。
如定义3×3矩阵如下:
则在命令窗口输入:
A=[123;456;789]
B=[321;456;789]
屏幕显示结果为:
1.2.1矩阵的最大值、最小值
MATLAB中max函数可以表示求每一列的最大值,那么经过分析可以知道,先求出每一列的最大值然后求出这些最大值里面的最大值,下面以A矩阵为例。
示例程序如下:
y=max(A)
x=max(y)
运行结果如下:
对比A中数值发现结果是正确的。
MATLAB中求最小值的函数为min,求解思路与求最大值思路类似,仍然以矩阵A为例。
示例程序如下:
y=min(A)
x=min(y)
运行结果如下:
对比A中数值发现结果是正确的。
1.2.2矩阵的均值、方差
MATLAB中求解矩阵均值的函数是mean,它的具体用法如下:
mean(A,1)表示对列取平均,mean(A,2)表示对行取平均,mean(A)则默认为mean(A,1)。
下面以矩阵A分别举例,程序示例如下:
a=mean(A)
b=mean(A,2)
运行结果如下:
观察可知,a,b分别显示出了矩阵行列的均值。
如果想求矩阵的均值可以进行2次操作。
示例程序如下:
c=mean(a)
运行结果如下:
可以观察到c的值就是矩阵b所有值的均值。
MATLAB中求解矩阵方差的函数是var,它的常用格式是V=var(X),如果X是一个矩阵,var(X)返回一个包含矩阵X每一列方差的行向量。
下面以矩阵B来示例,程序如下:
d=var(var(B))
运行结果如下:
1.2.3矩阵的转置
矩阵的一个重要的运算是转置,如果A是一个实数矩阵,那么它被转置时,第1行变成第1列,第2行变成第2列,依此类推,一个m×n矩阵变为一个n×m矩阵。
如果矩阵是方阵,那么这个矩阵在主对角线反映出来。
MATLAB中求转置的函数是“’”,以A为例,编程如下:
e=A’
运行结果如下:
可以观察到矩阵A转置成了矩阵e。
1.2.4矩阵的逆、行列式
实际中求矩阵的逆跟行列式均要求矩阵是方阵,MATLAB中求逆的函数是inv,格式为Y=inv(X),求矩阵的函数是det,格式为Y=det(X)。
下面仍以矩阵A为例来编程示例,如下:
f=inv(A)
运行结果如下:
编程如下:
c=det(A)
运行结果:
1.2.5矩阵特征值的计算
矩阵的特征值的求解,就是找到方程组的解:
其中λ是一个标量,x是一个长度为n的列向量。
标量λ是A的特征值,x是相对应的特征向量。
对于实数矩阵A来说,特征值和特征向量可能是复数。
一个n×n的矩阵有n个特征值,表示为
。
求矩阵的特征值和特征向量可用eig函数。
Eig(A)求包含矩阵A的特征值的向量。
[V,D]=eig(A)产生一个矩阵A的特征值在对角线上的对角矩阵D和矩阵
V,它的列是相应的特征向量,,满足AV=VD,下面以矩阵A为例来演示。
编程如下:
[V,D]=eig(A)
运行结果如下:
1.2.6矩阵的相乘
假定有两个矩阵A和B,若A为m×n矩阵,B为n×p矩阵,则C=A×B为m×p矩阵。
元素
是A的第i行和B的第j列的点积。
对于方阵,也定义了积BA,但其结果通常与AB不同。
MATLAB中求矩阵的乘积直接用符号*即可,下面以A、B矩阵为例来分别演示AB与BA区别。
示例程序如下:
c=A*B
d=B*A
运行结果如下:
对比可以知道,AB与BA的结果是有区别的。
1.2.7矩阵右除和左除
在MATLAB中,有两个矩阵除法的符号,左除“\”和右除“/”。
如果A是一个非奇异方阵,那么A\B和B/A对应A的逆与B的左乘和右乘,即分别等价于命令inv(A)*B和B*inv(A)。
可是,MATLAB执行它们时是不同的,且在MATLAB中求解一个系统用左除比用逆和乘法所需的运算次数要少。
令R=B/A,L=A\B,下面仍然以A、B为例来演示。
示例程序如下:
R=B/A
L=A\B
运行结果如下:
1.2.8矩阵的幂运算
对于二维方阵,A的p次乘方可以用A^p实现。
如果p是一个正整数,那么这个幂可以由许多矩阵乘法运算定义。
对于p=0,得到与A维数相同的同一个矩阵;当p<0时,如果A-1存在,可定义A^p,它是与inv(A)^(-p)相同。
A0=A^3,A1=A.^3,A2=A^-3
Ap0为3个A矩阵相乘,Ap1中的元素为A矩阵中相应元素的立方,矩阵Ap2为矩阵A的逆矩阵的乘积,A3为A0的逆矩阵。
以矩阵A为例,分别编程实例如下:
A0=A^3%3个A矩阵相乘
A1=A.^3%A矩阵中相应元素的立方
A2=A^-3%A的逆矩阵的乘积
A3=A0^-1%A0的逆矩阵
运行结果如下:
对比可以知道A0与A1显示了矩阵运算与元素运算的区别,A2跟A3是相同的,说明先逆后立方与先立方后逆效果一样。
1.3多项式的基本运算
多项式的运算,主要包括多项式加减乘除、多项式求导、求根和求值运算、多项式的部分分式展开、多项式的拟合、插值运算。
为方面计算,我选用两个典型的式子f(x)=x^3+2x^2+3x+4,g(x)=5x^2+6x+7.下文分别以f和g来代替它们。
1.3.1多项式的四则运算
多项式的四则运算就是包括加减乘除,其中加减运算可以直接用+、-来运算,它们的运算规则中注意要满足向量的长度相同,而乘除就得用函数了,其中乘法的计算函数是conv,它本来是卷积的意思,同时它也符合多项式函数的运算规则,除法运算是相乘的逆运算,但会有余子式。
下面以f,g为例来进行四则运算。
示例编程如下:
f=[1,2,3,4];
g=[5,6,7];
a=f+[0,g]%因为两个向量长度不同,而加运算要求长度相同,所以要补0
b=f-[0,g]%减法运算
c=conv(f,g)%乘法运算
[d,r]=deconv(c,f)%除法运算,因为还有余子式,所以选用相乘的结果除,使得结果干净
运行结果如下:
1.3.2多项式的求导、求根、求值
多项式的求导、求根、求值运算是多项式运算的又一大板块,其中多项式求导数的函数是polyder,调用格式是e=polyder(c),其中c表示的是待求导的函数式,然后求根运算的函数是roots或poly,其中roots是根据函数求多项式的根,它的调用格式是h=roots(c),c代表待求根的函数式,而poly函数是根据根求函数,格式是i=poly(h),表示根据h求函数i,然后求值运算的函数是polyval,将多项式的自变量赋予值z,则调用格式是j=polyval(f,z),表示当变量是1时,函数f的结果。
下面编程演示。
示例编程如下:
e=polyder(c)%求函数c的导数
h=roots(c)%求函数c的根
i=poly(h)%根据所求的根求函数
j=polyval(c,1)%当变量值为1时,函数c的值
运行结果如下:
1.3.3多项式的部分分式展开
函数residue可以将多项式之比用部分分式展开,也可以将一个部分分式表示为多项式之比。
其调用格式如下:
[r,p,k]=residue(a,b)返回多项式之比a/b的部分分式展开,参照下面公式。
[a,b]=residue(r,p,k)返回部分分式的多项式向量。
示例程序如下:
a=[23-41];
b=[1-32];
[r,p,k]=residue(a,b)%返回多项式之比a/b的部分分式展开
[c,d]=residue(r,p,k)%f返回部分分式的多项式向量
运行结果如下:
1.3.4多项式的拟合
多项式拟合用polyfit(x,y,n)来实现,n是拟合多项式的阶次。
调用函数polyfit常用格式为p=polyfit(x,y,n),x为变量,y为函数,n为阶数。
为了能形象说明问题,我采用绘图来演示。
示例程序如下:
x=linspace(0,2*pi,100);%定义向量,从0到2派分为100份
y=cos(x);%定义函数
t=polyfit(x,y,8);%8次拟合
y1=polyval(t,x);%根据拟合的结果求多项式的值
subplot(2,1,1),plot(x,y,'ro',x,y1,'g--')%作图
s=polyfit(x,y,3);%3次拟合
y2=polyval(s,x);%根据拟合的结果求多项式的值
subplot(2,1,2),plot(x,y,'ro',x,y2,'g--')%作图
运行结果如下:
对比可以知道高次拟合的效果要好一些。
1.3.5多项式插值运算
插值函数通常是分段的,,插值数据通过给定的数据点x,y。
插值函数一般地可表示为yi=interpi(x,y,xi,’method’)其中i代表几维插值可取1、2,xi为插值范围内的任意点集的x坐标,yi是插值后对应数据点集的坐标,method为插值函数的类型选项,有linear为线性,也是缺省项,cubic和cubicspline为三次样条等三样。
例:
已知某矩形温箱中3×5个测试点上的温度,求全箱的温度分布。
给定:
wid=1:
5;dep=1:
3;tem=[8281808284;7963616581;8484828586]
要求计算沿宽度和深度细分网格:
di=1:
0.2:
3;wi=1:
0.2:
5;交点温度。
示例程序如下:
wid=1:
5;dep=1:
3;
tem=[8388848285;8375697375;8485868788];
di=1:
0.2:
3;wi=1:
0.2:
5;
tc=interp2(wid,dep,tem,wi,di','cubic');%求温度,di必须变成列向量
mesh(wi,di,tc)%画三维图
运行结果如下:
三维图像显示出了所求各点的分布状况。
2基于MATLAB的信号调制与解调
2.1常规双边带幅度调制(DSB-AM)与解调
2.1.1DSB-AM调制原理与分析
在DSB-AM系统中,已调信号的幅度正比与消息信号。
这种调制通过使用乘法器完成,将消息信号吗m(t)与载波Accos(2πfct),如图1所示,表示为:
图1-1DSB-AM调制原理结构框图
其中
是载波,而m(t)是消息信号。
若以单频正弦信号调制为例,那么典型波形如图1-3所示。
原始信号
载波信号
调制信号
图1-2DSB-AM典型信号
现取u(t)的傅立叶变换,可以得到DSB-AM信号的频域表示为:
其中M(f)是m(t)的傅立叶变换。
很明显可以看出,这种调制方式将消息信号的频谱进行了搬移,并在幅度上乘以Ac/2,传输带宽Br是消息信号带宽的两倍,也就是说:
图1-3显示了一个典型的消息信号的频谱及其相对应的DSB-AM已调信号的频谱。
图1-3消息信号与DSB-AM已调信号的频谱
已调信号的功率为
其中Pm是消息信号的功率。
在DSB-AM通信系统中,信噪比SNR等于基带的SNR,也就是:
其中PR是接收到的功率(在接收端已调信号的功率),N0是噪声功率谱密度(假定为白噪声),W是信号噪声的带宽。
2.1.2常规双边带解调原理
调制过程的逆过程叫做解调。
AM信号的解调是把接收到的已调信号
还原为调制信号
。
包络检波器输出的信号中,通常含有频率为
的波纹,可由LPF滤除。
图1-4串联型包络检波器电路及其输出波形
由
的波形可见,AM信号波形的包络与输入基带信号
成正比,故可以用包络检波的方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 基本 运算 信号 调制 解调