logo资料库

通原软件实验报告(包括FM,AM,眼图,频谱图等).doc

第1页 / 共43页
第2页 / 共43页
第3页 / 共43页
第4页 / 共43页
第5页 / 共43页
第6页 / 共43页
第7页 / 共43页
第8页 / 共43页
资料共43页,剩余部分请下载后查看
通信原理软件实验 实验报告 班级: 姓名: 班内序号: 学号: 电话 : 北 京 邮 电 大 学 Beijing University of Posts and Telecommunications
【实验目的】 本实验是“通信原理”的一个组成部分。在本实验中我们使用的软件工具是 MATLAB。 设计本实验的目的是希望你在以下几方面有所收获; 1 、会 MATLAB 软件的最基本运用。 MATLAB 是一种很实用的数学软件,它易学易用。MATLAB 对于许多的通信仿真类问题来说是 比较合适的。 2、了解计算机仿真的基本原理及方法,知道怎样通过仿真的方法去研究通信问题。 3、加深对通信原理课有关内容的理解。 【实验任务】 1、掌握 matlab 的基本操作及了解基本的仿真方法,分析运行范例程序。 2、按以下要求编制仿真程序并调试运行,其中第四项为可选内容 (1)绘出正弦信号波形及频谱 (2)单极性归零(RZ)波形及其功率谱,占空比为 50% (3)升余弦滚降波形的眼图及其功率谱。滚降系数为 0.5。发送码元取值为 0、2。 (4)最佳基带系统的 Pe~Eb\No 曲线,升余弦滚降系数 a=0.5,取样值的偏差是 Ts/4。 ( 5 ) Pe~Eb\No , 升 余 弦 滚 降 系 数 a=0.5 , 取 样 时 间 无 偏 差 , 但 信 道 是 多 径 信 道 , C(f)=abs(1-0.5*exp(-j*2*pi*f*dt)),dt=Ts/2。 (6)仿真数字基带传输系统,包括输入、输出信号波形及其功率谱,眼图(升余弦滚降系 数 a=0.5),Pe~Eb\No 曲线,取样时间无偏差。 (7)自选题(部分相应系统、模拟调制、数字频带传输)。 【实验原理】 从数学的角度来看,信息从一地传送到另一地的整个过程或者其各个环节不外乎是一些 码或信号的变换过程。例如信源压缩编码、纠错编码、AMI 编码、扰码等属于码层次上的变 换,而基带成形、滤波、调制等则是信号层次上的。码的变换是易于用软件来仿真的。要仿 真信号的变换,必须解决信号与信号系统在软件中表示的问题。
时域取样及频域取样 一般来说,任意信号 s t( ) 是定义在时间区间   ,  上的连续函数,但所有计算机的 CPU 都只能按指令周期离散运行,同时计算机也不能处理   ,  这样一个时间段。即计 算机处理信号是离散运行,有限域的。 对 s(t)的解决方法:我们把 s t( ) 按区间   T 2 , T 2   截短为 s tT ( ) ,再对 sT 按时间间隔 )(t t 均匀取样得到 T t 个样值。仿真时我们用这个样值集合来表示信号 s t( ) 。这样,将会出 现一系列新的问题,现在从频域分析其频谱的变化。显然 t 反映了仿真系统对信号波形的 分辨率, t 越小则仿真的精确度越高。据通信原理所学,信号被取样以后的频谱是频率的 周期函数,其重将(-inf, inf)截短为[-T/2,T/2],再将[-T/2,T/2]的信号均匀采样,采样点 数为 N=T/dt 1.采样信号 xs(i)及其频谱 Xs(ω) 若连续时间信号 x(t)被数采卡 DAQ 中的采样器以等时间间隔 T 采样,则采样时刻 0、T、 2T…所 取得信号 x(t)的瞬时值,就构成了连续信号 x(t)的离散时间序列 xs(i),i=0、1、2… 如下图所示。图一:连续信号与离散信号 当 x(t)的频谱为 X(ω)时,则 xs(i)的频谱 Xs(ω),如下图所示。
为保证不出现频率混叠失真,要求: 取 Bs  1 2 1 t   Hf 2   2  H t  1  t  Bs 定义为仿真系统的带宽。 即 2 Hf , 从以上的推导可以看出:信号的时间采样间隔一定,则仿真信号的带宽也就相应定了, 反之仿真信号的带宽一定,则信号的时间采样间隔也就相应定了。 2 对频谱 S(f)的处理 将频域为无限域的频域信号 S(f)截短为[-Bs,Bs]域的信号 S sB ( f ) ,再将带宽为[-Bs,
Bs]的信号 S sB ( f ) 均匀采样,采样点数为 Nf=2Bs/df。 为保证不出现时域波形重叠失真,要求 1 f   T , 取 1 t   T , 即 T  1 f  从以上的推导可以看出:信号的频率采样间隔一定,则仿真信号的周期也就相应定了, 反之仿真信号的周期一定,则信号的频率采样间隔也就相应定了。 下面我们看看时域取样点数和频域取样点数的关系: 时域取样点数: 将 T  1 f  带入 N t  T t  , 得 N t  1 t  f 频域取样点数: 将 B s  1 2  t 带入 N f  s 2 B f  , 得 N f  1 t  f 所以,时域取样点数与频域取样点数取值相同,这样就可以保证连续时间信号及连续频 率信号均不出现重叠失真。 以上是防止重叠失真。 另 外 , 为 了 提 高 仿 真 精 度 , 要 求 提 高 取 样 点 数 N , 其 取 值 为 2 的 冪 次 , N  k ,2 k  ,2,1,0 为了处理上的方便,我们今后规定采样点数 N 为 2 的整幂。举例来说,假如设计要求的系统 带宽为 1MHz,频域最小分辨率为 10KHz。那么据此可求得 ,取 。对应的其它参数为 , ,,。 频域分析 限于篇幅,我们将不向大家介绍 MATLAB 中关于傅里叶变换的有关函数。为了方便仿真,我 们利用 MATLAB 的提供的函数编写了两个函数 t2f 及 f2t。t2f 的功能是作傅氏变换,f2t 的 功能是作傅氏反变换,它们的引用格式分别为 X=t2f(x)及 x=f2t(X),其中 x 是时域信号 截 短并采样所得的取样值矢量,X 是对 的傅氏变换 截短并采样所得的取样值矢量。这两个函 数存放在\...\matlab\work\目录中。 我们关心的另一个指标是信号的功率谱密度,任意信号 的功率谱的定义是 ,其中 是 截短 后的傅氏变换, 是 的能量谱, 是 在截短时间内的功率谱。对于仿真系统,若 x 是时域取 样值矢量,X 是对应的傅氏变换,那么 x 的功率谱便为矢量 P=(X.*conj(X))/T。 3.随机信号的产生
高斯噪声的产生 由于函数 randn(1,N)产生 N 个互不相关的、均值为零、方差为 1 的高斯随机数,所以可用 它来产生白高斯噪声。设仿真系统的取样点数是 N,系统带宽为 ,矢量 x=n0*Bs*randn(1,N) 的总功率为 n0*Bs,最高频率分量为 Bs,并且各样点的值互不相关,故它代表双边功率谱密 度为 的白噪声。 4.随机码序列的产生 语句 round(rand(1,M))产生 M 个取值 1、0 等概的随机码。函数 round 表示四舍五入。函数 rand 产生均匀分布于区间 的随机数。 语句 sign(randn(1,M))产生 M 个取值 1 等概的随机码。函数 sign(x)对矢量 x 的元素取正 负号,而高斯数 randn 取正负值的概率是相等的. 5.数字基带传输系统 6.产生随机码序列矢量 a。 为了方便起见,我们规定 a 的长度 M 是 2 的整幂。 1) 产生冲击序列信号 。 设矢量 imp 代表信号 。imp 可如下产生: imp=zeros(1,N); imp(1:L:N)=a/dt; 其中 N 是 imp 的矢量长度,M 是码元矢量 a 中的码元数,L 是每码元内的样点数。我们 规定 M、N 都是 2 的整幂,于是 L 自然也是 2 的整幂。 3) 产生数字信号 设矢量 s 代表数字信号 ,矢量 g 代表脉冲波形 ,矢量 G 代表其频谱 。那么 s 的产生方法
是: s=conv(imp,g); 其中,函数 conv 表示卷击。卷击后 s 的长度是 length(imp)+length(g)-1。扣除延迟 时间及拖尾时间收,数字信号为: ii=find(g==max(g)); s=s([1:N]+ii(1)); 也可用频域的方法产生数字信号 : s=f2t(t2f(imp).*G); 注意此时,imp 的点数应与 g 或 G 相同。若 g 的宽度小于 imp,则应用零补齐。 7.NRZ 及 RZ 信号的产生 对于采用归零(RZ)及不归零(NRZ)矩形脉冲波形的数字信号,可以用简单的方法信号矢 量 s。设 a 是码元矢量,N 是总取样点数,M 是总码元数,L 是每个码元内的点数,那么 NRZ 信号可这样获得: s=zeros(1,N); for ii=1:L, s(ii+[0:M-1]*L)=a;,end 对于,若 Rt 是要求的占空比,dt 是仿真系统的时域采样间隔,则 RZ 信号的产生方法是 s=zeros(1,N); for ii=1:Rt/dt, s(ii+[0:M-1]*L)=a;,end 8.眼图 眼图是数字信号在示波器上重复扫描得到的显示图形。若示波器的扫描范围是 Na 个码元, 那么画眼图的方法是: tt=[0:dt:Na*L*dt]; hold on for ii=1:Na*L:N-N*L plot(tt,s(ii+[1:Na*L])); end 9.误码率 取样判决 设矢量 a 表示发送的码序列,矢量 y 表示在判决点观测到的叠加有噪声的接收信号,假设信 道无时延。接收机在每隔一个码元间隔 取一个点作为判决量。所有取样结果构成一个矢量
b:若取样时刻无偏差则 b=y(1:L:N),若取样时刻有 的恒定偏差,则 b=y(1+k:L:N)。 若判决门限为 Vth,则判决结果是 c=sign(b-Vth)(双极性结果 1)或 c=(sign(b-Vth)+1)/2 (单极性结果 0、1)。 10.误码率测量 若在一次试观察中发送的码元是长度为 M 的矢量 a,对应的判决结果是矢量 c。误码数 是 a 与 c 中不相同的符号数,即 n_err=length(find(a~=c)),于是误码率为 Pe=n_err/M。 为了提高测量精度,可加大 M 或者重复多次观察。多次观察时,误码率为总误码数除以总码 元数。 【实验结果及分析】 实验一 绘出正弦信号波形及频谱 源程序 global dt df t f N close all k=input('取样点数=2^k, k=[10]'); if isempty(k), k=10; end N=2^k dt=0.02; df=1/(N*dt); T=N*dt; Bs=N*df/2; figure(1) %ms %KHz %截短时间 %系统带宽 set(1,'Position',[30,100,450,300]) %设定图1的窗口位置及大小 figure(2) set(2,'Position',[530,100,450,300]) %设定图2的窗口位置及大小 t=linspace(-T/2,T/2,N); %时域横坐标 %频域横坐标 f=linspace(-Bs,Bs,N); f0=1; %f0=1KHz s=sin(2*pi*f0*t); S=t2f(s); a=f2t(S); P=S.*conj(S)/T; %S是s的傅氏变换 %功率谱 figure(1) plot(t,a,'b') grid axis([-2,+2,-1.5,1.5']) xlabel('t (ms)') ylabel('s(t) (V)') title('正弦信号波形') figure(2) as=abs(S);
分享到:
收藏