Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практические работы / Практическая работа №5 ПДБС

.docx
Скачиваний:
26
Добавлен:
03.10.2022
Размер:
248.8 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Санкт-Петербургский государственный университет телекоммуникаций

им. проф. М. А. Бонч-Бруевича»

Кафедра сетей связи и передачи данных

Отчет по практической работе №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