当前位置:文档之家› 通信原理实验教程(MATLAB)

通信原理实验教程(MATLAB)

通信原理实验教程(MATLAB)
通信原理实验教程(MATLAB)

实验教程

目录

实验一:连续时间信号与系统的时域分析-------------------------------------------------6

一、实验目的及要求---------------------------------------------------------------------------6

二、实验原理-----------------------------------------------------------------------------------6

1、信号的时域表示方法------------------------------------------------------------------6

2、用MATLAB仿真连续时间信号和离散时间信号----------------------------------7

3、LTI系统的时域描述-----------------------------------------------------------------11

三、实验步骤及内容--------------------------------------------------------------------------15

四、实验报告要求-----------------------------------------------------------------------------26 实验二:连续时间信号的频域分析---------------------------------------------------------27

一、实验目的及要求--------------------------------------------------------------------------27

二、实验原理----------------------------------------------------------------------------------27

1、连续时间周期信号的傅里叶级数CTFS---------------------------------------------27

2、连续时间信号的傅里叶变换CTFT--------------------------------------------------28

3、离散时间信号的傅里叶变换DTFT -------------------------------------------------28

4、连续时间周期信号的傅里叶级数CTFS的MATLAB实现------------------------29

5、用MATLAB实现CTFT及其逆变换的计算---------------------------------------33

三、实验步骤及内容----------------------------------------------------------------------34

四、实验报告要求-------------------------------------------------------------------------48 实验三:连续时间LTI系统的频域分析---------------------------------------------------49

一、实验目的及要求--------------------------------------------------------------------------49

二、实验原理----------------------------------------------------------------------------------49

1、连续时间LTI系统的频率响应-------------------------------------------------------49

2、LTI系统的群延时---------------------------------------------------------------------50

3、用MATLAB计算系统的频率响应--------------------------------------------------50

三、实验步骤及内容----------------------------------------------------------------------51

四、实验报告要求-------------------------------------------------------------------------58 实验四:调制与解调以及抽样与重建------------------------------------------------------59

一、实验目的及要求--------------------------------------------------------------------------59

二、实验原理----------------------------------------------------------------------------------59

1、信号的抽样及抽样定理---------------------------------------------------------------59

2、信号抽样过程中的频谱混叠----------------------------------------------------------62

3、信号重建--------------------- ----------------------------------------------------------62

4、调制与解调----------------------------------------------------------------------------------64

5、通信系统中的调制与解调仿真---------------------------------------------------------66

三、实验步骤及内容------------------------------------------------------------------------66

四、实验报告要求---------------------------------------------------------------------------75 实验五:连续时间LTI系统的复频域分析----------------------------------------------76

一、实验目的及要求------------------------------------------------------------------------76

二、实验原理--------------------------------------------------------------------------------76

1、连续时间LTI系统的复频域描述--------------------------------------------------76

2、系统函数的零极点分布图-----------------------------------------------------------------77

3、拉普拉斯变换与傅里叶变换之间的关系-----------------------------------------------78

4、系统函数的零极点分布与系统稳定性和因果性之间的关系------------------------79

5、系统函数的零极点分布与系统的滤波特性-------------------------------------------80

6、拉普拉斯逆变换的计算-------------------------------------------------------------81

三、实验步骤及内容------------------------------------------------------------------------82

四、实验报告要求---------------------------------------------------------------------------87 附录:授课方式和考核办法-----------------------------------------------------------------88

实验一信号与系统的时域分析

一、实验目的

1、熟悉和掌握常用的用于信号与系统时域仿真分析的MA TLAB函数;

2、掌握连续时间和离散时间信号的MATLAB产生,掌握用周期延拓的方法将一个非周期信号进行周期信号延拓形成一个周期信号的MATLAB编程;

3、牢固掌握系统的单位冲激响应的概念,掌握LTI系统的卷积表达式及其物理意义,掌握卷积的计算方法、卷积的基本性质;

4、掌握利用MA TLAB计算卷积的编程方法,并利用所编写的MA TLAB程序验证卷积的常用基本性质;

掌握MATLAB描述LTI系统的常用方法及有关函数,并学会利用MATLAB求解LTI系统

基本要求:掌握用MATLAB描述连续时间信号和离散时间信号的方法,能够编写MA TLAB 程序,实现各种信号的时域变换和运算,并且以图形的方式再现各种信号的波形。掌握线性时不变连续系统的时域数学模型用MATLAB描述的方法,掌握卷积运算、线性常系数微分方程的求解编程。

二、实验原理

信号(Signal)一般都是随某一个或某几个独立变量的变化而变化的,例如,温度、压力、

声音,还有股票市场的日收盘指数等,这些信号都是随时间的变化而变化的,还有一些信号,例如在研究地球结构时,地下某处的密度就是随着海拔高度的变化而变化的。一幅图片中的每一个象素点的位置取决于两个坐标轴,即横轴和纵轴,因此,图像信号具有两个或两个以上的独立变量。

在《信号与系统》课程中,我们只关注这种只有一个独立变量(Independent variable)的信号,并且把这个独立变量统称为时间变量(Time variable),不管这个独立变量是否是时间变量。

在自然界中,大多数信号的时间变量都是连续变化的,因此这种信号被称为连续时间信号(Continuous-Time Signals)或模拟信号(Analog Signals),例如前面提到的温度、压力和声

音信号就是连续时间信号的例子。但是,还有一些信号的独立时间变量是离散变化的,这种信号称为离散时间信号。前面提到的股票市场的日收盘指数,由于相邻两个交易日的日收盘指数相隔24小时,这意味着日收盘指数的时间变量是不连续的,因此日收盘指数是离散时间信号。

而系统则用于对信号进行运算或处理,或者从信号中提取有用的信息,或者滤出信号中某些无用的成分,如滤波,从而产生人们所希望的新的信号。系统通常是由若干部件或单元组成的一个整体(Entity)。系统可分为很多不同的类型,例如,根据系统所处理的信号的不同,系统可分为连续时间系统(Continuous-time system)和离散时间系统(Discrete-time system),根据系统所具有的不同性质,系统又可分为因果系统(Causal system)和非因果系统(Noncausal system)、稳定系统(Stable system)和不稳定系统(Unstable system)、线性系统(Linear system)和非线性系统(Nonlinear system)、时变系统(Time-variant system)和时不变系统

(Time-invariant system)等等。

然而,在信号与系统和数字信号处理中,我们所分析的系统只是所谓的线性时不变系统,这种系统同时满足两个重要的基本性质,那就是线性性和时不变性,通常称为线性时不变(LTI)系统。

1. 信号的时域表示方法

1.1将信号表示成独立时间变量的函数

例如x(t)=sin(ωt) 和x[n]=n(0.5)n u[n]

分别表示一个连续时间信号和一个离散时间信号。在MATLAB中有许多内部函数,可以直接完成信号的这种表达,例如:

sin():正弦信号

cos():余弦信号

exp():指数信号

1.2用信号的波形图来描述信号

用函数曲线表示一个信号,图1.1就是一个连续时间信号和一个离散时间信号的波形图。

图1.1 连续时间信号与离散时间信号的波形图

1.3将信号用一个数据序列来表示

对于离散时间信号,还可以表示成一个数的序列,例如:

x[n]={...., 0.1, 1.1, -1.2, 0, 1.3, ….}

↑n=0

在《信号与系统》和《数字信号处理》课程中,上述三种信号的描述方法是经常要使用的。

2 用MATLAB仿真连续时间信号和离散时间信号

在MATLAB中,无论是连续时间信号还是离散时间信号,MATLAB都是用一个数字序列来表示信号,这个数字序列在MATLAB中叫做向量(vector)。通常的情况下,需要与时间变量相对应。

如前所述,MA TLAB有很多内部数学函数可以用来产生这样的数字序列,例如sin()、cos()、exp()等函数可以直接产生一个按照正弦、余弦或指数规律变化的数字序列。

2.1连续时间信号的仿真

程序Program1_1是用MATLAB对一个正弦信号进行仿真的程序,请仔细阅读该程序,并在计算机上运行,观察所得图形。

% This program is used to generate a sinusoidal signal and draw its plot clear, % Clear all variables

close all, % Close all figure windows

dt = 0.01; % Specify the step of time variable t = -2:dt:0.2; % Specify the interval of time x = sin(2*pi*t); % Generate the signal

plot(t,x) % Open a figure window and draw the plot of x(t) title('Sinusoidal signal x(t)') xlabel('Time t (sec)')

常用的图形控制函数

axis([xmin,xmax,ymin,ymax]):图型显示区域控制函数,其中xmin 为横轴的显示起点,xmax 为横轴的显示终点,ymin 为纵轴的显示起点,ymax 为纵轴的显示终点。

有时,为了使图形具有可读性,需要在所绘制的图形中,加上一些网格线来反映信号的幅度大小。MATLAB 中的grid on/grid off 可以实现在你的图形中加网格线。

grid on :在图形中加网格线。 grid off :取消图形中的网格线。

x = input(‘Type in signal x(t) in closed form:’) 在《信号与系统》课程中,单位阶跃信号u(t) 和单位冲激信号δ(t) 是二个非常有用的信号。它们的定义如下

,0)(1

)(≠==?∞

-∞

=t t dt t t δδ 1.1(a)

??

?≤>=0

,

00,1)(t t t u 1.1(b)

这里分别给出相应的简单的产生单位冲激信号和单位阶跃信号的扩展函数。产生单位冲激信号的扩展函数为:

function y = delta(t) dt = 0.01;

y = (u(t)-u(t-dt))/dt;

产生单位阶跃信号的扩展函数为: % Unit step function function y = u(t)

y = (t>=0); % y = 1 for t > 0, else y = 0

请将这二个MA TLAB 函数分别以delta 和u 为文件名保存在work 文件夹中,以后,就可以像教材中的方法使用单位冲激信号δ(t) 和单位阶跃信号u(t)。

2.2离散时间信号的仿真

程序Program1_2用来产生离散时间信号x[n]=sin(0.2πn)。

% Program1_2

clear, % Clear all variables

close all, % Close all figure windows

n = -10:10; % Specify the interval of time

x = sin(0.2*pi*n); % Generate the signal

stem (n,x) % Open a figure window and draw the plot of x[n]

title ('Sinusoidal signal x[n]')

xlabel ('Time index n')

请仔细阅读该程序,比较程序Program1_1和Program1_2中的不同之处,以便自己编程时能够正确使用这种方法方针连续时间信号和离散时间信号。

程序Program1_3用来仿真下面形式的离散时间信号:

x[n]={...., 0.1, 1.1, -1.2, 0, 1.3, ….}

↑n=0

% Program1_3

% This program is used to generate a discrete-time sequence

% and draw its plot

clear, % Clear all variables

close all, % Close all figure windows

n = -5:5; % Specify the interval of time, the number of points of n is 11.

x = [0, 0, 0, 0, 0.1, 1.1, -1.2, 0, 1.3, 0, 0]; % Generate the signal

stem(n,x,'.') % Open a figure window and draw the plot of x[n]

grid on,

title ('A discrete-time sequence x[n]')

xlabel ('Time index n')

由于在程序的stem(n,x,'.') 语句中加有'.'选项,因此绘制的图形中每根棒条线的顶端是一个实心点。

如果需要在序列的前后补较多的零的话,可以利用函数zeros(),其语法为:

zeros(1, N):圆括号中的1和N表示该函数将产生一个一行N列的矩阵,矩阵中的所有元素均为零。利用这个矩阵与序列x[n]进行组合,从而得到一个长度与n相等的向量。

例如,当x[n]={ 0.1, 1.1, -1.2, 0, 1.3} 时,为了得到程序Program1_3中的序列,

↑n=0

可以用这个MA TLAB语句x = [zeros(1,4) x zeros(1, 2)] 来实现。用这种方法编写的程序如下:% Program1_4

% This program is used to generate a discrete-time sinusoidal signal

% and draw its plot

clear, % Clear all variables

close all, % Close all figure windows

n = -5:5; % Specify the interval of time

x = [zeros(1,4), 0.1, 1.1, -1.2, 0, 1.3, zeros(1,2)]; % Generate the sequence

stem (n,x,'.') % Open a figure window and draw the plot of x[n]

grid on,

xlabel ('Time index n')

离散时间单位阶跃信号u[n]定义为 ??

?<≥=0

,

00,1][n n n u 1.2

离散时间单位阶跃信号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个子图中。

2.3信号的时域变换 2.

3.1 信号的时移

信号的时移可用下面的数学表达式来描述:

设一个连续时间信号为x(t),它的时移y(t) 表示为:

y(t) = x(t - t 0) 1.3

其中,t 0为位移量。若t 0为正数,则y(t)等于将x(t)右移t 0秒之后的结果。反之,若t 0为负数,则y(t)等于将x(t)左移t 0秒之后的结果。

在MA TLAB 中,时移运算与数学上习惯表达方法完全相同。 程序Program1_5对给定一个连续时间信号x(t) = e -0.5t u(t),对它分别左移2秒钟和右移2秒钟得到信号x 1(t) = e -0.5(t+2)u(t+2)和x 2(t) = e -0.5(t-2)u(t-2)。

% Program1_5

% This program is used to implement the time-shift operation

% on a continuous-time signal and to obtain its time-shifted versions % and to draw their plots. clear,close all, t = -5:0.01:5;

x = exp(-0.5*t).*u(t); % Generate the original signal x(t)

x1 = exp(-0.5*(t+2)).*u(t+2); % Shift x(t) to the left by 2 second to get x1(t) x2 = exp(-0.5*(t-2)).*u(t-2); % Shift x(t) to the right by 2 second to get x2(t) subplot(311)

plot(t,x) % Plot x(t) grid on,

title ('Original signal x(t)') subplot (312)

grid on,

title ('Left shifted version of x(t)')

subplot (313)

plot (t,x2) % Plot x2(t)

grid on,

title ('Right shifted version of x(t)')

xlabel ('Time t (sec)')

2.3.2 信号的时域反褶

对一个信号x[n]的反褶运算在数学上表示为

y[n] = x[-n] 1.4 这种反褶运算,用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的范围指定在一个正负对称的时间区间即可。

2.3.3 信号的时域尺度变换

信号x(t)的时域尺度变换在数学描述为

y(t) = x(at), 1.5

其中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 < a < 0时,y(t) = x(at),y(t)是将x(t)在时间轴上的扩展同时翻转而得到;

当a < -1时,y(t) = x(at),y(t)是将x(t)在时间轴上的压缩同时翻转而得到;

由此可见,信号的时域尺度变换,除了对信号进行时域压缩或扩展外,还可能包括对信号的时域反褶运算。实际上,MA TLAB完成式1.5的运算,并不需要特殊的处理,按照数学上的常规方法即能完成。

2.3.4周期信号

在《信号与系统》课程中,周期信号是一类非常重要的信号。给定一个信号x(t)或x[n],如果满足

x(t) = x(t+kT) 1.6

x[n] = x[n+kN] 1.7

则该信号叫做周期信号。其中,k为任意整数,T和N为常数,通常称为信号的基本周期或最小周期。

周期信号可以看作是一个时限的非周期信号经过周期延拓之后形成的。在数字信号处理中,周期延拓这一信号处理方法非常重要。

下面的程序段,就是将一个非周期信号x1(t) = e-2t[u(t)-u(t-2)]经过周期延拓之后而得到一个周期信号:

clear, close all;

t = -4:0.001:4;

T = 2; x = 0;

for k = -2:2;

x = x+exp(-2*(t-k*T)).*(u(t-k*T)-u(t-(k+1)*T));

end

仔细阅读该程序,可以发现其算法就是:

∑∞-∞=-

=

k

kT

t

x

t

x)

(

)(

1

1.8

由于k无法计算到无穷,而是以有限值加以替代,反映到有限宽度图形窗口中得到的效果完全符合要求。

3 LTI系统的时域描述

3.1线性时不变系统

在分析LTI系统时,有关LTI系统的两个重要的性质是必须首先掌握和理解的。这就是线性性(Linearity)和时不变性(Time-invariance)。所谓线性性就是指系统同时满足齐次性和叠加性。这可以用下面的方法来描述。

假设系统在输入信号x1(t)作用时的响应信号为y1(t),在输入信号x2(t)作用时的响应信号为y2(t),给定两个常数a和b,如果当输入信号为x(t)时系统的响应信号为y(t),且满足

x(t) = x1(t) + x2(t) 1.9(a)

y(t) = y1(t) + y2(t) 1.9(b)

则该系统具有叠加性(Additivity)。如果满足

x(t) = ax1(t) 1.10(a)

y(t) = ay1(t) 1.10(b)

则该系统具有齐次性(Homogeneity)。一个系统如果是线性系统的话,那么这个系统必须同时

具有叠加性和齐次性。

又假设系统在输入信号x(t)作用时的响应信号为y(t),对一个给定时间常数t 0,如果当输入信号为x(t-t 0)时,系统的响应信号为y(t-t 0)的话,则该系统具有时不变性。

同时具有线性性和时不变性的系统,叫做线性时不变系统,简称LTI 系统。LTI 系统有连续时间LTI 系统和离散时间LTI 系统之分。连续时间系统的输入和输出信号都必须是连续时间信号,而离散时间系统的输入和输出信号都必须是离散时间信号。

3.2 LTI 系统的单位冲激响应和卷积模型

给定一个连续时间LTI 系统,在系统的初始条件为零时,用单位冲激信号δ(t)作用于系统,

此时系统的响应信号称为系统的单位冲激响应(Unit impulse response ),一般用h(t)来表示。需要强调的是,系统的单位冲激响应是在激励信号为δ(t)时的零状态响应(Zero-state response )。 离散时间LTI 系统的单位冲激响应的定义与连续时间LTI 系统的单位冲激响应相同,只是离散时间单位冲激函数δ[n]的定义有所不同。

系统的单位冲激响应是一个非常重要的概念,对于一个系统,如果我们知道了该系统的单位冲激响应,那么,该系统对任意输入信号的响应信号都可以求得。也就是说,系统的输入信号x(t)、x[n]和输出信号y(t)、y[n]之间的关系可以用一个数学表达式来描述,这个数学表达式为

?

∞--=τττd t h x t y )()()( 1.11(a)

∑∞

-∞

=-=

k k n h k x n y ][][][ 1.11(b)

这个表达式就是LTI 系统的卷积模型,它是根据系统的线性性和时不变性以及信号可以分解成单位冲激函数经推理得到的。这个表达式实际上告诉了我们一个重要的结论,那就是,任意LTI 系统可以完全由它的单位冲激响应h(t)/h[n]来确定。由于系统的单位冲激响应是零状态响应,故按照式1.11求得的系统响应也是零状态响应。式1.11中的积分运算叫做卷积积分,求和运算叫做卷积和,是描述连续时间系统输入输出关系的一个重要表达式。

3.3卷积的计算

卷积的计算通常可按下面的五个步骤进行(以卷积积分为例):

1. 该换两个信号波形图中的横坐标,由t 改为τ,τ变成函数的自变量;

2. 把其中一个信号反褶,如把h(τ)变成h(-τ);

3. 把反褶后的信号做移位,移位量是t ,这样t 是一个参变量。在τ坐标系中,t > 0时图形右移, t < 0时图形左移。

5. 完成相乘后图形的积分。

对于两个时限信号(Time-limited signal ),按照上述的五个步骤,作卷积积分运算时,关键是正确确定不同情况下的积分限。只要正确地确定了积分限都能得到正确定积分结果。尽管如此,在时域中计算卷积积分,总体上来说是一项比较困难的工作。

程序convlution_demo 用来演示上述作卷积积分运算的五个步骤。本程序较为复杂,不建议读者读懂该程序,只需执行这个程序,观看程序执行过程中有关卷积积分的运算过程,以便于理解这五个步骤。

借助MATLAB 的内部函数conv()可以很容易地完成两个信号的卷积积分运算。其语法为:y = conv(x,h)。其中x 和h 分别是两个作卷积运算的信号,y 为卷积结果。

为了正确地运用这个函数计算卷积,这里有必要对conv(x,h)做一个详细说明。conv(x,h)函数实际上是完成两个多项式的乘法运算。例如,两个多项式p 1和p 2分别为:

432231+++=s s s p 和 1234232+++=s s s p

这两个多项式在MATLAB 中是用它们的系数构成一个行向量来表示的,如果用x 来表示多项式p 1,h 表示多项式p 2,则x 和h 分别为 x = [1 2 3 4] h = [4 3 2 1] 在MA TLAB 命令窗口依次键入

>> x = [1 2 3 4]; >> h = [4 3 2 1]; >> y=conv(x,h)

在屏幕上得到显示结果:

y = 4 11 20 30 20 11 4 这表明,多项式p 1和p 2的乘积为:

411203020114234563++++++=s s s s s s p

正如前所述,用MATLAB 处理连续时间信号时,独立时间变量t 的变化步长应该是很小的,假定用符号dt 表示时间变化步长,那么,用函数conv()作两个信号的卷积积分时,应该在这个函数之前乘以时间步长方能得到正确的结果。也就是说,正确的语句形式应为:y = dt*conv(x,h)。

对于定义在不同时间段的两个时限信号x(t),t 0 ≤ t ≤ t 1,和h(t),t 2 ≤ t ≤ t 3。 如果用y(t)来表示它们的卷积结果,则y(t)的持续时间范围要比x(t)或h(t)要长,其时间范围为t 0+t 2 ≤ t ≤ t 1+t 3。这个特点很重要,利用这个特点,在处理信号在时间上的位置时,可以很容易地将信号的函数值与时间轴的位置和长度关系保持一致性。

根据给定的两个连续时间信号x(t) = t[u(t)-u(t-1)]和h(t) = u(t)-u(t-1),编写程序,完成这两个信号的卷积运算,并绘制它们的波形图。范例程序如下:

% Program1_6

% This program computes the convolution of two continuou-time signals clear;close all;

t0 = -2; t1 = 4; dt = 0.01;

x = u(t)-u(t-1); h = t.*(u(t)-u(t-1));

y = dt*conv(x,h); % Compute the convolution of x(t) and h(t) subplot(221)

plot(t,x), grid on, title('Signal x(t)'), axis([t0,t1,-0.2,1.2]) subplot(222)

plot(t,h), grid on, title('Signal h(t)'), axis([t0,t1,-0.2,1.2]) subplot(212)

t = 2*t0:dt:2*t1; % Again specify the time range to be suitable to the % convolution of x and h.

plot(t,y), grid on, title('The convolution of x(t) and h(t)'), axis([2*t0,2*t1,-0.1,0.6]), xlabel('Time t sec')

在有些时候,做卷积和运算的两个序列中,可能有一个序列或者两个序列都非常长,甚至是无限长,MA TLAB 处理这样的序列时,总是把它看作是一个有限长序列,具体长度由编程者确定。实际上,在信号与系统分析中所遇到的无限长序列,通常都是满足绝对可和或绝对可积条件的信号。因此,对信号采取这种截短处理尽管存在误差,但是通过选择合理的信号长度,这种误差是能够减小到可以接受的程度的。若这样的一个无限长序列可以用一个数学表达式表示的话,那么,它的长度可以由编程者通过指定时间变量n 的范围来确定。

例如,对于一个单边实指数序列x[n] = 0.5n u[n],通过指定n 的范围为0 ≤n ≤ 100,则对应的x[n]的长度为101点,虽然指定更宽的n 的范围,x[n]将与实际情况更相符合,但是,注意到,当n 大于某一数时,x[n]之值已经非常接近于0了。对于序列x[n] = 0.5n u[n],当n = 7时,x[7] = 0.0078,这已经是非常小了。所以,对于这个单边实指数序列,指定更长的n 的范围是没有必要的。当然,不同的无限长序列具有不同的特殊性,在指定n 的范围时,只要能够反映序列的主要特征就可以了。

3.4 用线性常系数微分方程描述LTI 系统

线性常系数微分方程或差分方程是描述LTI 系统的另一个时域模型。一个连续时间LTI 系统,它的输入信号x(t)输出信号y(t)关系可以用下面的微分方程来表达

∑∑===M k k

k k N

k k k k dt t x d b dt t y d a 0

0)

()( 1.12 式1.12中,max (N, M)定义为系统的阶。式1.12描述了LTI 系统输入信号和输出信号的一种隐性关系(Implicit relationship )。为了求得系统响应信号的显式表达式(Explicit expression ),必须对微分方程和差分方程求解。

在MA TLAB 中,一个LTI 系统也可以用系统微分方程的系数来描述,例如,一个LTI 连续时间系统的微分方程为

)()(2)

(3)(2

2t x t y dt t dy dt

t y d =++

表示系统微分方程右边和左边的系数,按照微分运算的降阶排列。

MATLAB 的内部函数impulse(),step(),initial(),lsim() 可以用来计算并绘制连续时间LTI 系统的单位冲激响应,单位阶跃响应,零输入响应和任意信号作用于系统的零状态响应。这些函数的用法描述如下:

h= impulse(num, den, T) 和 impulse(num, den, T) s = step(num, den, T) 和 step(num, den, T)

y = lmis(num, den, x, t) 和 lmis(num, den, x, t)

函数impulse(),step()用来计算由num 和den 表示的LTI 系统的单位冲激响应和单位阶跃响应,响应的时间范围为0~T ,其中den 和num 分别为系统微分方程左右两边的系数向量,T 为指定的响应的终点时间。h 和s 的点数默认值为101点。由此可以计算时间步长为dt = T/(101-1)。不带返回值的函数如impulse(num, den, T)和step(num, den, T)将直接在屏幕上绘制系统的单位冲激响和单位阶跃响应曲线。带返回值的函数如y = lmis(num, den, x, t)和y = lmis(num, den, x, t),用来计算由num 和den 表示的LTI 系统在输入信号x 作用下的零状态响应。其中t 为指定的时间变化范围,x 为输入信号,它们的长度应该是相同的。如带返回参数y ,则将计算的响应信号保存在y 中,若不带返回参数y ,则直接在屏幕上绘制输入信号x 和响应信号y 的波形图。

例如,编写程序,计算并绘制由下面的微分方程表示的系统的单位冲激响应h(t),单位阶跃响应s(t)。

)(8)(2)

(3)(2

2t x t y dt t dy dt

t y d =++ MATLAB 范例程序如下:

% Program1_7

% This program is used to compute the impulse response h(t) and the step response s(t) of a % continuous-time LTI system clear, close all;

num = input('Type in the right coefficient vector of differential equation :'); den = input('Type in the left coefficient vector of differential equation :'); t = 0:0.01:8;

x = input('Type in the expression of the input signal x(t):'); subplot(221), impulse(num,den,8); subplot(222), step(num,den,8)

三、实验内容及步骤

实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。

实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。

Q1-1:修改程序Program1_1,将dt改为0.2,再执行该程序,保存图形,看看所得图形的效

果如何?

dt = 0.01时的信号波形dt = 0.2时的信号波形

这两幅图形有什么区别,哪一幅图形看起来与实际信号波形更像?

答:

Q1-2:修改程序Program1_1,并以Q1_2为文件名存盘,产生实指数信号x(t)=e-2t。要求在

图形中加上网格线,并使用函数axis()控制图形的时间范围在0~2秒之间。然后执行该程序,保存所的图形。

修改Program1_1后得到的程序Q1_2如下:

% Program1_2

% This program is used to generate a sinusoidal signal and draw its plot

clear, % Clear all variables

close all, % Close all figure windows

dt = 0.2; % Specify the step of time variable

t = -2:dt:2; % Specify the interval of time

x = exp(-2*t); % Generate the signal

plot(t,x) % Open a figure window and draw the plot of x(t)

grid on;

title('Sinusoidal signal x(t)')

xlabel('Time t (sec)')

信号x(t)=e-0.5t的波形图

Q1-3:修改程序Program1_1,并以Q1_3为文件名存盘,使之能够仿真从键盘上任意输入的一个连续时间信号,并利用该程序仿真信号x(t)=e-2t。

修改Program1_1后得到的程序Q1_3如下:信号x(t)=e-2t的波形图

% Program1_3

clc

clear, % Clear all variables

close all, % Close all figure windows

dt = 0.01; % Specify the step of time variable

t = -2:dt:2; % Specify the interval of time

x = input('please input a signal,I will draw its plot for you Singnal x='); %Input the signal

plot(t,x) % Open a figure window and draw the plot of x(t)

xlabel('Time t (sec)')

grid on

%x=exp(-2*t)

此处粘贴图形

Q1-4:将实验原理中所给的单位冲激信号和单位阶跃信号的函数文件在MATLAB 文件编辑

器中编写好,并分别以以文件名delta 和u 存入work 文件夹中以便于使用。

抄写函数文件delta 如下: 抄写函数文件u 如下:

,

0)(1

)(≠==?∞

-∞

=t t dt t t δδ ??

?<≥=0

,

00,1][n n n u

Q1-5:修改程序Program1_4,并以Q1_5为文件名存盘,利用axis()函数,将图形窗口的横

坐标范围改为-2≤n ≤5,纵坐标范围改为-1.5≤ x ≤1.5。

修改Program1_4后得到的程序Q1_5如下: 信号的波形图

此处粘贴图形 >> % Program1_5

% This program is used to generate a discrete-time sinusoidal signal % and draw its plot

clear, % Clear all variables

close all, % Close all figure windows n = -5:5; % Specify the interval of time

x = [zeros(1,4), 0.1, 1.1, -1.2, 0, 1.3, zeros(1,2)]; % Generate the sequence

axis([-2 5 -1.5 1.5])

grid on,

title ('A discrete-time sequence x[n]')

xlabel ('Time index n')

Q1-6:仿照前面的示例程序的编写方法,编写一个MA TLAB程序,以Q6为文件名存盘,使

之能够在同一个图形窗口中的两个子图中分别绘制信号x[n]=0.5|n| 和x(t)=cos(2πt)[u(t)-u(t-3)]。要求选择的时间窗能够表现出信号的主要部分(或特征)。

编写的程序Q1_6如下:

信号x[n]=0.5|n| 的波形图和信号x(t)=cos(2πt)[u(t)-u(t-3)]的波形图

Q1-7:根据示例程序的编程方法,编写一个MA TLAB程序,以Q1_7为文件名存盘,由给定

信号

x(t) = e-0.5t u(t)

求信号y(t) = x(1.5t+3),并绘制出x(t) 和y(t)的图形。

编写的程序Q1_7如下:

信号x(t)的波形图和信号y(t) = x(1.5t+3) 的波形图

此处粘贴图形此处粘贴图形

Q1-8:给定一个离散时间信号x[n] = u[n] – u[n-8],仿照示例程序Program1_5,编写程序Q1_8,

产生x[n]的左移序列x1[n] = x[n+6]和右移序列x2[n] = x[n-6],并在同一个图形窗口的三个子图中分别绘制这三个序列的图形。

编写的程序Q1_8如下:

信号波形图

此处粘贴图形

Q1-9:编写程序Q1_9,使之能够接受以键盘方式输入的定义在不同时间段的两个不同连续时间信号并完成卷积运算,分别绘制这两个信号及其卷积的结果的图形,图形按照2 2分割成四个子图。

编写的程序Q1_9如下:

信号x (t)、h(t)和x (t)*h(t)的波形图

此处粘贴图形

Matlab通信系统仿真实验报告

Matlab通信原理仿真 学号: 2142402 姓名:圣斌

实验一Matlab 基本语法与信号系统分析 一、实验目的: 1、掌握MATLAB的基本绘图方法; 2、实现绘制复指数信号的时域波形。 二、实验设备与软件环境: 1、实验设备:计算机 2、软件环境:MATLAB R2009a 三、实验内容: 1、MATLAB为用户提供了结果可视化功能,只要在命令行窗口输入相应的命令,结果就会用图形直接表示出来。 MATLAB程序如下: x = -pi::pi; y1 = sin(x); y2 = cos(x); %准备绘图数据 figure(1); %打开图形窗口 subplot(2,1,1); %确定第一幅图绘图窗口 plot(x,y1); %以x,y1绘图 title('plot(x,y1)'); %为第一幅图取名为’plot(x,y1)’ grid on; %为第一幅图绘制网格线 subplot(2,1,2) %确定第二幅图绘图窗口 plot(x,y2); %以x,y2绘图 xlabel('time'),ylabel('y') %第二幅图横坐标为’time’,纵坐标为’y’运行结果如下图: 2、上例中的图形使用的是默认的颜色和线型,MATLAB中提供了多种颜色和线型,并且可以绘制出脉冲图、误差条形图等多种形式图: MATLAB程序如下: x=-pi:.1:pi; y1=sin (x); y2=cos (x); figure (1); %subplot (2,1,1); plot (x,y1); title ('plot (x,y1)'); grid on %subplot (2,1,2); plot (x,y2);

通信原理实验--数字基带传输仿真实验

数字基带传输实验 实验报告

一、实验目的 1、提高独立学习的能力; 2、培养发现问题、解决问题和分析问题的能力; 3、学习Matlab 的使用; 4、掌握基带数字传输系统的仿真方法; 5、熟悉基带传输系统的基本结构; 6、掌握带限信道的仿真以及性能分析; 7、通过观测眼图和星座图判断信号的传输质量。 二、系统框图及编程原理 1.带限信道的基带系统模型(连续域分析) ?输入符号序列―― ?发送信号―― ――比特周期,二进制码元周期 ?发送滤波器―― 或或 ?发送滤波器输出――

?信道输出信号或接收滤波器输入信号 (信道特性为1) ?接收滤波器―― 或或 ?接收滤波器的输出信号 其中 (画出眼图) ?如果位同步理想,则抽样时刻为 ?抽样点数值为(画出星座图) ?判决为 2.升余弦滚降滤波器 式中称为滚降系数,取值为, 是常数。时,带宽为Hz;时,带宽为Hz。此频率特性在内可以叠加成一条直线,故系统无码间干扰传输的最小符号间隔为s,或无码间干扰传输的最大符号速率为Baud。

相应的时域波形为 此信号满足 在理想信道中,,上述信号波形在抽样时刻上无码间干扰。 如果传输码元速率满足,则通过此基带系统后无码间干扰。 3.最佳基带系统 将发送滤波器和接收滤波器联合设计为无码间干扰的基带系统,而且具有最佳的抗加性高斯白噪声的性能。 要求接收滤波器的频率特性与发送信号频谱共轭匹配。由于最佳基带系统的总特性是确定的,故最佳基带系统的设计归结为发送滤波器和接收滤波器特性的选择。 设信道特性理想,则有

(延时为0) 有 可选择滤波器长度使其具有线性相位。 如果基带系统为升余弦特性,则发送和接收滤波器为平方根升余弦特性。 由模拟滤波器设计数字滤波器的时域冲激响应 升余弦滤波器(或平方根升余弦滤波器)的带宽为,故其时域抽样速率至少为,取,其中为时域抽样间隔,归一化为1。 抽样后,系统的频率特性是以为周期的,折叠频率为。故在一个周期内 以间隔抽样,N为抽样个数。频率抽样为,。 相应的离散系统的冲激响应为 将上述信号移位,可得因果系统的冲激响应。 5.基带传输系统(离散域分析) ?输入符号序列―― ?发送信号―― ――比特周期,二进制码元周期 ?发送滤波器――

通信原理实验报告-含MATLAB程序

通信原理实验报告 实验一 数字基带传输实验 一、实验目的 1、提高独立学习的能力; 2、培养发现问题、解决问题和分析问题的能力; 3、学习Matlab 的使用; 4、掌握基带数字传输系统的仿真方法; 5、熟悉基带传输系统的基本结构; 6、掌握带限信道的仿真以及性能分析; 7、通过观测眼图和星座图判断信号的传输质量。 二、实验原理 1. 带限信道的基带系统模型(连续域分析) 输入符号序列 ————{al } 发送信号 ————1 0()()L l d t al t lTb δ-==-∑ Tb 是比特周期,二进制码元周期 发送滤波器 ————GT(w)或GT (t )

发送滤波器输出 ———— 11 00()()*()()*()()L L l b T l T b T l l x t d t t a t lT g t a g t lT g δ--====-=-∑∑ 信道输出信号或接收滤波器输入信号()()()y t x t n t =+ 接收滤波器 ()R G ω或()R G f 接收滤波器输出信号 1 0()()*()()*()*()()*()()()L R T R R l b R l r t y t g t d t g t g t n t g t a g t lT n t -===+=-+∑ 其中2()()()j ft T R g t G f G f e df π∞ -∞=? 如果位同步理想,则抽样时刻为b l T ? 0 1l L =- 判决为 '{}l a 2. 升余弦滚降滤波器 1()||2s s H f T f T α-=≤; ()H f =111[1cos (||)]||2222s s s s s T T f f T T T παααα--++-<≤ ()H f = 10||2s f T α+> 式中α 称为滚降系数,取值为0 <α ≤1, T s 是常数。α = 0时,带宽为1/ 2T s Hz ;α =1时, 带宽为1/T s Hz 。此频率特性在(?1/(2T s ),1/(2T s ))内可以叠加成一条直线,故系统无码间干 扰传输的最小符号间隔为T s s ,或无码间干扰传输的最大符号速率为1/T s Baud 。相应的时 域波形h (t )为 222sin /cos /()/14/s s s s t T t T h t t T t T παππα=?- 此信号满足

matlab验证时域采样定理实验报告

通信原理实验报告实验名称:采样定理 实验时间: 201211日年12月 指导老师:应娜 学院:计算机学院 级:班 学号: 姓名:

通信原理实验报告 一、实验名称 MATLAB验证低通抽样定理 二、实验目的 1、掌握抽样定理的工作原理。 2、通过MATLAB编程实现对抽样定理的验证,加深抽样定理的理解。同时训练应用计算机分析问题的能力。 3、了解MATLAB软件,学习应用MATLAB软件的仿真技术。它主要侧重于某些理论知识的灵活运用,以及一些关键命令的掌握,理解,分析等。 4、计算在临界采样、过采样、欠采样三种不同条件下恢复信号的误差,并由此总结采样频率对信号恢复产生误差的影响,从而验证时域采样定理。 三、实验步骤 1、画出连续时间信号的时域波形及其幅频特性曲线,信号为 f(x)=sin(2*pi*80*t)+ cos(2*pi*30*t); 2、对信号进行采样,得到采样序列,画出采样频率分别为80Hz,110 Hz,140 Hz时的采样序列波形; 3、对不同采样频率下的采样序列进行频谱分析,绘制其幅频曲线,对比各频率下采样序列和的幅频曲线有无差别。 4、对信号进行谱分析,观察与3中结果有无差别。 5、由采样序列恢复出连续时间信号,画出其时域波形,对比与原连续时间信号的时域波形。 四、数据分析 (1)部分程序分析: f=[fs0*k2/m2,fs0*k1/m1]; %设置原信号的频率数组 axis([min(t),max(t),min(fx1),max(fx1)]) %画原信号幅度频谱 f1=[fs*k2/m2,fs*k1/m1]; %设置采样信号的频率数组 fz=eval(fy); %获取采样序列 FZ=fz*exp(-j*[1:length(fz)]'*w); %采样信号的离散时间傅里叶变换 TMN=ones(length(n),1)*t-n'*T*ones(1,length(t)); 由采样信号恢复原信号fh=fz*sinc(fs*TMN); %. (2)原信号的波形与幅度频谱:

通信原理matlab实验1

实验一 设计任务: 用MatLib仿真一个BFSK通信系统,基本参数: 1)fc=1000Hz; 2)Rb=100bps; 3)信息序列:“Hello world”的ASCII 实验与报告基本要求: 1)Matlab程序,要点旁注(可打印后手写); 2)绘出信号波形,绘出信号PSD; 3)给出解调后的信息序列; 4)将信息重复3遍以上,FSK信号保存为WAV文件格式,使用音频播放,聆听;M文件: wave.m function[t,mt]=wave(m,dt,fs) l=length(m); mt=[]; ddt=1/fs; n=floor(dt*fs); m_add=ones(1,n); for i=1:l if(m(i)) mt=[mt,m(i),m_add]; else mt=[mt,m(i),m_add*0]; end t=(1:((n+1)*l))*ddt; end my_filter.m function[num,den]=my_filter(wp,ws,ap,as) if nargin<4 as=15; end if nargin<4 ap=3; end [n,wn]=buttord(wp,ws,ap,as); [num,den]=butter(n,wn); end 代码:

f0=800;%‘0’码载波频率 f1=1200;%‘1’码载波频率 fs=4000;%采样频率 Rb=100;%比特率 dt=1/Rb;%一个比特发送时间 A0=2;%调制幅度 A1=2;%相干解调幅度 miu=0;sigma=0.3;%miu:高斯白噪声均值,sigma:高斯白噪声均方差 str='Hello world';%信号字符串 m_dec=abs(str);%将信号字符串转换成ASCII码(十进制) m_bin=dec2bin(m_dec,8); m_bin=abs(m_bin)-48;%将十进制转换成8比特二进制矩阵 m=[]; for i=1:size(m_bin,1) m=[m,m_bin(i,:)]; end%将二进制转换成行向量 [t,m]=wave(m,dt,fs);%对信号采样 mt_f1=m.*cos(2*pi*f1*t)*A0;%频率f1调制 mt_f0=(~m).*cos(2*pi*f0*t)*A0;%频率f0调制 mt=mt_f1+mt_f0;%发送信号 l=length(mt); subplot(2,1,1);plot(t,mt); grid on;xlabel('t/s');title('m(t)');%发送信号波形subplot(2,1,2);periodogram(mt,[],l,fs);grid on;%发送信号PSD

通信原理实验教程(MATLAB)

实验教程

目录 实验一:连续时间信号与系统的时域分析-------------------------------------------------6 一、实验目的及要求---------------------------------------------------------------------------6 二、实验原理-----------------------------------------------------------------------------------6 1、信号的时域表示方法------------------------------------------------------------------6 2、用MATLAB仿真连续时间信号和离散时间信号----------------------------------7 3、LTI系统的时域描述-----------------------------------------------------------------11 三、实验步骤及内容--------------------------------------------------------------------------15 四、实验报告要求-----------------------------------------------------------------------------26 实验二:连续时间信号的频域分析---------------------------------------------------------27 一、实验目的及要求--------------------------------------------------------------------------27 二、实验原理----------------------------------------------------------------------------------27 1、连续时间周期信号的傅里叶级数CTFS---------------------------------------------27 2、连续时间信号的傅里叶变换CTFT--------------------------------------------------28 3、离散时间信号的傅里叶变换DTFT -------------------------------------------------28 4、连续时间周期信号的傅里叶级数CTFS的MATLAB实现------------------------29 5、用MATLAB实现CTFT及其逆变换的计算---------------------------------------33 三、实验步骤及内容----------------------------------------------------------------------34 四、实验报告要求-------------------------------------------------------------------------48 实验三:连续时间LTI系统的频域分析---------------------------------------------------49 一、实验目的及要求--------------------------------------------------------------------------49 二、实验原理----------------------------------------------------------------------------------49 1、连续时间LTI系统的频率响应-------------------------------------------------------49 2、LTI系统的群延时---------------------------------------------------------------------50 3、用MATLAB计算系统的频率响应--------------------------------------------------50 三、实验步骤及内容----------------------------------------------------------------------51 四、实验报告要求-------------------------------------------------------------------------58 实验四:调制与解调以及抽样与重建------------------------------------------------------59 一、实验目的及要求--------------------------------------------------------------------------59 二、实验原理----------------------------------------------------------------------------------59

现代通信原理实验---模拟调制的MATLAB实现

画出频谱、功率谱密度图。 dt=0.001; fmax=1; fc=10; T=5; N=T/dt; t=[0:N-1]*dt; mt=sqrt(2)*cos(2*pi*fmax*t); A=0; s_ssb=real(hilbert(mt).*exp(j*2*pi*fc*t)); [f,Xf]=FFT_SHIFT(t,s_ssb); PSD=(abs(Xf).^2)/T; figure(1) subplot(211); plot(t,s_ssb);hold on ; title('SSB 调制信号'); subplot(212); plot(f,PSD); axis([-2*fc 2*fc 0 1.5*max(PSD)]); title('SSB 信号功率谱'); xlabel('f'); xlabel('f'); 00.20.40.60.81 1.2 1.4 1.6 1.82 -2-1 1 2 SSB 调制信号 -20-15-10-50 51015200 1 2 3 SSB 信号功率谱 f

画出频谱、功率谱密度图。 dt=0.001; %时间采样频谱 fmax=1; %信源最高频谱 fc=10; %载波中心频率 T=5; %信号时长 N=T/dt; t=[0:N-1]*dt; mt=sqrt(2)*cos(2*pi*fmax*t); %信源 A=0; s_dsb=mt.*cos(2*pi*fc*t); [f,Xf]=FFT_SHIFT(t,s_dsb); %调制信号频谱 PSD=(abs(Xf).^2)/T; %调制信号功率谱密度 figure(1) subplot(211); plot(t,s_dsb);hold on; %画出DSB 信号波形 plot(t,A+mt,'r--'); %表示DSB 包络 plot(t,-A-mt,'r--'); title('DSB 调制信号及其包络'); xlabel('t'); subplot(212); %画出功率谱图形 plot(f,PSD); axis([-2*fc 2*fc 0 1.5*max(PSD)]); title('DSB 信号功率谱'); xlabel('f'); xlabel('f'); 00.51 1.52 2.53 3.54 4.55 -2-1 1 2 DSB 调制信号 及其包络 t -20-15-10-50 51015200 0.2 0.4 0.6 0.8 DSB 信号功率谱f

通信原理MATLAB仿真

小学期报告 实习题目通信原理Matlab仿真专业通信与信息工程 班级 学号 学生姓名 实习成绩 指导教师 2010年

通信原理Matlab仿真 目录 一、实验目的------------------------------------------------------------------------------------------------2 二、实验题目------------------------------------------------------------------------------------------------2 三、正弦信号波形及频谱仿真------------------------------------------------------------------------2 (一)通信原理知识--------------------------------------------------------------------------------------2 (二)仿真原理及思路--------------------------------------------------------------------------------------2 (三)程序流程图------------------------------------------------------------------------------------------- 3 (四)仿真程序及运行结果------------------------------------------------------------------------------3 (五)实验结果分析---------------------------------------------------------------------------------------5 四、单极性归零波形及其功率谱密度仿真--------------------------------------------------------5 (一)通信原理知识--------------------------------------------------------------------------------------6 (二)仿真原理及思路------------------------------------------------------------------------------ -------6 (三)程序流程图-------------------------------------------------------------------------------------------6 (四)仿真程序及运行结果--------------------------------------------------------------------------------6 (五)实验结果分析-------------------------------------------------------------------------------- -------6 五、升余弦滚降波形的眼图及功率谱密度仿真-------------------------------------------------8 (一)通信原理知识--------------------------------------------------------------------------------------8 (二)仿真原理及思路------------------------------------------------------------------------------ -------9 (三)程序流程图------------------------------------------------------------------------------- -----------9 (四)仿真程序及运行结果------------------------------------------------------------------------------10 (五)实验结果分析---------------------------------------------------------------------------------------11 六、PCM编码及解码仿真-----------------------------------------------------------------------------12 (一)通信原理知识---------------------------------------------------------------------------------- ---12 (二)仿真原理及思路------------------------------------------------------------------------------ ------ 13 (三)程序流程图------------------------------------------------------------------------------- -----------14 (四)仿真程序及运行结果------------------------------------------------------------------------------15 (五)实验结果分析---------------------------------------------------------------------------------------18 七、实验心得---------------------------------------------------------------------------- -------------------18

MATLAB仿真实例(通信原理)

一、实验目的 (1) 二、实验题目 (1) 三、实验内容 (1) 3.1傅里叶变换与傅里叶反变换 (1) 3.2题目一:正弦信号波形及频谱 (2) 3.2.1仿真原理及思路 (2) 3.2.2程序流程图 (3) 3.2.3仿真程序及运行结果 (3) 3.2.4实验结果分析 (5) 3.3题目二:单极性归零(RZ)波形及其功率谱 (5) 3.3.1仿真原理及思路 (5) 3.3.2程序流程图 (6) 3.3.3仿真程序及运行结果 (6) 3.3.4实验结果分析 (8) 3.4题目三:升余弦滚降波形的眼图及其功率谱 (8) 3.4.1仿真原理及思路 (8) 3.4.2程序流程图 (8) 3.4.3仿真程序及运行结果 (8) 3.4.4实验结果分析: (10) 3.5题目四:完成PCM编码及解码的仿真 (11) 3.5.1仿真原理及思路 (11) 3.5.2程序流程图 (12) 3.5.3仿真程序及运行结果 (12) 3.5.4实验结果分析 (15) 3.6附加题一:最佳基带系统的Pe~Eb\No曲线,升余弦滚降系数a=0.5,取 样值的偏差是Ts/4 (16) 3.6.1仿真原理及思路 (16) 3.6.2程序流程图 (16) 3.6.3仿真程序及运行结果 (16) 3.6.4实验结果分析 (18) 3.7附加题二:试作出Pe~Eb/No曲线。升余弦滚降系数a=0.5,取样时间无 偏差,但信道是多径信道,C(f)=|1-0.5-j2 ft|,t=T s/2 (18) 3.7.1仿真原理及思路 (18) 3.7.2程序流程图 (19) 3.7.3仿真程序及运行结果 (19) 3.7.4实验结果分析 (21) 四、实验心得 (21)

通信原理实验的MATLAB仿真讲义

数据通信原理实验的MATLAB仿真讲义 MATLAB原意为“矩阵实验室—MA-TrixLABoratory”,它是目前控制界国际上最流行的软件,它除了传统的交互式编程之外,还提供了丰富可靠的矩阵运算、图形绘制、数据和图象处理、Windows编程等便利工具。MATLAB还配备了大量工具箱,特别是还提供了仿真工具软件SIMULINK。SIMULINK这一名字比较直观地表明了此软件的两个显著的功能:SIMU(仿真)与LINK(连接),亦即可以利用鼠标在模型窗口上“画”出所需的系统模型,然后利用SIMULINK提供的功能对控制系统进行仿真和线性化分析。 MATLAB在80年代一出现,首先是在控制界得到研究人员的瞩目。随着MA T-LAB软件的不断完善,特别是仿真工具SIMULINK的出现,使MA TLAB的应用范围越来越广。 MATLAB的仿真环境(simulink)提供的系统模型库包括以下几个子模型库:Sources(输入源)、Sinks(输出源)、Discrete(离散时间系统)、Linear(线性环节)、Non-linear(非线性环节)、Connections(连接及接口)、Extras(其它环节)。打开子模型库,你会发现每个模型库都包含许多个子模块,比如Sources模型库里含有阶跃函数、正弦函数、白噪声函数、MATLAB空间变量、信号发生器等子模块。另外在Extras子模型库下还有一个BlockLibrary,集中了子模型库中最常用及其它常用的子模块,使用起来特别方便。通信系统一般都可以建立数学模型,在数学模型中,主要包括乘法器、加法器、信号发生器、滤波器等,而这些在上述的simulink 系统模型库中一般都可找到,对于没有的模块(如伪随机信号发生器),可自己根据掌握的技术生成所需的子模块,随时调用。这样就可根据数学模型,建立通信系统的仿真模型。 应用MA TLAB下的SIMULINK仿真工具可以很方便地进行通信系统仿真,利用SIMULINK仿真工具下的现有子模块进行仿真。 实验一.利用SIMULINK仿真常规调幅AM 滤波调制与卷积定理 从信号与线性系统分析观点看,滤波如图 1 是系统的冲激响应 h(t)对输入信号 x(t)的卷积作用,即 y(t) = x(t) * h(t) (1) 对应的频域分析是 Y( ω) = X(ω )H(ω ) (2) 即时域卷积处理对应于频域内相乘,(1)和(2)式是时域卷积定理 图 1 滤波图 2 调制 再看调制(包括解调、混频等)如图2, 是两信号相乘即 y(t) = x(t)c(t) (3) 对应的频域分析是 Y(ω)=1/2π[X(ω)*C(ω)](4)

通信原理Matlab仿真实验报告

通信原理Matlab仿真 实验报告 学号: 姓名:

实验一 1、利用Matlab 实现矩形信号串信号分解与合成 ⑴ Matlab 程序代码: ①矩形信号串信号分解与合成函数rectexpd (): function rectexpd(T1,T0,m) %矩形信号串信号分解与合成 %T1:矩信号区间为(-T1/2,T1/2) %T0:矩形矩信信号串周期 %m:傅里叶级数展开项次数 t1=-T1/2:0.01:T1/2;t2=T1/2:0.01:(T0-T1/2); t=[(t1-T0)';(t2-T0)';t1';t2';(t1+T0)']; n1=length(t1);n2=length(t2); %根据周期矩形 信号函数周期,计算点数 f=[ones(n1,1);zeros(n2,1);ones(n1,1);zeros(n2,1);ones(n1,1)]; %构造周期矩形信号串 y=zeros(m+1,length(t));y(m+1,:)=f'; figure(1); plot(t,y(m+1,:)); %绘制周期矩形信号串 axis([-(T0+T1/2)-0.5,(T0+T1/2)+0.5,0,1.2]); set(gca,'XTick',[-T0,-T1/2,T1/2,T0]); set(gca,'XTickLabel',{'-T0','-T1/2','T1/2','T0'}); title('矩形信号串');grid on; a=T1/T0; pause; %绘制离散幅度谱 freq=[-20:1:20];mag=abs(a*sinc(a*freq)); stem(freq,mag); x=a*ones(size(t)); for k=1:m %循环显示谐波叠加图形 pause; x=x+2*a*sinc(a*k)*cos(2*pi*t*k/T0); y(k,:)=x; plot(t,y(m+1,:));hold on; plot(t,y(k,:));hold off;grid on; axis([-(T0+T1/2)-0.5,[T0+T1/2]+0.5,-0.5,1.5]); title(strcat(num2str(k),'次谐波叠加')); xlabel('t');end pause; plot(t,y(1:m+1,:));grid on; axis([-T0/2,T0/2,-0.5,1.5]); title('各次谐波叠加');xlabel('t'); ②在命令窗口调用rectexpd ()函数: T1=5; T0=10; m=5; rectexpd(T1,T0,m) ⑵Matlab 仿真结果: -T0-T1/2T1/2T0 0.2 0.4 0.6 0.8 1矩形信号串 -20 -15 -10 -5 5 10 15 20 0.050.1 0.15 0.20.25 0.30.35 0.40.45 0.5

用MatLab仿真通信原理系列实验

目录 摘要 (2) 英文摘要(Abstract) (2) 第一章引言 (3) 第二章理论与方法 (4) 2.1 Matlab简介 (4) 2.2 Simulink简介 (6) 第三章设计方案 (7) 实验一:模拟线性调制 (7) 实验二:扰码与解扰 (13) 实验三:低通信号的抽样定理 (16) 第四章小结 (18) 致谢 (18) 参考文献 (18)

摘要:本毕业设计用Matlab中的建模仿真工具Simulink对通信原理实验进行仿真。作为系列实验的第一部分,包括模拟信号的线性调制解调(AM、DSB、SSB)过程、扰码与解扰实验和低通信号的抽样定理实验。论文中讲述了Matlab的基础知识、Simulink仿真操作方法以及在通信系统中的应用,对被仿真实验的基本原理也进行了简要介绍。通过本设计对构造通信原理虚拟实验室这一课题进行了初步的探索。 关键词:MatLab; Simulink; 通信仿真 Abstract:The title of my my graduate design is “Simulate Communication Experiments by Simulink”. Simulink is a simulation tool integrated in Matlab.Matlab is the most popular, influential and active language in the academic world, especially in the communities of automatic control, nowadays. It originated from matrix computation, and now becomes a highly integrated language. Simulink is an interactive tool for modeling, simulating, and analyzing dynamic systems. Commonly used in control system design, DSP design, communication system design, and other simulation applications, Simulink enables you to build graphical block diagrams, simulate dynamic systems, evaluate system performance, and refine your designs. I successfully simulate some experiments of communication principal,including: 1.Modulation of analogue linear signals:AM、DSB、SSB 2.Code and decode of digital signals 3.Sample principal of lowband signals Besides what is mentioned above,this paper gives us some introductions of how to use Matlab and Simulink as a freshman,through these introductions you can get some basic knowledge of Matlab. Communication principle is very abstract ,the simulated experiments are also hard to understand,so in order to make the simulated experiments understood easily,this paper offers detailed description about some correlative communication principle. Key W ords:MatLab; Simulink; Communition Simulation

通信原理实验报告-含MATLAB程序

通信原理实验报告 实验一 数字基带传输实验 一、实验目的 1、提高独立学习的能力; 2、培养发现问题、解决问题和分析问题的能力; 3、学习Matlab 的使用; 4、掌握基带数字传输系统的仿真方法; 5、熟悉基带传输系统的基本结构; 6、掌握带限信道的仿真以及性能分析; 7、通过观测眼图和星座图判断信号的传输质量。 二、实验原理 1. 带限信道的基带系统模型(连续域分析) 输入符号序列 ————{al } 发送信号 ————1 0()()L l d t al t lTb δ-==-∑ Tb 是比特周期,二进制码元周期 发送滤波器 ————GT(w)或GT (t ) 发送滤波器输出 ———— 11 00()()*()()*()()L L l b T l T b T l l x t d t t a t lT g t a g t lT g δ--====-=-∑∑ 信道输出信号或接收滤波器输入信号()()()y t x t n t =+ 接收滤波器 ()R G ω或()R G f 接收滤波器输出信号 1 0()()*()()*()*()()*()()()L R T R R l b R l r t y t g t d t g t g t n t g t a g t lT n t -===+=-+∑ 其中2()()()j ft T R g t G f G f e df π∞ -∞=? 如果位同步理想,则抽样时刻为b l T ? 0 1l L =- 判决为 '{}l a 2. 升余弦滚降滤波器 1()||2s s H f T f T α-=≤; 式中α 称为滚降系数,取值为0 <α ≤1, T s 是常数。α = 0时,带宽为1/ 2T s Hz ;α =1时,

通信原理实验报告新版

实验一常用信号的表示 【实验目的】 掌握使用MATLAB的信号工具箱来表示常用信号的方法。 【实验环境】 装有MATLAB6.5或以上版本的PC机。 【实验内容】 1. 周期性方波信号square 调用格式:x=square(t,duty) 功能:产生一个周期为2π、幅度为1±的周期性方波信号。其中duty表示占空比,即在信号的一个周期中正值所占的百分比。 例1:产生频率为40Hz,占空比分别为25%、50%、75%的周期性方波。如图1-1所示。 clear; % 清空工作空间内的变量 td=1/100000; t=0:td:1; x1=square(2*pi*40*t,25); x2=square(2*pi*40*t,50); x3=square(2*pi*40*t,75); % 信号函数的调用 subplot(311); % 设置3行1列的作图区,并在第1区作图plot(t,x1); title('占空比25%'); axis([0 0.2 -1.5 1.5]); % 限定坐标轴的范围 subplot(312); plot(t,x2); title('占空比50%'); axis([0 0.2 -1.5 1.5]); subplot(313); plot(t,x3); title('占空比75%'); axis([0 0.2 -1.5 1.5]);

图1-1 周期性方波 2. 非周期性矩形脉冲信号rectpuls 调用格式:x=rectpuls(t,width) 功能:产生一个幅度为1、宽度为width、以t=0为中心左右对称的矩形波信号。该函数横坐标范围同向量t决定,其矩形波形是以t=0为中心向左右各展开width/2的范围。Width 的默认值为1。 例2:生成幅度为2,宽度T=4、中心在t=0的矩形波x(t)以及x(t-T/2)。如图1-2所示。 t=-4:0.0001:4; T=4; % 设置信号宽度 x1=2*rectpuls(t,T); % 信号函数调用 subplot(121); plot(t,x1);

基于MATLAB的-PSK调制与解调-通信原理实验

1.实验目的和要求 用MATLAB实现二进制序列的调制与解调 2.实验内容 用角频率为2的载波信号实现序列[1 0 1 1 0 0 0 0]的调制。3.软件部分源代码 clear,close all, g=[1 0 1 1 0 0 0 0]; f=2; t=0:2*pi/99:2*pi; cp=[];sp=[]; mod=[];bit=[]; for n=1:length(g); if g(n)==0; die=-ones(1,100); se=zeros(1,100); else g(n)==1; die=ones(1,100); se=ones(1,100); end c=sin(f*t); cp=[cp die]; mod=[mod c]; bit=[bit se]; end psk=cp.*mod; subplot(2,1,1);plot(bit,'LineWidth',;grid on; title('Binary Signal'); axis([0 100*length(g) ]); subplot(2,1,2);plot(psk,'LineWidth',;grid on; title('PSK modulation'); axis([0 100*length(g) ]); 4.实验现象

5.实习心得 理解了psk的概念和原理以及如何使用matlab实现psk的调制与解调。加深了对专业知识的理解,同时又锻炼了matlab程序编写的技巧。虽然在实验中遇到许多的困难,但主要还是自己对所学的知识并没有完全的消化,以至对原理都是似懂非懂,浪费了较多的时间,另外通过此次的实验,对MATLAB软件的使用也有了更深一步的了解与掌握,通过此次实验不仅对原来通信原理知识得到了巩固,而且还学会了许多原来不会的东西。

相关主题
文本预览
相关文档 最新文档