2022年通信系统仿真作业 .pdf
《2022年通信系统仿真作业 .pdf》由会员分享,可在线阅读,更多相关《2022年通信系统仿真作业 .pdf(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课题名称 :通信系统仿真作业院 (系):计算机工程学院专业:通信工程班级:学生姓名:学号:指导教师:2012 年 6 月 14 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 24 页 - - - - - - - - - 2 目录设计一 随机信号分析 . 3设计二 模拟信号的数字化 . 7设计三 数字基带传输系统 . 13 设计四 模拟线性调制解调系统 . 17 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
2、 - 名师精心整理 - - - - - - - 第 2 页,共 24 页 - - - - - - - - - 3 设计一随机信号分析一、设计目的1 利用 MATLAB产生各种随机信号。2 利用 MATLAB计算随机信号的自相关函数和功率谱密度。3 掌握随机信号的自相关函数与功率谱密度的关系及其推导。二、设计原理1随机信号的产生在 MATLAB 中,提供了大量的随机数发生函数,其中rand 和 randn 是两类核心函数,rand 函数产生在 0,1区间服从均匀分布的随机信号;randn 函数产生服从均值为0,方差为1 的高斯分布的随机信号。其它类型的随机信号可以通过这两类随机信号变换而得到。(
3、1) rand 函数格式: X=rand(N) X=rand(M,N) (2) randn 函数格式: X=randn(N) X=randn(M,N) 2 随机信号的自相关函数在 MATLAB 中, xcorr 函数用于估计随机序列的自相关函数,其调用格式如下:(1) c=xcorr(x) 可计算出矢量x的自相关函数,矢量x表示序列)(nx。(2) c=xcorr(x,option) 中的 option 可用来指定相关选项:当 option=biased 时, xcorr 函数可计算自相关函数的有偏估计,即101)(mNnnmnxxxNmR当 option=unbiased 时, xcorr
4、函数可计算自相关函数的无偏估计,即101)(mNnnmnxxxmNmR当 option=coeff 时,xcorr 函数对序列进行归一化处理,使零滞后的自相关函数为1.0,即0m的自相关函数值归一化为1。当 option=none 时,即为缺省情况,不做归一化处理。3 随机信号的功率谱密度随机信号)(t的自相关函数与其功率谱密度之间互为傅立叶变换关系。即deRPj)()(dePRj)(21)(【例 1-1】在( -1/2,1/2)内产生一均匀分布的随机数N=1000 的离散时间序列,计算名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
5、 - 名师精心整理 - - - - - - - 第 3 页,共 24 页 - - - - - - - - - 4 该序列的自相关,定义为MmXXmNmRmnmNnnx,.,1 ,0,1)(1MmXXmNmnNmnn,.,2, 1,1同时,用计算)(mRx的离散傅里叶变换(DFT)求序列 nx 的功率谱。 DFT 定义为MMmMfmjxxemRmRDFT122)()(解 产生序列 nx, 计算自相关和功率谱)(mRDFTx的 MATLAB源程序在下面给出。应该值得注意的是,自相关函数和功率谱都呈现出显著的波动,因此有必要在几次实现上对样本的自相关求平均。本程序在随机过程的10 次实现上采用平均自
6、相关得到自相关函数和功率谱。源程序如下:echo on N=1000; M=50; t=0:1:50; s=-0.5:0.02:0.5; Rx_av=zeros(1,M+1); Sx_av=zeros(1,M+1); for j=1:10; % 取 10 次实现的整体平均X=rand(1,N)-1/2; % X 在 -1/2 和 1/2 之间取值Rx=Rx_est(X,M); % 本次实现的自相关函数Sx=fftshift(abs(fft(Rx); % 本次实现的功率谱密度Rx_av=Rx_av+Rx; % 自相关函数之和Sx_av=Sx_av+Sx; % 功率谱密度之和end; Rx_av=
7、Rx_av/10; % 自相关函数的整体平均Sx_av=Sx_av/10; % 功率谱密度的整体平均subplot(2,1,1); plot(t,Rx_av) xlabel( (a) 自相关函数 ); subplot(2,1,2); plot(s,Sx_av) xlabel( (b) 功率谱密度 ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 24 页 - - - - - - - - - 5 %- function Rx=Rx_est(X,M) % 估计随机序列X
8、的自相关函数% 计算出 Rx(0),Rx(1),.,Rx(M) % Rx(m) 代表实际中的Rx(m-1). N=length(X); Rx=zeros(1,M+1); for m=1:M+1 for n=1:N-m+1 Rx(m)=Rx(m)+X(n)*X(n+m-1); end; Rx(m)=Rx(m)/(N-m+1); end; 程序运行结果如图1.1 所示。图 1.1 例 1-1 的运行结果三、设计内容在( -1,1)内产生一均匀分布的随机数N=500 的离散时间序列,计算该序列的自相关函数和功率谱密度,并绘制图形。解: 本程序在随机过程的10 次实现上采用平均自相关得到自相关函数和功
9、率谱。源程序如下:echo on N=500; M=50; t=0:1:50; s=-1:0.04:1; Rx_av=zeros(1,M+1); Sx_av=zeros(1,M+1); for j=1:10; % 取 10 次实现的整体平均名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 24 页 - - - - - - - - - 6 X=2*rand(1,N)-1; % X 在 -1 和 1 之间取值Rx=Rx_est(X,M); % 本次实现的自相关函数Sx=ffts
10、hift(abs(fft(Rx); % 本次实现的功率谱密度Rx_av=Rx_av+Rx; % 自相关函数之和Sx_av=Sx_av+Sx; % 功率谱密度之和end; Rx_av=Rx_av/10; % 自相关函数的整体平均Sx_av=Sx_av/10; % 功率谱密度的整体平均subplot(2,1,1); plot(t,Rx_av) xlabel( (a) 自相关函数 ); subplot(2,1,2); plot(s,Sx_av) xlabel( (b) 功率谱密度 %- function Rx=Rx_est(X,M) % 估计随机序列X 的自相关函数% 计算出 Rx(0),Rx(1)
11、,.,Rx(M) % Rx(m)代表实际中的Rx(m-1). N=length(X); Rx=zeros(1,M+1); for m=1:M+1 for n=1:N-m+1 Rx(m)=Rx(m)+X(n)*X(n+m-1); end; Rx(m)=Rx(m)/(N-m+1); end; 程序运行结果如图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 24 页 - - - - - - - - - 7 设计二模拟信号的数字化一、设计目的1掌握脉冲编码调制的基本原理。2理解
12、均匀PCM 与非均匀PCM。3利用 MATLAB对抽样值进行A 律 13 折线编码。二、设计原理在模拟信号数字化方式中,出现最早且应用最广泛的是脉冲编码调制,即PCM 编码,它经过抽样(时间离散化)、量化(幅值离散化)和编码(多电平转换为二电平)3 个步骤,将一个时间和幅值都连续变换的模拟信号变成二进制数字信号。1抽样抽样是将模拟信号在时间上离散化。对于低通型信号,当抽样频率Hsff2时,属于正常抽样,不会发生频谱混叠;当Hsff2时,属于欠抽样,已抽样信号频谱发生混叠。下面通过举例来看如何利用MATLAB 分析已抽样信号的频谱。【例 2-1】有一信号)200(50)(2tSatm,当抽样频率
13、1sf=100Hz 时,绘出原始信号和抽样后信号的波形及其频谱。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 24 页 - - - - - - - - - 8 解由题意可知,原始信号的最高频率Hf64Hz,因此用1sf=100Hz 抽样时,会发生频谱混叠, MA TLAB 实现的源程序如下:clear t0=10; % 定义时间长度ts=0.001; % 抽样周期ts1=0.01; % 欠抽样周期fs=1/ts; fs1=1/ts1; % 抽样频率df=0.5; % 定
14、义频率分辨力t=-t0/2:ts:t0/2; % 定义时间序列x=sin(200*t); % 定义信号序列m=x./(200*t); w=t0/(2*ts)+1; % 确定 t=0 的点m(w)=1; % 确定 t=0 的点对应的信号值为1 m=m.*m; m=50.*m; M,mn,dfy=fftseq(m,ts,df); % 傅里叶变换M=M/fs; f=0:dfy:dfy*length(mn)-dfy-fs/2; % 定义频率序列% 欠抽样过程t1=-t0/2:ts1:t0/2; % 定义抽样时间序列x1=sin(200*t1); % 计算对应抽样序列的信号序列m1=x1./(200*t
15、1); % 计算 Sa 函数序列w1=t0/(2*ts1)+1; % 由于除 0 产生了错误值,计算该值的标号m1(w1)=1; % 将错误值修正m1=m1.*m1; m1=50.*m1; M1,mn1,df1=fftseq(m1,ts1,df); % 对已抽样信号进行傅里叶变换M1=M1/fs1; % 将一个周期的图像扩展到多个周期N1=M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1; f1=-7*df1*length(mn1):df1:6*df1*length(mn1)-df1-fs1/2; % 绘图subplot(2,2,1) plot(t,m) axis(
16、-0.15,0.15,-1,50); xlabel(a) 原始信号的时域波形); subplot(2,2,2) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 24 页 - - - - - - - - - 9 plot(f,abs(fftshift(M); axis(-500,500,0,1); xlabel(b) 原始信号的频谱); subplot(2,2,3) stem(t1,m1) axis(-0.15,0.15,-1,50); xlabel(c) 欠抽样信号的时域
17、波形); subplot(2,2,4) plot(f1,abs(fftshift(N1); axis(-500,500,0,1); xlabel(d) 欠抽样信号的频谱); %- function M,m,df=fftseq(m,ts,df) fs=1/ts; if nargin=2 % 判断输入参数的个数是否符合要求n1=0; else n1=fs/df; % 根据参数个数决定是否使用频率缩放end n2=length(m); n=2(max(nextpow2(n1),nextpow2(n2); M=fft(m,n); % 进行离散傅里叶变换m=m,zeros(1,n-n2); df=fs/
18、n; 程序运行结果如图2.1 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 24 页 - - - - - - - - - 10 -0.1-0.0500.050.101020304050(a) 原 始 信 号 的 时 域 波 形-500050000.51(b) 原 始 信 号 的 频 谱-0.1-0.0500.050.101020304050(c) 欠 抽 样 信 号 的 时 域 波 形-500050000.20.40.60.81(d) 欠 抽 样 信 号 的 频
19、谱图 2.1 例 2-1 运行结果2量化在 MATLAB 中,quantiz 函数可以实现信号的均匀量化,compand 函数可以实现信号的压缩与扩张,二者结合起来,可以实现信号的非均匀量化。它们的调用格式如下。(1) quantiz 函数 index=quantiz(sig,partition) ,参数sig 表示输入信号,参数partition 表示分区向量,分区向量给出了量化间隔端点的向量,长度为1M,将信号分成M个区域。根据向量partition 对输入信号sig 产生量化索引index,index 的长度与矢量sig 的长度相同。向量partition 是由若干个边界判断点且各边界点
20、的大小严格按升序排列组成的实矢量。若 partition的矢量长度小于1M,则索引向量index 中的每个元素的大小为0,1M范围内的一个整数。量化方法如下:当 sigpartition(1) 时,输出0;当 partition(i)partition(1M)时,输出1M。 index,quants=quantiz(sig,partition,codebook),参数 codebook 表示码本向量, 存放每个 partition 的量化值。 根据码本codebook 产生量化索引index 和信号的量化值quants。如果partition 的矢量长度为1M,那么 codebook 的矢量长
21、度为M。 index,quants,distor=quantiz(sig,partition,codebook),产生量化索引index、信号的量化值 quants和量化误差distor。(2) compand 函数 out=compand(in,Mu,v,mu/compressor) ,对输入向量in 进行律压缩, Mu 为压缩参数, v 为输入信号的峰值。 out=compand(in,Mu,v,mu/expander) ,对输入向量in 进行律扩张。 out=compand(in,A,v,A/compressor) ,对输入向量in 进行 A 律压缩, A 为压缩参数,名师资料总结 -
22、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 24 页 - - - - - - - - - 11 v 为输入信号的峰值。 out=compand(in,A,v,A/expander) ,对输入向量in 进行 A 律扩张。【例 2-2】比较均匀量化与非均匀量化的量化误差。解在计算均匀量化的量化误差时,直接调用quantiz 函数求解;在计算非均匀量化的量化误差时, 先对原始信号进行压缩,再进行均匀量化,最后把经过扩张得到的恢复信号与与原始信号比较,计算其量化误差。源程序如下:Mu=255
23、; % 定义压缩参数t=-4:0.1:4; % 定义时间序列sig=exp(t); % 定义原始信号v=max(sig); % 原始信号的最大幅值index1,quants1,distor1=quantiz(sig,0:floor(v),0:ceil(v); % 对原始信号进行均匀量化compsig=compand(sig,Mu,v,mu/compressor); % 对原始信号进行压缩index,quants=quantiz(compsig,0:floor(v),0:ceil(v); % 对压缩信号进行均匀量化newsig=compand(quants,Mu,max(quants),mu/e
24、xpander); % 对非均匀量化信号扩张distor2=sum(newsig-sig).2)/length(sig); % 非均匀量化的量化误差distor1 distor2 程序运行结果为distor1 = 0.5348 distor2 = 0.0397 3A 律 13 折线编码下面将通过MATLAB程序实现A律 13 折线编码,并输出8 位码。【例 2-3】设输入信号抽样值为+1270 个量化单位,按照A律 13 折线特性编成8 位码。解按照A律 13 折线的编码规则,用MATLAB实现的源程序如下:clear all x=+1270; if x0 out(1)=1; else out
25、(1)=0; end if abs(x)=0 & abs(x)16 out(2)=0;out(3)=0;out(4)=0;step=1;st=0; elseif 16=abs(x) & abs(x)32 out(2)=0;out(3)=0;out(4)=1;step=1;st=16; elseif 32=abs(x) & abs(x)64 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 24 页 - - - - - - - - - 12 out(2)=0;out(3)=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年通信系统仿真作业 2022 通信 系统 仿真 作业
限制150内