- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字调制与解调的Monte-Carlo仿真
研究课:数字调制与解调的Monte-Carlo仿真 主要内容 通信系统仿真的概念 仿真方法论 随机过程的建模与仿真 Monte-Carlo仿真及实例 1. 通信系统仿真的概念 点对点数字通信系统模型 通信系统最主要的质量指标:有效性和可靠性 衡量通信系统性能的方法: 基于公式的计算方法:只适用于简单可解析处理的通信系统; 硬件样机研究和测量:开销大,不够灵活 波形级仿真:计算机实现,短时,高效,省力,直观 计算机仿真在通信系统工程设计的各个阶段都起着十分重要的作用。在设计的前期阶段,为验证新算法和新硬件技术,仿真提供了极佳的环境。 通信系统仿真涉及的领域: 通信原理,数字信号处理,概率论,信号检测与估计,随机过程理论,信号与系统理论等。 掌握通信原理是通信系统仿真的关键,主要涉及系统结构和各种通信技术,比如调制解调技术,编码技术等。 2. 仿真方法论 仿真的基本步骤: 将给定的问题映射为仿真模型; 把整个问题分解为一组子问题; 选择一套合适的建模、仿真和估计方法,并将其用于解决这些子问题; 综合各子问题的解决结果以提供对整个问题的解决方案; 仿真的四个层次: 系统级仿真、子系统级仿真、元件级仿真和电路层仿真 建模: 系统建模:系统框图 设备建模:输入输出规则,如方程式、算法、反映设备实际工作的参数值 随机过程建模:信号源,噪声等; 系统性能估计 对模拟通信系统:输出信噪比 对数字通信系统:误比特率(BER)或误码率或误帧率(FER)、信噪比 符号差错概率估计为: 注:仿真能处理的符号数目是有限的,故只能对差错概率做近似计算,Monte-Carlo(蒙特卡罗)仿真。 通信仿真软件包 Matlab Opnet SystemVue NS2 随机过程的建模与仿真 Matlab库函数实现 rand函数:产生在(0,1)内均匀分布的随机数。 调用格式:x=rand(m); x=ran(m,n); x=rand; randn函数:产生均值为零、方差为1的高斯分布的随机数,调用格式同rand函数。 产生均值为m,方差为sigma的高斯分布随机变量: (1) x=m+sqrt(sigma)*randn; (2) 见下页: gngauss.m sigma=input(‘input sigma’) m=input(‘input m’); A=rand(1); B=rand(1); R=sigma*(sqrt(2*log(1/(1-A)))); X=m+R*cos(2*pi*B); % Gaussian分布R.V. Y=m+R*sin(2*pi*B); % Gaussian分布R.V. Ray = sqrt(1/2)*(X+1i*Y); % Rayleigh分布R.V. Monte-Carlo仿真及实例 Monte-Carlo仿真方法论 随机实验结果无法准确预测,只能用统计的方法加以描述。 事件A发生的概率可通过重复多次随机实验求得: 在数字通信系统中,N是总的发送比特数,Ne是差错发生的次数。 Monte-carlo仿真的特性 无偏性:在平均意义下可以得到正确的结果 一致性:估计值的方差随着随机实验次数N的增加而减小,当N趋于无穷时,方差趋于0. 基于以上两个特性,Monte-carlo仿真可以准确地估计出系统的性能。 一个简单的Monte-carlo仿真实例 假设通信系统满足以下条件: 信源输出的数据符号是相互独立和等概率的; 信道是加性高斯白噪声(AWGN)信道; 调制方式采用BPSK 接收信号 判决: 对 和 进行符号比较,当两者不相等时,说明通信系统出现了差错。BER的Monte-carlo估计值为: BER的理论值: 噪声方差 和噪声功率谱密度的关系为: 信噪比SNR定义为: 将 和 都归一化为1,则有: 编写Matlab仿真程序 N=input(Enter number of symbols ); snrdB_min=-3;snrdB_max=8; snrdB=snrdB_min:1:snrdB_max; snr=10.^(snrdB/10); len_snr=length(snrdB); for j=1:len_snr sigma=sqrt(1/(2*snr(j))); Ne=0; for k=1:N d=round(rand(1)); x_d=2*d-1; n_d=sigma*randn(1); y_d=x_d+n_d; if y_d0
文档评论(0)