
Практические работы / Отчет по практической работе №6 ПДБС
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Санкт-Петербургский государственный университет телекоммуникаций
им. проф. М. А. Бонч-Бруевича»
Кафедра сетей связи и передачи данных
Отчет по практической работе №6
«Оценка потерь на трассе радиоканала в случае дифракции на цилиндре»
По дисциплине: «Передача данных в беспроводных сетях»
Цель работы:
Целью данной работы является ознакомление с механизмом дифракции радиосигнала на цилиндре и принципами оценки величины потерь, вызываемых данным типом дифракции.
Исходные данные:
1. Для заданных частоты f и расстояния b рассчитать (двумя способами, для каждого способа считать отдельно для гладкой поверхности с R = 1 и отдельно для неровной R = 0,65) и построить графики зависимости величины потерь на дифракцию на цилиндре в дБ от расстояния d = d1 + d2 при изменении расстояния a (диапазон 1–10 км, точки через 1 км) для высоты препятствия H = H’ + h0(a) (учесть кривизну земной поверхности). Для сравнения привести график потерь в свободном пространстве, посчитанный по формуле (3.3) для тех же расстояний d. Графики строить на одном рисунке (всего должно получиться пять кривых).
Произведем расчет первым способом:
Ldif_1 = np.zeros(10,)
Ldif_1_65 = np.zeros(10,)
d = np.zeros(10,)
lambd = (3*10**8)/(f*10**6)
for i in range(10):
d_1 = (a[i]*10**-3)+(b*10**-3)
h0 = ((a[i]*10**-3)*(d_1-(a[i]*10**-3)))/17
H = H_ne + h0
d1 = math.sqrt(a[i]**2+(H-hT)**2)
d2 = math.sqrt(b**2+(H-hR)**2)
d[i] = d1+d2
beta1 = math.acos((H-hT)/d1)
beta2 = math.acos((H-hR)/d2)
beta = beta1 + beta2
alpha = (180*(math.pi/180))-beta
r = (2*Ds*a[i]*b)/(alpha*((a[i]**2) + (b**2)))
Lr = 11.7 * alpha * math.sqrt((math.pi*r)/lambd)
h = H - (hT+a[i]*((hR-hT)/(a[i]+b)))
v = h*math.sqrt((2/lambd)*(1/d1+1/d2))
if (v > - 0.7):
Lwdg = 6.9 + 20*math.log10(math.sqrt((v-0.1)**2+1)+v-0.1)
else:
Lwdg = 0
Ldif_1[i] = Lwdg + Lr
Ldif_1_65[i] = Lwdg + (Lr*0.65)
print('Ldif_1 = ',Ldif_1[i], 'дБ')
print('Ldif_1_65 = ',Ldif_1_65[i], 'дБ')
Получим данные значения:
Ldif_1 = 31.988390559840955 дБ
Ldif_1_65 = 26.445822978452583 дБ
Ldif_1 = 32.360359417218206 дБ
Ldif_1_65 = 26.296679186142832 дБ
Ldif_1 = 32.81412915402575 дБ
Ldif_1_65 = 26.465951577780082 дБ
Ldif_1 = 32.980165713068466 дБ
Ldif_1_65 = 26.52784484173771 дБ
Ldif_1 = 32.890938459680555 дБ
Ldif_1_65 = 26.457191715566605 дБ
Ldif_1 = 32.63317682608651 дБ
Ldif_1_65 = 26.293544960153945 дБ
Ldif_1 = 32.2816580220147 дБ
Ldif_1_65 = 26.078061449986627 дБ
Ldif_1 = 31.88836326462465 дБ
Ldif_1_65 = 25.84079076755467 дБ
Ldif_1 = 31.48589101409344 дБ
Ldif_1_65 = 25.600873512967482 дБ
Ldif_1 = 31.093242962486897 дБ
Ldif_1_65 = 25.369462430617986 дБ
Произведем расчет вторым способом:
Ldif_2 = np.zeros(10,)
Ldif_2_65 = np.zeros(10,)
for i in range(10):
pl = math.sqrt(((a[i]+b)**2)+(hT-hR)**2)
Hbeam = ((b*hT) + (a[i]*hR))/(a[i]+b)
d_1 = (a[i]*10**-3)+(b*10**-3)
h0 = ((a[i]*10**-3)*(d_1-(a[i]*10**-3)))/17
H = H_ne + h0
F = Hbeam - H
F1 = 17.31 * math.sqrt((1/(f*10**-3)) * (((a[i]*10**-3) * (b*10**-3))/((a[i]*10**-3)+(b*10**-3))))
x = F/F1
Lsph = -38.68 * x + 21.66
if (x >= -0.5):
Lwdg = (1.377 * (x**2)) - (11.31 * x) + 6
else:
Lwdg = -50.4/(1.6 - x) + 36
Ldif_2[i] = Lwdg + (Lsph - Lwdg)
Ldif_2_65[i] = Lwdg + 0.65 * (Lsph - Lwdg)
print('Ldif_2 = ',Ldif_2[i], 'дБ')
print('Ldif_2_65 = ',Ldif_2_65[i], 'дБ')
Получим данные значения:
Ldif_2 = 59.38527293551196 дБ
Ldif_2_65 = 44.35078599090216 дБ
Ldif_2 = 53.94641509701022 дБ
Ldif_2_65 = 40.419940848298666 дБ
Ldif_2 = 52.30605092241662 дБ
Ldif_2_65 = 39.225266938861225 дБ
Ldif_2 = 51.71734866366435 дБ
Ldif_2_65 = 38.79539879561544 дБ
Ldif_2 = 51.55659712467309 дБ
Ldif_2_65 = 38.67791337018634 дБ
Ldif_2 = 51.6060609987903 дБ
Ldif_2_65 = 38.71406893916213 дБ
Ldif_2 = 51.771387576687076 дБ
Ldif_2_65 = 38.83488298953033 дБ
Ldif_2 = 52.00580637847003 дБ
Ldif_2_65 = 39.006104822892 дБ
Ldif_2 = 52.2838727270576 дБ
Ldif_2_65 = 39.209083397055934 дБ
Ldif_2 = 52.59075859477282 дБ
Ldif_2_65 = 39.43294454501556 дБ
Расчет потерь в свободном пространстве:
Llos = np.zeros(10,)
for i in range(10):
Llos[i] = 42.6 + 26*math.log10((a[i]*10**-3)+(b*10**-3)) + 20*math.log10(f)
print('Llos = ',Llos[i], 'дБ')
Получим данные значения:
Llos = 127.49510975393544 дБ
Llos = 129.0029003753553 дБ
Llos = 130.3328659589872 дБ
Llos = 131.52256071356476 дБ
Llos = 132.5987705276786 дБ
Llos = 133.581273110803 дБ
Llos = 134.4850878735425 дБ
Llos = 135.32188964119894 дБ
Llos = 136.10093344901247 дБ
Llos = 136.8296802626188 дБ
Рисунок 1. графики зависимости величины потерь на дифракцию на цилиндре в дБ от расстояния d = d1 + d2 при изменении расстояния a.
2. Для заданных частоты f и расстояния a рассчитать (двумя способами, для каждого способа считать отдельно для гладкой поверхности с R = 1 и отдельно для неровной R = 0,65) и построить графики зависимости величины потерь на дифракцию на цилиндре в дБ от расстояния d = d1 + d2 при изменении расстояния b (диапазон 1–10 км, точки через 1 км) для высоты препятствия H = H 0 + h0(a) (учесть кривизну земной поверхности). Для сравнения привести график потерь в свободном пространстве, посчитанный по формуле (3.3) для тех же расстояний d. Графики строить на одном рисунке (всего должно получиться пять кривых).
Произведем расчет первым способом:
Ldif_1 = np.zeros(10,)
Ldif_1_65 = np.zeros(10,)
d = np.zeros(10,)
lambd = (3*10**8)/(f*10**6)
for i in range(10):
d_1 = (a*10**-3)+(b[i]*10**-3)
h0 = ((a*10**-3)*(d_1-(a*10**-3)))/17
H = H_ne + h0
d1 = math.sqrt(a**2+(H-hT)**2)
d2 = math.sqrt(b[i]**2+(H-hR)**2)
d[i] = d1+d2
beta1 = math.acos((H-hT)/d1)
beta2 = math.acos((H-hR)/d2)
beta = beta1 + beta2
alpha = (180*(math.pi/180))-beta
r = (2*Ds*a*b[i])/(alpha*((a**2) + (b[i]**2)))
Lr = 11.7 * alpha * math.sqrt((math.pi*r)/lambd)
h = H - (hT+a*((hR-hT)/(a+b[i])))
v = h*math.sqrt((2/lambd)*(1/d1+1/d2))
if (v > - 0.7):
Lwdg = 6.9 + 20*math.log10(math.sqrt((v-0.1)**2+1)+v-0.1)
else:
Lwdg = 0
Ldif_1[i] = Lwdg + Lr
Ldif_1_65[i] = Lwdg + (Lr*0.65)
print('Ldif_1 = ',Ldif_1[i], 'дБ')
print('Ldif_1_65 = ',Ldif_1_65[i], 'дБ')
Получим данные значения:
Ldif_1 = 42.9685082673074 дБ
Ldif_1_65 = 35.04654594324066 дБ
Ldif_1 = 40.17428829828392 дБ
Ldif_1_65 = 32.304549733470935 дБ
Ldif_1 = 38.06270670834047 дБ
Ldif_1_65 = 30.455703043999378 дБ
Ldif_1 = 36.15499822809981 дБ
Ldif_1_65 = 28.920130307096915 дБ
Ldif_1 = 34.42535437427678 дБ
Ldif_1_65 = 27.596132498957722 дБ
Ldif_1 = 32.890938459680555 дБ
Ldif_1_65 = 26.457191715566605 дБ
Ldif_1 = 31.55272403108568 дБ
Ldif_1_65 = 25.484114565169747 дБ
Ldif_1 = 30.39655335032792 дБ
Ldif_1_65 = 24.65610148927653 дБ
Ldif_1 = 29.401397453535225 дБ
Ldif_1_65 = 23.95218693153097 дБ
Ldif_1 = 28.545014917858232 дБ
Ldif_1_65 = 23.353068738056336 дБ
Ldif_1_65 = 25.84079076755467 дБ
Ldif_1 = 31.48589101409344 дБ
Ldif_1_65 = 25.600873512967482 дБ
Ldif_1 = 31.093242962486897 дБ
Ldif_1_65 = 25.369462430617986 дБ
Произведем расчет вторым способом:
Ldif_2 = np.zeros(10,)
Ldif_2_65 = np.zeros(10,)
for i in range(10):
pl = math.sqrt(((a+b[i])**2)+(hT-hR)**2)
Hbeam = ((b[i]*hT) + (a*hR))/(a+b[i])
d_1 = (a*10**-3)+(b[i]*10**-3)
h0 = ((a*10**-3)*(d_1-(a*10**-3)))/17
H = H_ne + h0
F = Hbeam - H
F1 = 17.31 * math.sqrt((1/(f*10**-3)) * (((a*10**-3) * (b[i]*10**-3))/((a*10**-3)+(b[i]*10**-3))))
x = F/F1
Lsph = -38.68 * x + 21.66
if (x >= -0.5):
Lwdg = (1.377 * (x**2)) - (11.31 * x) + 6
else:
Lwdg = -50.4/(1.6 - x) + 36
Ldif_2[i] = Lwdg + (Lsph - Lwdg)
Ldif_2_65[i] = Lwdg + 0.65 * (Lsph - Lwdg)
print('Ldif_2 = ',Ldif_2[i], 'дБ')
print('Ldif_2_65 = ',Ldif_2_65[i], 'дБ')
Получим данные значения:
Ldif_2 = 85.7478091926844 дБ
Ldif_2_65 = 62.91983610845921 дБ
Ldif_2 = 67.83501715839088 дБ
Ldif_2_65 = 50.37871201808758 дБ
Ldif_2 = 60.29157483679535 дБ
Ldif_2_65 = 45.001639780422586 дБ
Ldif_2 = 56.065837835225224 дБ
Ldif_2_65 = 41.95703276909668 дБ
Ldif_2 = 53.38226644906662 дБ
Ldif_2_65 = 40.00958036119884 дБ
Ldif_2 = 51.55659712467309 дБ
Ldif_2_65 = 38.67791337018634 дБ
Ldif_2 = 50.26263119101101 дБ
Ldif_2_65 = 37.73053521935238 дБ
Ldif_2 = 49.32309502006565 дБ
Ldif_2_65 = 37.04072804744864 дБ
Ldif_2 = 48.63260462835153 дБ
Ldif_2_65 = 36.53270372902624 дБ
Ldif_2 = 48.12426148319976 дБ
Ldif_2_65 = 36.1581017658273 дБ
Расчет потерь в свободном пространстве:
Llos = np.zeros(10,)
for i in range(10):
Llos[i] = 42.6 + 26*math.log10((a*10**-3)+(b[i]*10**-3)) + 20*math.log10(f)
print('Llos = ',Llos[i], 'дБ')
Получим данные значения:
Llos = 125.7544932235395 дБ
Llos = 127.49510975393544 дБ
Llos = 129.0029003753553 дБ
Llos = 130.3328659589872 дБ
Llos = 131.52256071356476 дБ
Llos = 132.5987705276786 дБ
Llos = 133.581273110803 дБ
Llos = 134.4850878735425 дБ
Llos = 135.32188964119894 дБ
Llos = 136.10093344901247 дБ
Рисунок 2. графики зависимости величины потерь на дифракцию на цилиндре в дБ от расстояния d = d1 + d2 при изменении расстояния b.