Практические работы / Практическая работа №5 ПДБС
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Санкт-Петербургский государственный университет телекоммуникаций
им. проф. М. А. Бонч-Бруевича»
Кафедра сетей связи и передачи данных
Отчет по практической работе №5
«Оценка потерь на трассе радиоканала в случае дифракции на клине при двух препятствиях»
По дисциплине: «Передача данных в беспроводных сетях»
Цель работы:
Целью данной работы является ознакомление с механизмом дифракции радиосигнала на клине при двух препятствиях, а также принципами оценки величины потерь, вызываемых данным типом дифракции.
Исходные данные:
1. Для заданных частоты f и расстояний b и c рассчитать и построить графики зависимости величины потерь на дифракцию на клине в дБ от расстояния a (диапазон 1–15 км, точки через 1 км) для каждой из пар высот: 1) и ; 2) и . Графики строить на одном рисунке.
Рассчитаем величину потерь для и
Проверим какое из препятствий преобладающее:
С помощью данного кода:
h1 = np.zeros(15,)
h2 = np.zeros(15,)
lambd = (3*10**8)/(f*10**6)
for i in range(15,):
h1 = H1 - (hT + a[i] * ((hR-hT)/(a[i]+b+c)))
h2 = H2 - (hT + (a[i]+b) * ((hR-hT)/(a[i]+b+c)))
h1_s = h1*math.sqrt((a[i]+b)*c)
h2_s = h2*math.sqrt((b+c)*a[i])
print('h1_s = ',h1_s)
print('h2_s = ',h2_s)
Получим следующие значения:
Следовательно, преобладающим является первое препятствие
Произведем расчет величины потерь:
С помощью данного кода:
Ldif1 = np.zeros(15,)
Ldif2 = np.zeros(15,)
Ldif_H2 = np.zeros(15,)
for i in range(15,):
if (h1_s > h2_s):
h1 = H1
h2 = H2 - (hT + a[i] * ((hR-hT)/(a[i]+b)))
else:
h1 = H1 - (hT + a[i] * ((hR-hT)/(a[i]+b)))
h2 = H2
d1_h1_1 = math.sqrt(a[i]**2+(H1-hT)**2)
d2_h1_2 = math.sqrt(b**2+(H1-H2)**2)
d1_h2_1 = math.sqrt(b**2+(H1-H2)**2)
d2_h2_2 = math.sqrt(c**2+(H2-hR)**2)
v1 = h1*math.sqrt((2/lambd)*(1/d1_h1_1+1/d2_h1_2))
v2 = h2*math.sqrt((2/lambd)*(1/d1_h2_1+1/d2_h2_2))
if (v1 > - 0.7):
Ldif1[i] = 6.9 + 20*math.log10(math.sqrt((v1-0.1)**2+1)+v1-0.1)
else:
Ldif1[i] = 0
if (v2 > - 0.7):
Ldif2[i] = 6.9 + 20*math.log10(math.sqrt((v2-0.1)**2+1)+v2-0.1)
else:
Ldif2[i] = 0
if (Ldif1[i] and Ldif2[i] > 15):
Ldif_H2[i] = Ldif1[i]+Ldif2[i]+ 10 * math.log10(((a[i]+b)*(b+c))/(b*(a[i]+b+c)))
else:
Ldif_H2[i] = Ldif1[i]+Ldif2[i]
print('Ldif_H1_H2 = ', Ldif_H2[i] , 'дБ')
Получаем следующие значения:
Ldif_H1_H2 = 28.103928285814234 дБ
Ldif_H1_H2 = 26.34195277546408 дБ
Ldif_H1_H2 = 25.552150841708986 дБ
Ldif_H1_H2 = 25.09670482138405 дБ
Ldif_H1_H2 = 25.493434641063008 дБ
Ldif_H1_H2 = 25.562956383314855 дБ
Ldif_H1_H2 = 25.627744955038118 дБ
Ldif_H1_H2 = 25.68601307888894 дБ
Ldif_H1_H2 = 25.737790938349864 дБ
Ldif_H1_H2 = 25.78368027210025 дБ
Ldif_H1_H2 = 25.82441069133126 дБ
Ldif_H1_H2 = 25.860682386511495 дБ
Ldif_H1_H2 = 25.893116421599117 дБ
Ldif_H1_H2 = 25.922245957194676 дБ
Ldif_H1_H2 = 25.948522368800724 дБ
Рассчитаем величину потерь для и
С помощью данного кода:
h1 = np.zeros(15,)
h2 = np.zeros(15,)
lambd = (3*10**8)/(f*10**6)
for i in range(15,):
h1 = H1 - (hT + a[i] * ((hR-hT)/(a[i]+b+c)))
h2 = H2_1 - (hT + (a[i]+b) * ((hR-hT)/(a[i]+b+c)))
h1_s = h1*math.sqrt((a[i]+b)*c)
h2_s = h2*math.sqrt((b+c)*a[i])
print('h1_s = ',h1_s)
print('h2_s = ',h2_s)
Получаем следующие значения:
Следовательно, преобладающим является сначала первое, затем второе препятствие
Произведем расчет величины потерь:
С помощью данного кода:
Ldif1 = np.zeros(15,)
Ldif2 = np.zeros(15,)
Ldif_H2_1 = np.zeros(15,)
for i in range(15,):
if (h1_s > h2_s):
h1 = H1
h2 = H2 - (hT + a[i] * ((hR-hT)/(a[i]+b)))
else:
h1 = H1 - (hT + a[i] * ((hR-hT)/(a[i]+b)))
h2 = H2
d1_h1_1 = math.sqrt(a[i]**2+(H1-hT)**2)
d2_h1_2 = math.sqrt(b**2+(H1-H2)**2)
d1_h2_1 = math.sqrt(b**2+(H1-H2)**2)
d2_h2_2 = math.sqrt(c**2+(H2-hR)**2)
v1 = h1*math.sqrt((2/lambd)*(1/d1_h1_1+1/d2_h1_2))
v2 = h2*math.sqrt((2/lambd)*(1/d1_h2_1+1/d2_h2_2))
if (v1 > - 0.7):
Ldif1[i] = 6.9 + 20*math.log10(math.sqrt((v1-0.1)**2+1)+v1-0.1)
else:
Ldif1[i] = 0
if (v2 > - 0.7):
Ldif2[i] = 6.9 + 20*math.log10(math.sqrt((v2-0.1)**2+1)+v2-0.1)
else:
Ldif2[i] = 0
if (Ldif1[i] and Ldif2[i] > 15):
Ldif_H2_1[i] = Ldif1[i]+Ldif2[i]+ 10 * math.log10(((a[i]+b)*(b+c))/(b*(a[i]+b+c)))
else:
Ldif_H2_1[i] = Ldif1[i]+Ldif2[i]
print('Ldif_H1_H2 = ', Ldif_H2_1[i] , 'дБ')
Получаем следующие значения:
Ldif_H1_H2 = 36.24491482084763 дБ
Ldif_H1_H2 = 36.766040989805816 дБ
Ldif_H1_H2 = 37.25365701300528 дБ
Ldif_H1_H2 = 37.63259576281791 дБ
Ldif_H1_H2 = 37.92819719289151 дБ
Ldif_H1_H2 = 38.16368734774425 дБ
Ldif_H1_H2 = 38.35527978022346 дБ
Ldif_H1_H2 = 38.51406412165329 дБ
Ldif_H1_H2 = 38.647755294400966 дБ
Ldif_H1_H2 = 38.7618499134203 дБ
Ldif_H1_H2 = 38.86035782756266 дБ
Ldif_H1_H2 = 38.946268398267975 дБ
Ldif_H1_H2 = 39.02185389611684 дБ
Ldif_H1_H2 = 39.088871598229474 дБ
Ldif_H1_H2 = 39.14870154203979 дБ
Рисунок 1. Графики зависимости величины потерь на дифракцию на клине в дБ от расстояния a
2. Для заданных частоты f и расстояний a и c рассчитать и построить графики зависимости величины потерь на дифракцию на клине в дБ от расстояния b (диапазон 1–15 км, точки через 1 км) для каждой из пар высот: 1) и ; 2) и . Графики строить на одном рисунке.
Рассчитаем величину потерь для и
Проверим какое из препятствий преобладающее:
С помощью данного кода:
h1 = np.zeros(15,)
h2 = np.zeros(15,)
lambd = (3*10**8)/(f*10**6)
for i in range(15,):
h1 = H1 - (hT + a * ((hR-hT)/(a+b[i]+c)))
h2 = H2 - (hT + (a+b[i]) * ((hR-hT)/(a+b[i]+c)))
h1_s = h1*math.sqrt((a+b[i])*c)
h2_s = h2*math.sqrt((b[i]+c)*a)
print('h1_s = ',h1_s)
print('h2_s = ',h2_s)
Получим следующие значения:
Следовательно, преобладающим является первое препятствие
Произведем расчет величины потерь:
С помощью данного кода:
Ldif1 = np.zeros(15,)
Ldif2 = np.zeros(15,)
Ldif_H2 = np.zeros(15,)
for i in range(15,):
if (h1_s > h2_s):
h1 = H1
h2 = H2 - (hT + a * ((hR-hT)/(a+b[i])))
else:
h1 = H1 - (hT + a * ((hR-hT)/(a+b[i])))
h2 = H2
d1_h1_1 = math.sqrt(a**2+(H1-hT)**2)
d2_h1_2 = math.sqrt(b[i]**2+(H1-H2)**2)
d1_h2_1 = math.sqrt(b[i]**2+(H1-H2)**2)
d2_h2_2 = math.sqrt(c**2+(H2-hR)**2)
v1 = h1*math.sqrt((2/lambd)*(1/d1_h1_1+1/d2_h1_2))
v2 = h2*math.sqrt((2/lambd)*(1/d1_h2_1+1/d2_h2_2))
if (v1 > - 0.7):
Ldif1[i] = 6.9 + 20*math.log10(math.sqrt((v1-0.1)**2+1)+v1-0.1)
else:
Ldif1[i] = 0
if (v2 > - 0.7):
Ldif2[i] = 6.9 + 20*math.log10(math.sqrt((v2-0.1)**2+1)+v2-0.1)
else:
Ldif2[i] = 0
if (Ldif1[i] and Ldif2[i] > 15):
Ldif_H2[i] = Ldif1[i]+Ldif2[i]+ 10 * math.log10(((a+b[i])*(b[i]+c))/(b[i]*(a+b[i]+c)))
else:
Ldif_H2[i] = Ldif1[i]+Ldif2[i]
print('Ldif_H2= ', Ldif_H2[i] , 'дБ')
Получаем следующие значения:
Ldif_H2= 27.590336221388398 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 24.58879377340069 дБ
Ldif_H2= 24.014295210757055 дБ
Ldif_H2= 23.6297631565389 дБ
Ldif_H2= 23.35339006028353 дБ
Ldif_H2= 23.144797492732756 дБ
Ldif_H2= 22.981608310575687 дБ
Ldif_H2= 22.85037136442672 дБ
Ldif_H2= 22.74249535853125 дБ
Ldif_H2= 22.652227659825485 дБ
Ldif_H2= 22.575567512308098 дБ
Ldif_H2= 22.509644414460638 дБ
Ldif_H2= 22.452344297136094 дБ
Ldif_H2= 22.402075190463208 дБ
Рассчитаем величину потерь для и
С помощью данного кода:
h1 = np.zeros(15,)
h2 = np.zeros(15,)
lambd = (3*10**8)/(f*10**6)
for i in range(15,):
h1 = H1 - (hT + a * ((hR-hT)/(a+b[i]+c)))
h2 = H2_1 - (hT + (a+b[i]) * ((hR-hT)/(a+b[i]+c)))
h1_s = h1*math.sqrt((a+b[i])*c)
h2_s = h2*math.sqrt((b[i]+c)*a)
print('h1_s = ',h1_s)
print('h2_s = ',h2_s)
Получаем следующие значения:
Следовательно, преобладающим является сначала первое препятствие затем второе
Произведем расчет величины потерь:
С помощью данного кода:
Ldif1 = np.zeros(15,)
Ldif2 = np.zeros(15,)
Ldif_H2_1 = np.zeros(15,)
for i in range(15,):
if (h1_s > h2_s):
h1 = H1
h2 = H2 - (hT + a * ((hR-hT)/(a+b[i])))
else:
h1 = H1 - (hT + a * ((hR-hT)/(a+b[i])))
h2 = H2
d1_h1_1 = math.sqrt(a**2+(H1-hT)**2)
d2_h1_2 = math.sqrt(b[i]**2+(H1-H2)**2)
d1_h2_1 = math.sqrt(b[i]**2+(H1-H2)**2)
d2_h2_2 = math.sqrt(c**2+(H2-hR)**2)
v1 = h1*math.sqrt((2/lambd)*(1/d1_h1_1+1/d2_h1_2))
v2 = h2*math.sqrt((2/lambd)*(1/d1_h2_1+1/d2_h2_2))
if (v1 > - 0.7):
Ldif1[i] = 6.9 + 20*math.log10(math.sqrt((v1-0.1)**2+1)+v1-0.1)
else:
Ldif1[i] = 0
if (v2 > - 0.7):
Ldif2[i] = 6.9 + 20*math.log10(math.sqrt((v2-0.1)**2+1)+v2-0.1)
else:
Ldif2[i] = 0
if (Ldif1[i] and Ldif2[i] > 15):
Ldif_H2_1[i] = Ldif1[i]+Ldif2[i]+ 10 * math.log10(((a+b[i])*(b[i]+c))/(b[i]*(a+b[i]+c)))
else:
Ldif_H2_1[i] = Ldif1[i]+Ldif2[i]
print('Ldif_H2_1= ', Ldif_H2_1[i] , 'дБ')
Получаем следующие значения:
Ldif_H2_1= 43.90474948344182 дБ
Ldif_H2_1= 37.25365701300528 дБ
Ldif_H2_1= 34.046164335316085 дБ
Ldif_H2_1= 32.119357846363044 дБ
Ldif_H2_1= 30.82786176503387 дБ
Ldif_H2_1= 29.900994398748022 дБ
Ldif_H2_1= 29.20346082038348 дБ
Ldif_H2_1= 28.659696454523687 дБ
Ldif_H2_1= 28.224073208956746 дБ
Ldif_H2_1= 27.86738182954961 дБ
Ldif_H2_1= 27.570049557591442 дБ
Ldif_H2_1= 27.318468430976118 дБ
Ldif_H2_1= 27.102884980515256 дБ
Ldif_H2_1= 26.916126968404928 дБ
Ldif_H2_1= 26.752803533578483 дБ
Рисунок 2. Графики зависимости величины потерь на дифракцию на клине в дБ от расстояния b
3. Для заданных частоты f и расстояний a и b рассчитать и построить графики зависимости величины потерь на дифракцию на клине в дБ от расстояния c (диапазон 1–15 км, точки через 1 км) для каждой из пар высот: 1) и ; 2) и . Графики строить на одном рисунке.
Рассчитаем величину потерь для и
Проверим какое из препятствий преобладающее:
С помощью данного кода:
h1 = np.zeros(15,)
h2 = np.zeros(15,)
lambd = (3*10**8)/(f*10**6)
for i in range(15,):
h1 = H1 - (hT + a * ((hR-hT)/(a+b+c[i])))
h2 = H2 - (hT + (a+b) * ((hR-hT)/(a+b+c[i])))
h1_s = h1*math.sqrt((a+b)*c[i])
h2_s = h2*math.sqrt((b+c[i])*a)
print('h1_s = ',h1_s)
print('h2_s = ',h2_s)
Получим следующие значения:
Следовательно, преобладающим является первое препятствие
Произведем расчет величины потерь:
С помощью данного кода:
Ldif1 = np.zeros(15,)
Ldif2 = np.zeros(15,)
Ldif_H2 = np.zeros(15,)
for i in range(15,):
if (h1_s > h2_s):
h1 = H1
h2 = H2 - (hT + a * ((hR-hT)/(a+b)))
else:
h1 = H1 - (hT + a * ((hR-hT)/(a+b)))
h2 = H2
d1_h1_1 = math.sqrt(a**2+(H1-hT)**2)
d2_h1_2 = math.sqrt(b**2+(H1-H2)**2)
d1_h2_1 = math.sqrt(b**2+(H1-H2)**2)
d2_h2_2 = math.sqrt(c[i]**2+(H2-hR)**2)
v1 = h1*math.sqrt((2/lambd)*(1/d1_h1_1+1/d2_h1_2))
v2 = h2*math.sqrt((2/lambd)*(1/d1_h2_1+1/d2_h2_2))
if (v1 > - 0.7):
Ldif1[i] = 6.9 + 20*math.log10(math.sqrt((v1-0.1)**2+1)+v1-0.1)
else:
Ldif1[i] = 0
if (v2 > - 0.7):
Ldif2[i] = 6.9 + 20*math.log10(math.sqrt((v2-0.1)**2+1)+v2-0.1)
else:
Ldif2[i] = 0
if (Ldif1[i] and Ldif2[i] > 15):
Ldif_H2[i] = Ldif1[i]+Ldif2[i]+ 10 * math.log10(((a+b)*(b+c[i]))/(b*(a+b+c[i])))
else:
Ldif_H2[i] = Ldif1[i]+Ldif2[i]
print('Ldif_H2= ', Ldif_H2[i] , 'дБ')
Получаем следующие значения:
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Ldif_H2= 25.552150841708986 дБ
Рассчитаем величину потерь для и
С помощью данного кода:
h1 = np.zeros(15,)
h2 = np.zeros(15,)
lambd = (3*10**8)/(f*10**6)
for i in range(15,):
h1 = H1 - (hT + a * ((hR-hT)/(a+b+c[i])))
h2 = H2_1 - (hT + (a+b) * ((hR-hT)/(a+b+c[i])))
h1_s = h1*math.sqrt((a+b)*c[i])
h2_s = h2*math.sqrt((b+c[i])*a)
print('h1_s = ',h1_s)
print('h2_s = ',h2_s)
Получаем следующие значения:
h1_s = 35777.08763999664
h2_s = 54999.999999999985
h1_s = 46982.41095107308
h2_s = 56910.240820120256
h1_s = 54221.76684690384
h2_s = 58094.75019311126
h1_s = 59628.4793999944
h2_s = 58925.56509887894
h1_s = 63999.999999999985
h2_s = 59573.48403442592
h1_s = 67718.4252915478
h2_s = 60123.839141041644
h1_s = 70992.9573971954
h2_s = 60621.778264910696
h1_s = 73948.64682239904
h2_s = 61092.13141403776
h1_s = 76665.18779999281
h2_s = 61548.885498621734
h1_s = 79195.95949289334
h2_s = 62000.000000000015
h1_s = 81578.1833580523
h2_s = 62449.97998398398
h1_s = 83838.69831790171
h2_s = 62901.306778664504
h1_s = 85997.41598185118
h2_s = 63355.259362494035
h1_s = 88069.47647727112
h2_s = 63812.398173590205
h1_s = 90066.64199358161
h2_s = 64272.85585688565
Следовательно, преобладающим является сначала второе препятствие затем первое
Произведем расчет величины потерь:
С помощью данного кода:
Ldif1 = np.zeros(15,)
Ldif2 = np.zeros(15,)
Ldif_H2_1 = np.zeros(15,)
for i in range(15,):
if (h1_s > h2_s):
h1 = H1
h2 = H2 - (hT + a * ((hR-hT)/(a+b)))
else:
h1 = H1 - (hT + a * ((hR-hT)/(a+b)))
h2 = H2
d1_h1_1 = math.sqrt(a**2+(H1-hT)**2)
d2_h1_2 = math.sqrt(b**2+(H1-H2)**2)
d1_h2_1 = math.sqrt(b**2+(H1-H2)**2)
d2_h2_2 = math.sqrt(c[i]**2+(H2-hR)**2)
v1 = h1*math.sqrt((2/lambd)*(1/d1_h1_1+1/d2_h1_2))
v2 = h2*math.sqrt((2/lambd)*(1/d1_h2_1+1/d2_h2_2))
if (v1 > - 0.7):
Ldif1[i] = 6.9 + 20*math.log10(math.sqrt((v1-0.1)**2+1)+v1-0.1)
else:
Ldif1[i] = 0
if (v2 > - 0.7):
Ldif2[i] = 6.9 + 20*math.log10(math.sqrt((v2-0.1)**2+1)+v2-0.1)
else:
Ldif2[i] = 0
if (Ldif1[i] and Ldif2[i] > 15):
Ldif_H2_1[i] = Ldif1[i]+Ldif2[i]+ 10 * math.log10(((a+b)*(b+c[i]))/(b*(a+b+c[i])))
else:
Ldif_H2_1[i] = Ldif1[i]+Ldif2[i]
print('Ldif_H2_1= ', Ldif_H2_1[i] , 'дБ')
Получаем следующие значения:
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Ldif_H2_1= 25.552150841708986 дБ
Рисунок 3. Графики зависимости величины потерь на дифракцию на клине в дБ от расстояния c