基于jupyter notebook的python编程 |
您所在的位置:网站首页 › 多径信道的特点 › 基于jupyter notebook的python编程 |
基于jupyter notebook的python编程-----通过python编程实现通信系统的多径仿真目录
一、多径衰落信道简介1、多径衰落信道2、多径衰落信道特点3、多径衰落信道原理
二、python的多径衰落信道模拟1、在
r
0
r_0
r0处的信道特点2、修改移动台距离基站的位置,让
r
0
=
9
r_0=9
r0=93、修改发射频率
f
=
1
0
8
且
r
0
=
3
f=10^8且r_0=3
f=108且r0=34、让移动台以速度v=1向反射墙运动5、分离出移动台接收的合成信号
三、多径仿真结论1、多径仿真结论2、多径扩展
四、Matlab多径仿真完整代码1、matlab多径源码如下
对于通信传输,多径传输一直以来都是重要且难点的内容,不仅需要考虑多径衰落带来的影响,还需要考虑怎么在模拟中完成多径的搭建模拟,本次博客,林君学长主要带大家了解,如何通过python代码实现通信系统的多径仿真
一、多径衰落信道简介
1、多径衰落信道
在无线信道中,发送和接收天线之间通常存在多于一条的信号传播路径。多径的存在是因为发射机和接收机之间建筑物和其他物体的反射、绕射、散射等引起的。当信号在无线信道传播时,多径反射和衰减的变化将使信号经历随机波动。因此,无线信道的特性是不确定的、随机变化的。 2、多径衰落信道特点 频率选择性衰落时间选择性衰落 3、多径衰落信道原理本次博客,通过一个简单的模拟程序来说明多径衰落信道的特点,然后再给出多径衰落信道的仿真方法。 1)、首先,先说一下程序模拟多径信道的场景,如图4-15所示 式中,减号体现了反射信号与直射信号的相位相反 接下来,我们就通过python代码来实现上面的原理吧! 二、python的多径衰落信道模拟 1、在 r 0 r_0 r0处的信道特点1)、python代码如下所示: #r0=3 import numpy as np from numpy import random import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签 plt.rcParams['axes.unicode_minus']=False f=1 #发射信号频率 v=0 #移动台速度,静止时刻为0 c=3e8 #电磁波速度,光速 r0=3 #移动台距离基站的初始距离 d=10 #基站距离反射墙的距离 t1=np.array([]) #时间 for i in np.arange(0.1,10+0.0001,0.0001): t1=np.insert(t1,len(t1),i) E1=np.cos(2*np.pi*f*((1-v/c)*t1-r0/c))/(r0+v*t1) #直射径信号 E2=np.cos(2*np.pi*f*((1+v/c)*t1+(r0-2*d)/c))/(2*d-r0-v*t1) #反射径信号 plt.plot(t1,E1,t1,E2,'-g',t1,E1-E2,'-r') #画出直射径信号、反射径信号、移动台接收的合成信号 plt.legend(["直射径信号","反射径信号","移动台接收的合成信号"],loc='upper left') plt.axis([0,10,-0.8,0.8]) #设置横纵比 plt.show()2)、模拟结果 1)、python代码如下所示: #r0=9 f=1 #发射信号频率 v=0 #移动台速度,静止时刻为0 c=3e8 #电磁波速度,光速 r0=9 #移动台距离基站的初始距离 d=10 #基站距离反射墙的距离 t1=np.array([]) #时间 for i in np.arange(0.1,10+0.0001,0.0001): t1=np.insert(t1,len(t1),i) E1=np.cos(2*np.pi*f*((1-v/c)*t1-r0/c))/(r0+v*t1) #直射径信号 E2=np.cos(2*np.pi*f*((1+v/c)*t1+(r0-2*d)/c))/(2*d-r0-v*t1) #反射径信号 plt.plot(t1,E1,t1,E2,'-g',t1,E1-E2,'-r') #画出直射径信号、反射径信号、移动台接收的合成信号 plt.legend(["直射径信号","反射径信号","移动台接收的合成信号"],loc='upper left') plt.axis([0,10,-0.8,0.8]) #设置横纵比 plt.show()2)、模拟结果 以上是发射频率f=1的情况,发射其他频率的信号结果会怎样呢?修改 f = 1 0 8 f=10^8 f=108并且 r 0 = 3 r_0=3 r0=3 1)、python代码如下所示: #f=10的8次方,r0=3 f=1e8 #发射信号频率 v=0 #移动台速度,静止时刻为0 c=3e8 #电磁波速度,光速 r0=3 #移动台距离基站的初始距离 d=10 #基站距离反射墙的距离 t1=np.array([]) #时间 for i in np.arange(0.1,10+0.0001,0.0001): t1=np.insert(t1,len(t1),i) E1=np.cos(2*np.pi*f*((1-v/c)*t1-r0/c))/(r0+v*t1) #直射径信号 E2=np.cos(2*np.pi*f*((1+v/c)*t1+(r0-2*d)/c))/(2*d-r0-v*t1) #反射径信号 plt.plot(t1,E1,t1,E2,'-g',t1,E1-E2,'-r') #画出直射径信号、反射径信号、移动台接收的合成信号 plt.legend(["直射径信号","反射径信号","移动台接收的合成信号"],loc='upper left') plt.axis([0,10,-0.8,0.8]) #设置横纵比 plt.show()2)、模拟结果 使 f = 2 , v = 1 , r 0 = 3 , d = 15 , t 1 = 0.1 : 12 : 0.001 f=2 ,v=1,r0=3,d=15,t1=0.1:12:0.001 f=2,v=1,r0=3,d=15,t1=0.1:12:0.001 1)、上面讨论 了移动台静止的情况。现在让移动台向反射墙运动,速度为v,则在时刻t,移动台距离基站的位置r=r+vt。把最开始式中的
r
0
r_0
r0用r代替得: 3)、模拟结果: 1)、分离接收合成信号python代码如下所示: #f=2,v=1,r0=3,t1=0.1:12:0.001时候单独画接收信号 f=2 #发射信号频率 v=1 #移动台速度,静止时刻为0 c=3e8 #电磁波速度,光速 r0=3 #移动台距离基站的初始距离 d=15 #基站距离反射墙的距离 t1=np.array([]) #时间 for i in np.arange(0.1,12+0.001,0.001): t1=np.insert(t1,len(t1),i) E1=np.cos(2*np.pi*f*((1-v/c)*t1-r0/c))/(r0+v*t1) #直射径信号 E2=np.cos(2*np.pi*f*((1+v/c)*t1+(r0-2*d)/c))/(2*d-r0-v*t1) #反射径信号 plt.plot(t1,E1-E2,'-r') #移动台接收的合成信号 plt.legend(["移动台接收的合成信号"],loc='upper left') plt.axis([0,12,-0.5,0.5]) #设置横纵比 plt.show()2)、分离结果: 1)、在数字通信中,接收端是周期性的对接收符号进行判决从而恢复信息的,1个符号脉冲的周期可大可小,因此,根据相干时间与符号脉冲周期的相对长短,可以把信道分为慢变信道和快变信道。在上面第二张图中,如果发送符号的周期小于1.25s,就可以认为这是慢变信道(或者准静态信道) 2)、无线信道大体可以分为4种:慢变瑞利衰落信道、快变瑞利衰落信道、慢变频率选择性信道、快变频率选择性信道。 1)、如果信道没有频率选择性,则最大的时延扩展Tmax要远远小于符号周期T(Tmax |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |