《通信系统仿真》 实验报告
姓名杨利刚班级A0811实验室203组号28学号28实验日期实验名称实验一 计算机仿真的过程与方法实验成绩教师签字一、实验目的
1、掌握计算机仿真的一般过程
2、掌握Matlab编程仿真的基本方法
3、掌握动态系统模型的状态方程求解方法
4、掌握基于概率模型的蒙特卡罗方法
二、实验原理
1、计算机仿真的一般过程
通信系统的计算机仿真就是根据物理系统的运行原理建立相应的数学描述,并进行计算机数值求解的过程。
系统的数学描述称为系统数学模型或仿真模型。为了对系统数学模型进行计算机数值分析,还需要将数学模型以某种计算机语言表达出来,然后进行调试、运行,最后得出数值结果。用计算机语言重新表达的数学模型称为系统的计算机仿真模型。
根据物理模型的不同特点、原理以及不同的系统仿真目标所得出的数学模型和相应求解算法也不尽相同。通信系统的计算机仿真过程往往是多种形式数学模型和各种算法综合的数值计算过程。
对仿真模型和仿真结果的检验是仿真数据有效性的保证。通常的验证方法是证伪,而不是证实。通过模型的相互比较就能够查找出错误根源,进而改进和修正模型。
2、基于动态系统模型的状态方程求解方法
动态系统,就是有记忆系统的数学描述是状态方程。对动态系统建模,就是根据研究对象的物理模型找出相应的状态方程的过程。所谓对动态系统的仿真,就是利用计算机来对所得出的状态方程进行数值求解的过程。
3、基于概率模型的蒙特卡罗方法
对于不确定系统,使用基于概率模型的蒙特卡罗方法。蒙特卡罗方法是一种基于随机试验和统计计算的数值方法,也称计算机随机模拟方法或统计模拟方法。
蒙特卡罗方法的数学基础是概率论中的大数定理和中心极限定理。 大数定理指出,随着独立随机试验次数增加,试验统计事件出现的概率将接近于该统计事件的概率。
蒙特卡罗方法的基本思想:当所求解问题是某种随机事件出现的概率,或某个随机变量的期望值时,通过某种实验的方法,以这种事件出现的概率来估计该随机事件的概率,或者得出这个随机变量的某些数字特征,并将其作为问题的解。如所求解的问题不是一个随机事件问题,那么可以通过数学分析方法找出与之等价的随机事件模型,然后再利用蒙特卡罗方法去求解。
在建模和仿真中,应用蒙特卡罗方法主要有两部分工作:
1)用蒙特卡罗方法模拟某一过程时,产生所需要的各种概率分布的随机变量。
2)用统计方法把模型的数字特征估计出来,从而得到问题的数值解,即仿真结果。
三、实验内容
1、在例题1.1中,如果考虑落体受到空气阻力,且阻力与下落速度成正比,试修改数学模型和相应的仿真程序。在考虑阻力的情况下,在相同高度同时下落的质量不同的物体仍然同时落地吗?请通过仿真验证并解释之。
实验代码:
% ch1example1prg1.m
g=9.8; % 重力加速度
k0=-1; %阻力系数
m=1; %物体质量
v=0; % 设定初始速度条件
s=0; % 设定初始位移条件
t=0; % 设定起始时间
dt=0.01; % 设置计算步长
N=200; % 设置仿真递推次数. 仿真时间等于N与dt的乘积
for k=1:N
a=g+k0*v/m; %加速的计算
v=v+a*dt; % 计算新时刻的速度
s(k+1)=s(k)+v*dt; % 新位移
t(k+1)=t(k)+dt; % 时间更新
end
% 理论计算, 以便与仿真结果对照
t_theory=0:0.01:N*dt; % 设置解析计算的时间点
v_theory=g*t_theory; % 解析计算的瞬时速度
s_theory=1/2*g*t_theory.^2; % 解析计算的瞬时位移
% 作图: 仿真结果与解析结果对比
t=0:dt:N*dt;
plot(t,s,'o', t_theory,s_theory, '+');
xlabel('时间 t'); ylabel('位移 s');
legend('仿真结果','理论结果');
运行结果:
实验结论:
通过实验数据的验证,从相同高度下落的物体,在考虑阻力的情况下,质量大的物体先落地。
2、在例题1.1中,除了考虑落体受到空气阻力,如果再考虑空气对物体的浮力,那么如何进一步修改例题1.1中的数学模型和相应的仿真程序呢?请通过仿真验证你的模型并解释之。
实验代码:
% ch1example1prg1.m
clear all,close all,clc
g=9.8; % 重力加速度
k0=-1; %阻力系数
m=1; %物