Читать бесплатно книгу «Энергетический расчет канала дальней тропосферной радиосвязи (Программа для ЭВМ)» Владимира Ивановича Шломы полностью онлайн — MyBook
image
cover

Y90=-8.519e-8*ds^3+7.444e-5*ds^2+4.18e-4*ds-12.1;

else

Y90=-4;

end

end

Cq=1.473e14*exp(-((Tpr-108.8)/1.534)^2)-0.2272*exp(-((Tpr-95.58)/7.786)^2)+9.047*exp(-((Tpr-153.3)/44.08)^2);

Yq=Cq*Y90;

La=0.07*exp(0.055*(Gr+Gp));

L2g=Ma+30*log10(f)+10*log10(R)+30*log10(tet)+Ln+La-Gr-Gp-Pfr-Pfp-Yq;

dq=R+8.5*((Ugr+Ugp)*pi*1e3)/180;

if abs(Tpr-50)<abs(Tpr-90)

q=50;

elseif abs(Tpr-90)<abs(Tpr-95)

q=90;

elseif abs(Tpr-95)<abs(Tpr-99)

q=95;

elseif abs(Tpr-99)<abs(Tpr-99.9)

q=99;

else

q=99.9;

end

if Nk==1

if q==50

p1=-4.238e-7;

p2=-0.0008043;

p3=4.185;

elseif q==90

p1=3.111e-7;

p2=-0.001963;

p3=4.108;

elseif q==95

p1=7.556e-7;

p2=-0.002476;

p3=3.956;

elseif q==99

p1=4.225e-7;

p2=-0.002412;

p3=3.701;

elseif q==99.9

p1=-3.766e-8;

p2=-0.00114;

p3=3.072;

end

elseif Nk==2 || Nk==3

if q==50

p1=2.506e-6;

p2=-0.006031;

p3=7.07;

elseif q==90

p1=2.376e-6;

p2=-0.005205;

p3=5.933;

elseif q==95

p1=1.857e-6;

p2=-0.004377;

p3=5.44;

elseif q==99

p1=1.009e-6;

p2=-0.003069;

p3=4.821;

elseif q==99.9

p1=2.279e-7;

p2=-0.001305;

p3=3.59;

end

elseif Nk==4

if q==50

p1=4.952e-6;

p2=-0.01447;

p3=12.99;

elseif q==90

p1=4.596e-6;

p2=-0.01175;

p3=10.12;

elseif q==95

p1=4.776e-6;

p2=-0.01076;

p3=8.707;

elseif q==99

p1=2.23e-6;

p2=-0.00675;

p3=6.837;

elseif q==99.9

p1=2.229e-6;

p2=-0.005639;

p3=5.548;

end

elseif Nk==5||Nk==6||Nk==7

if q==50

p1=5.358e-6;

p2=-0.1255;

p3=10.25;

elseif q==90

p1=5.507e-6;

p2=-0.0118;

p3=9.033;

elseif q==95

p1=3.981e-6;

p2=-0.00935;

p3=7.91;

elseif q==99

p1=3.349e-6;

p2=-0.008022;

p3=7.169;

elseif q==99.9

p1=2.489e-7;

p2=-0.006297;

p3=6.122;

end

end

dL=p1*dq^2+p2*dq+p3;

L2m=L2g+dL;

L2c=L2m+4.676*exp(-((R-124.9)/332.4)^2)+3.165*exp(-((R-3828)/508.3)^2);

if Tp==4

L2med=L2g;

elseif Tp==3

L2med=L2m;

else

L2med=L2c;

end

[Lbz]=Lbzam(Tpr,n);

L2=L2med+Lbz;

Pvh2med=10*log10(P)-L2med;

Pvh2medvt=10^(Pvh2med/10);

Pvh2=10*log10(P)-L2;

Pvh2vt=10^(Pvh2/10);

disp(['L2med=', num2str(L2med),' дБ (медианные потери для заданного периода)']);

disp(['L2=', num2str(L2),' дБ (полные потери для заданного периода с учетом релеевских замираний)']);

disp(['Pvh2med=', num2str(Pvh2medvt),' Вт (медианная мощность сигнала на входе)']);

disp(['Pvh2=', num2str(Pvh2vt),' Вт (мощность сигнала на входе)']);

if kan==1|| tipcan==1

Pch2=4e-21*10^(Fe/10)*nk*3100

Pcht2=6975e-24*10^(Fe/10)*(Fk/dfk)^2/Pvh2vt;

h0t2=10*log10(1e-3/Pcht2);

h02=1e-3/Pcht2;

disp(['h02=', num2str(h02)]),'(отношение с/ш на входе детектора)';

disp(['h0t2=', num2str(h0t2),' дБ (отношение с/ш на выходе тлф канала)']);

elseif kan==2 && tipcan==2

Pch2=4e-21*10^(Fe/10)*V*1000;

h02=(10^(Pvh2/10))/Pch2;

disp(['h02=', num2str(h02),'(отношение с/ш на входе приемника и на входе детектора)']);

end

Zap2=Lpred-L2;

disp(['Zap2=', num2str(Zap2),' дБ (энергетический запас трассы)']);

error=0;

if error==0

if f <600 || f>6000

msgbox('Рабочая частота введена некорректно')

error= error+1

end

if P<0 || P >20000

msgbox('Мощность ПРД введена некорректно')

error= error+1

end

if Pfr>0 || Pfr <-10

msgbox('Потери в ПРД фидере введены некорректно')

error= error+1

end

if Gr <0 || Gr>70

msgbox('Усиление антенны введено некорректно')

error= error+1

end

if a<0 || a >10

msgbox('Ширина ДН антенны введена некорректно')

error= error+1

end

if h<0 || h >20

msgbox('Высота подъёма антенны введена некорректно')

error= error+1

end

if Ugr<0 || Ugr >5

msgbox('Угол горизонта введён некорректно')

error= error+1

end

if n<1 || n>2 && n<4 || n>4

msgbox('Краткость разнесения введена некорректно')

error= error+1

end

if Fe <0 || Fe > 20

msgbox('Коэффициент шума введен некорректно')

error= error+1

end

if Pfp>0 || Pfp <-10

msgbox('Потери в ПРМ введены некорректно')

error= error+1

end

if Gp <0 || Gp>70

msgbox('Усиление антенны введено некорректно')

error= error+1

end

if Ugp<0 || Ugp >5

msgbox('Угол горизонта введен некорректно')

error= error+1

end

end

if error==0;

if tipcan==2;

if Tm==1

LK_data_AM();

elseif Tm==2

LK_data_ChM();

elseif Tm==3

LK_data_FM();

elseif Tm==4

LK_data_OFT();

elseif Tm==5

LK_data_OFDM();

end

elseif tipcan==1;

LK_data_v02();

end

end

function edit19_Callback(hObject, eventdata, handles)

function edit19_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit20_Callback(hObject, eventdata, handles)

function edit20_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function listbox2_Callback(hObject, eventdata, handles)

function listbox2_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit15_Callback(hObject, eventdata, handles)

function edit15_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit16_Callback(hObject, eventdata, handles)

function edit16_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function listbox3_Callback(hObject, eventdata, handles)

function listbox3_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function radiobutton1_Callback(hObject, eventdata, handles)

function radiobutton2_Callback(hObject, eventdata, handles)

function edit23_Callback(hObject, eventdata, handles)

function edit23_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit24_Callback(hObject, eventdata, handles)

function edit24_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

LbZam.m

function [ Lbz ] = Lbzam(Tpr,n)

if n==1

Lbz=abs(20*log10(0.8414*sqrt(-2*log(Tpr/100))));

elseif n==2

pp2.form='pp';

pp2.breaks=[50 70 80 90 95 98 99 99.5000 99.9000 99.9900];

pp2.coefs=[3.84210275826828e-05,0,0.0796329235178138,-3.70000622094116;-8.80037940540999e-05,0.00230526165496097,0.125738156617033,-1.79997952992342;0.000378860333770322,-0.000334852166662026,0.145442251500023,-0.400075592311095;0.00209556468655813,0.0110309578464476,0.252403308297879,1.39972203979325;0.00544230028577507,0.0424644281448196,0.519880238254215,3.19945811326360;1.31340755735463,0.0914451307167953,0.921608914839060,5.28822078904555;-0.630095933072249,4.03166780278070,5.04472184833655,7.61468239195604;-1.03894174768381,3.08652390317233,8.60381770131306,11.0661982751855;-6.81405113315541,1.83979380595174,10.5743447849627,14.9350769083666;];

pp2.pieces=9;

pp2.order=4;

pp2.dim=1;

Lbz=ppval(pp2,Tpr);

elseif n==4

pp4.form='pp';

pp4.breaks=[50 70 80 90 95 98 99 99.5000 99.9000 99.9900];

pp4.coefs=[3.66286868444963e-05,0,0.0453526263896390,-6.20001612140725;-0.000113102179577539,0.00219772121066978,0.0893070506030345,-4.99993409885850;0.000326883867208858,-0.00119534417665639,0.0993308209431684,-4.00019365133871;-0.000727365934956800,0.00861117183960936,0.173489097572698,-2.79953599236381;0.0168400327937770,-0.00229931718474264,0.205048370847032,-1.80773195037969;0.604392422407672,0.149260977959251,0.645933353170556,-0.758599807069293;-0.397553159541230,1.96243824518227,2.75763257631207,0.640986946468185;-0.762714404274230,1.36610850587042,4.42190595183842,2.46071865097713;-1.66981933607921,0.450851220741332,5.14868984248313,4.39924467077825;];

pp4.pieces=9;

pp4.order=4;

pp4.dim=1;

Lbz=ppval(pp4,Tpr);

end

end

Lzam.m

function [ Lz ] = Lzam(x, n, sigma)

if n==1

if sigma==3

a1=8.876e15;

b1=142.9;

c1=7.333;

a2=0;

b2=1;

c2=1;

a3=123.4;

b3=164.9;

c3=46.83;

elseif sigma==4

a1=7.495e15;

b1=141.8;

c1=7.16;

a2=0;

b2=1;

c2=1;

a3=115;

b3=166.9;

c3=49.85;

elseif sigma==5

a1=1.303e16;

b1=138.8;

c1=6.584;

a2=234.6;

b2=184.3;

c2=54.24;

a3=0;

b3=1;

c3=1;

elseif sigma==6

a1=8.011e14;

b1=117.5;

c1=3.09;

a2=5.627;

b2=100.5;

c2=2.282;

a3=39.18;

b3=137.5;

c3=45.42;

elseif sigma==7

a1=3.08e15;

b1=130.4;

c1=5.274;

a2=35.63;

b2=59.72;

c2=25.03;

a3=74.15;

b3=123.8;

c3=21.46;

end

elseif n==2

if sigma==3

a1=3.634;

b1=100.1;

c1=0.2605;

a2=1.424e15;

b2=181.3;

c2=14.05;

a3=7302;

b3=231.9;

c3=50.68;

elseif sigma==4

a1=234;

b1=100.8;

c1=0.4421;

a2=6.382e16;

b2=179.1;

c2=12.98;

a3=1615;

b3=219;

c3=52.85;

elseif sigma==5

a1=4.173e15;

b1=130.9;

c1=5.308;

a2=69.67;

b2=140.1;

c2=30.56;

a3=0;

b3=1;

c3=1;

elseif sigma==6

a1=5.952e14;

b1=113.5;

c1=2.384;

a2=4.38;

b2=100.4;

c2=2.216;

a3=15.26;

b3=112.7;

c3=24.18;

elseif sigma==7

a1=2.977;

b1=99.89;

c1=0.0954;

a2=1.88e15;

b2=182.8;

c2=14.36;

a3=12400;

b3=568;

c3=126.3;

end

elseif n==4

if sigma==3

a1=1.386;

b1=99.91;

c1=0.1078;

a2=-24.82;

b2=103.8;

c2=5.008;

a3=67530;

b3=143.8;

c3=15.46;

elseif sigma==4

a1=2271;

b1=102.4;

c1=0.9524;

a2=179.7;

b2=114.6;

c2=13.67;

a3=-86.2;

b3=108.2;

c3=10.75;

elseif sigma==5

a1=9.461e14;

b1=124.6;

c1=4.296;

a2=0.4379;

b2=91.79;

c2=3.112;

a3=1429;

b3=189.1;

c3=40.17;

elseif sigma==6

a1=6.402e15;

b1=133.6;

c1=5.704;

a2=0;

b2=100.5;

c2=2.282;

a3=122.7;

b3=160.2;

c3=39.06;

elseif sigma==7

a1=6.102e15;

b1=129.6;

c1=5.049;

a2=0;

b2=59.72;

c2=25.03;

a3=129.3;

b3=161.5;

c3=40.62;

end

end

Lz=a1*exp(-((x-b1)/c1)^2)+a2*exp(-((x-b2)/c2)^2)+a3*exp(-((x-b3)/c3)^2);

end

kramp.m

function [Kr] = kramp(x)

K=2/sqrt(2*pi)*int(sym('exp(-t^2/2)'),'t',0,x);

Kr=double(vpa(K,5));

end

poly_approx.m

clc

clear

x = [100 150 200 250 300 350 400];

y = [15 14.5 14 13.2 12.2 11 9.6];

p = polyfit(x, y, 6)

f = polyval(p, x);

f = polyval(p, x);

plot(x, y, 'ob', x, f, '-g')

cftool

LK_data_AM.m

function varargout = LK_data_AM(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, …

'gui_Singleton', gui_Singleton, …

'gui_OpeningFcn', @LK_data_AM_OpeningFcn, …

'gui_OutputFcn', @LK_data_AM_OutputFcn, …

'gui_LayoutFcn', [] , …

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function LK_data_AM_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

global Pvh1vt

global Lm1z

global Pvh1med

global L2

global h02

global Zap2

global h0t1

global Lz

global h01

global L1

global Zap1

global Rpred

global Lbz

global Lmz

global Pvh2medvt

global Tm

global m

global L0r

global L2med

global Pvh2vt

global h0t2

set(handles.edit1, 'String', L0r);

set(handles.edit2, 'String', Lbz);

set(handles.edit3, 'String', Lmz);

set(handles.edit4, 'String', Lz);

set(handles.edit5, 'String', Lm1z);

set(handles.edit6, 'String', L1);

set(handles.edit7, 'String', Pvh1med);

set(handles.edit8, 'String', Pvh1vt);

set(handles.edit9, 'String', h01);

set(handles.edit11, 'String', Zap1);

set(handles.edit12, 'String', Rpred);

set(handles.edit14, 'String', L0r);

set(handles.edit16, 'String', Lbz);

set(handles.edit17, 'String', Lmz);

set(handles.edit18, 'String', Lz);

set(handles.edit19, 'String', L2med);

set(handles.edit20, 'String', L2);

set(handles.edit21, 'String', Pvh2medvt);

set(handles.edit22, 'String', Pvh2vt);

set(handles.edit23, 'String', h02);

set(handles.edit25, 'String', Zap2);

if Tm~=5

disp('Аналоговая обработка сигнала');

if Tm==1

disp('Амплитудная манипуляция');

x=sqrt(h01/2);

Kr1=kramp(x);

Pk1=(1-Kr1)/2;

x=sqrt(h02/2);

Kr2=kramp(x);

Pk2=(1-Kr2)/2;

set(handles.edit13, 'String', Pk1);

set(handles.edit26, 'String', Pk2);

disp(['Poh1=', num2str(Pk1),' когерентный прием']);

disp(['Poh2=', num2str(Pk2),' когерентный прием']);

Pn1=exp(-h01/4)/2;

Pn2=exp(-h02/4)/2;

set(handles.edit15, 'String', Pn1);

set(handles.edit27, 'String', Pn2);

disp(['Poh1=', num2str(Pn1),' некогерентный прием']);

disp(['Poh2=', num2str(Pn2),' некогерентный прием']);

elseif Tm==2

disp('Частотная манипуляция');

x=sqrt(h01);

Kr1=kramp(x);

Pk1=(1-Kr1)/2;

x=sqrt(h02);

Kr2=kramp(x);

Pk2=(1-Kr2)/2;

disp(['Poh1=', num2str(Pk1),' когерентный прием']);

disp(['Poh2=', num2str(Pk2),' когерентный прием']);

Pn1=exp(-h01/2)/2;

Pn2=exp(-h02/2)/2;

disp(['Poh1=', num2str(Pn1),' некогерентный прием']);

disp(['Poh2=', num2str(Pn2),' некогерентный прием']);

elseif Tm==3

disp('Фазовая манипуляция');

x=sqrt(2*h01);

Kr1=kramp(x);

Pk1=(1-Kr1)/2;

x=sqrt(2*h02);

Kr2=kramp(x);

Pk2=(1-Kr2)/2;

disp(['Poh1=', num2str(Pk1),' когерентный прием']);

disp(['Poh2=', num2str(Pk2),' когерентный прием']);

elseif Tm==4

disp('Относительная фазовая манипуляция');

x=sqrt(2*h01);

Kr1=kramp(x);

Pk1=(1-Kr1)^2/2;

x=sqrt(2*h02);

Kr2=kramp(x);

Pk2=(1-Kr2)^2/2;

disp(['Poh1=', num2str(Pk1),' сравнение полярностей']);

disp(['Poh2=', num2str(Pk2),' сравнение полярностей']);

Pn1=exp(-h01)/2;

Pn2=exp(-h02)/2;

disp(['Poh1=', num2str(Pn1),' сравнение фаз']);

disp(['Poh2=', num2str(Pn2),' сравнение фаз']);

end

end

disp('Цифровая обработка сигнала');

h01c=h01*log2(m);

h02c=h02*log2(m);

if Tm==1

disp('Амплитудная модуляция');

disp('Однополярные прямоугольные импульсы');

x=sqrt(h01c/(m-1)^2);

Kr1=kramp(x);

Pk1=(m-1)/m*(1-Kr1);

x=sqrt(h02c/(m-1)^2);

Kr2=kramp(x);

Бесплатно

0 
(0 оценок)

Читать книгу: «Энергетический расчет канала дальней тропосферной радиосвязи (Программа для ЭВМ)»

Установите приложение, чтобы читать эту книгу бесплатно