当前位置:文档之家› 通信原理实验报告

通信原理实验报告

通信原理实验报告作者: 日期:通信原理实验报告实验名称:实验一—数字基带传输系统的—MATLAB方真实验二模拟信号幅度调制仿真实验班级:10通信工程三班_________学号:2010550920 ________________姓名:彭龙龙______________指导老师:王仕果______________实验一数字基带传输系统的MATLA仿真一、实验目的1、熟悉和掌握常用的用于通信原理时域仿真分析的MATLAB函数;2、掌握连续时间和离散时间信号的MATLAB产生;3、牢固掌握冲激函数和阶跃函数等函数的概念,掌握卷积表达式及其物理意义,掌握卷积的计算方法、卷积的基本性质;4、掌握利用MATLAB计算卷积的编程方法,并利用所编写的MATLAB程序验证卷积的常用基本性质;5、掌握MATLAB描述通信系统中不同波形的常用方法及有关函数,并学会利用MATLAB求解系统功率谱,绘制相应曲线。

基本要求:掌握用MATLAB描述连续时间信号和离散时间信号的方法,能够编写MATLAB程序,实现各种常用信号的MATLA实现,并且以图形的方式再现各种信号的波形。

二、实验内容1、编写MATLAB程序产生离散随机信号2、编写MATLAB程序生成连续时间信号3、编写MATLAB程序实现常见特殊信号三、实验原理从通信的角度来看,通信的过程就是消息的交换和传递的过程。

而从数学的角度来看,信息从一地传送到另一地的整个过程或者各个环节不外乎是一些码或信号的交换过程。

例如信源压缩编码、纠错编码、AMI编码、扰码等属于码层次上的变换,而基带成形、滤波、调制等则是信号层坎上的处理。

码的变换是易于用软件来仿真的。

要仿真信号的变换,必须解决信号与信号系统在软件中表示的问题。

3.1信号及系统在计算机中的表示3.1.1时域取样及频域取样一般来说,任意信号s(t)是定义在时间区间(-R, +R)上的连续函数,但所有计算机的CPU都只能按指令周期离散运行,同时计算机也不能处理( -R, + R)这样一个时间段。

为此将把s(t)按区间T, T截短为2 2 S T(t),再对S T(t)按时间间隔△ t均匀取样,得到取样点数为:仿真时用这个样值集合来表示信号TNt ts(t)。

显然△ t反映了仿真系统对信号波形的分辨率,(3-1)△ t越小则仿真的精确度越高。

据通信原理所学,信号被取样以后,对应的频谱时频率的周期函数,其重复周期是—。

如果信号的最高频率为f H,那么必须有f H W 丄才能保证不发t 2 t生频域混叠失真。

设1B s2 t则称B s为仿真系统的系统带宽。

如果在仿真程序中设定的采样间隔是△(3-2) t,那么不能用此仿真程序来研究带宽大于 B s 的信号或系统。

此外,任意信号 s(t)的频谱S ⑴通常来说也是定义在时间区间(-R, +8)上的连续函 数,所以仿真频域特性时,也必须把 S(f)截短并取样。

考虑到系统带宽为 B s ,便把频谱的截 短区间设计为[-B s , B s ]然后再按间隔△ f 均匀取样,得到取样点数为:T t0.5 s 。

N3.1.2频域分析限于篇幅,在此不介绍 MATLAB 中关于傅立叶变换的有关函数。

为了方便仿真,我们利用MATLAB 提供的函数编写了两个函数 t2f 和f2t 。

t2f 的功能是做傅立叶变换,f2t 的功 能是做傅立叶反变换,它们的引用格式分别为X=t2f(x)及x=f2t(X),其中x 是时域信号x(t)j截短并采样所得的取样值矢量,X 是对x(t)的傅立叶变换X(f)截短并采样所得的取样值矢量。

将式(3-2)代入式(3-3 )得Nf2B s(3-3)Nf N(3-4)1同样,信号在频域被离散后,对应到时域也是一个周期信号,其周期为—。

如果时域f截短时间为T ,那么必须T < 1/df 才能保证不发生频域混叠失真。

也就是说,如果仿真程序 中设定得频域采样间隔是△ f ,那么就不能仿真截短时间超过 域的取样间隔设计为:f 1 T将式(3-5)代入式(3-1 )得(3-5)Nt N(3-6)这样一来,时域的总取样点数及频域的总取样点数都相等, 要提高仿真的精度,就必须降低时域取样间隔△t 及频域取样间隔厶f ,也就是要加大总取样点数 N 。

这说明仿真的精度与仿真系统的运算量直接有关。

为了处理上的方便,我们今后规定采样点数N 为2的整幕。

举例来说,例如设计要求的系统带宽为1MHz ,频域最好分辨率为 10kHz ,那么据此可求得 Nf2B s200,则取N = 256。

对应的其 他参数 为 B s = 1MHz ,绝 7.8kHz , T -N128的信号。

所以,可以把频这两个函数分别如附录所示。

我们关心的另一个指标是信号的功率谱密度,任意信号若x 是时域取样值矢量,X 是对应的傅立叶变换,那么x 的功率谱便为矢量P (X.conj(X))/T 。

3.2与随机信号产生相关的指令 3.2.1高斯噪声的产生由于函数randn(1,N)产生N 个互不相关的、均值为零、方差为1的高斯随机数,所以可 用它来产生高斯白噪声。

设仿真系统的取样点数是N ,系统带宽为B s ,矢量x nO* Bs* randn(1,N)的总功率为nO* Bs ,最高频率分量为 B s ,并且各样点的值互不相关,故它代表双边功率谱密度为(W/Hz )的白噪声。

23.2.2 随机码序列的产生语句round(rand(1,M))产生M 个取值1、0等概的随机码。

函数 round 表示四舍五入。

函数rand 产生均匀分布于区间[0, 1]的随机数。

语句sign(rand(1,M))产生M 个取值土 1等概的随机码。

函数sign(x)对矢量x 的元素取正 负号,而高斯数randn 取正负数的概率是相等的。

3.2.3产生数字随机信号的一般方法一般来说,随机数字信号可以直接或间接表示成 PAM 信号(请参阅通信原理教材)°PAM信号是指所有形如 s(t)a i g(t iT s )的信号。

它可以用如下的等效模型来表示:i二2讷一见)旳2工气8(—迟)1J=―■ *J=—W-■ -------------- --- A旳- -------------------- 4故对所有不同的数字信号,都可以用相同的方法来产生。

1)产生随机序列矢量 aa=roun d(ra nd(1,M));为了方便起见,一般规定 a 的长度M 是2的整幕。

2)产生冲击序列信号imp(t)imp=zeros(1,N); imp(1:L:M)=a/dt;矢量imp 代表信号imp(t)。

P S (f)T im2E(f) T,其中S r (f)是s(t)截短后所得信号 S T (t)的傅立叶变化,S T (f)2 是T 内的功率谱。

对于 MATLAB 仿真系统,s(t)的功率谱的定义是Sr(t)的能量谱,是S T (t)在截短时间其中,N是imp的矢量长度,M是码元矢量a中的码元数,L是每码元内的采样点数。

现规定M、N都是2的整幕,于是L自然也是2的整幕。

3) 产生PAM数字信号s(t)s(t) imp(t) g(t)g(t)代表脉冲波形,例如,升余弦滚降要求的波形有:sin t/T s cos(a t/T s) g(t) 2t/T s 1 (2a t/T s)2设g(t)的傅立叶变换为G(f),s(t)的傅立叶变换为S(f),则有:S(f) t2f(imp).*G %t2f为傅立叶变换函数s(t) f 2t(S(f)) %f2t为傅立叶反变换函数设矢量s代表数字信号s(t),矢量g代表脉冲波形g(t),矢量G代表其频谱G(f)。

那么s的产生方法是:s=c on v(imp,g);其中,函数conv表示卷积。

卷积后s的长度是length(imp)+length(g)-1。

扣除延迟时间及拖尾时间后,数字信号为:Ii=fi nd(g=max(g));s=s([1:N]+ii(1));也可用频域的方法产生数字信号s(t):s=f2t(t2f(imp).*G);注意,此时imp的点数应与g或G相同。

若g的宽度小于imp,则应用零补齐。

3.3信号的仿真3.3.1连续时间信号的仿真如前所述,MATLAB有很多内部数学函数可以用来产生这样的数字序列,例如sin()、cos()、exp()等函数可以直接产生一个按照正弦、余弦或指数规律变化的数字序列。

例如,运行如下程序%program1_1% This program is used to gen erate a sinu soidal sig nal and draw its plotclear,close all,dt = 0.01;t = -2:dt:2;x = sin (2*pi*t);plot(t,x)title('Sinusoidal signal x(t)')% Clear all variables% Close all figure win dows% Specify the step of time variable% Specify the in terval of time% Gen erate the sig nal% Open a figure window and draw the plot of x(t)xlabel('Time t (sec)')在《通信原理》课程中,单位阶跃信号u(t)和单位冲激信号S (t)是二个非常有用的信号。

它们的定义如下:3C陆側=1*S(f) = 0,/ >0/ <0这里分别给出相应的简单的产生单位冲激信号和单位阶跃信号的扩展函数。

产生单位冲激信号的扩展函数为:function y = delta(t) dt =0.01;y = (u(t)-u(t-dt))/dt;产生单位阶跃信号的扩展函数为:% Un it step functionfunction y = u(t) y = (t>=0); % y= 1 for t > 0, else y = 0 请将这二个MATLAB函数分别以delta和u为文件名保存在work文件夹中,以后,就可以像教材中的方法使用单位冲激信号S (t)和单位阶跃信号u(t)。

3.3.2离散时间信号的仿真程序Program1_2用来产生离散时间信号x[n]=sin(0.2 n°n)% Program1_2% This program is used to gen erate a discrete-time sinu soidal sig nal and draw its plot clear, % Clear all variablesclose all, % Close all figure win dowsn = -10:10; % Specify the in terval of timex = sin( 0.2*pi* n); % Gen erate the sig nalstem (n,x) % Open a figure window and draw the plot of x[n]title ('S in usoidal sig nal x[n]')xlabel ('Time in dex n')请仔细阅读该程序,比较程序Program1_1和Program1_2中的不同之处,以便自己编程时能够正确使用这种方法方针连续时间信号和离散时间信号。

相关主题