Энергетический расчет канала дальней тропосферной радиосвязи (Программа для ЭВМ) — страница 6 из 15

end

function edit35_Callback(hObject, eventdata, handles)

function edit35_CreateFcn(hObject, eventdata, handles)

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

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

end

function edit43_Callback(hObject, eventdata, handles)

function edit43_CreateFcn(hObject, eventdata, handles)

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

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

end

function edit44_Callback(hObject, eventdata, handles)

function edit44_CreateFcn(hObject, eventdata, handles)

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

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

end

function edit45_Callback(hObject, eventdata, handles)

function edit45_CreateFcn(hObject, eventdata, handles)

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

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

end

function edit49_Callback(hObject, eventdata, handles)

function edit49_CreateFcn(hObject, eventdata, handles)

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

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

end

function edit46_Callback(hObject, eventdata, handles)

function edit46_CreateFcn(hObject, eventdata, handles)

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

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

end

function edit51_Callback(hObject, eventdata, handles)

function edit51_CreateFcn(hObject, eventdata, handles)

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

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

end


LK_data_ChM.m

function varargout = LK_data_ChM(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, …

'gui_Singleton', gui_Singleton, …

'gui_OpeningFcn', @LK_data_ChM_OpeningFcn, …

'gui_OutputFcn', @LK_data_ChM_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_ChM_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

global Pvh1vt

global Lm1z

global Pvh1med

global L2

global h02

global Zap2

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

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;

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

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

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

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

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;

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

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

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

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

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

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

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

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

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);

Pk2=(m-1)/m*(1-Kr2);

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

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

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

Kr1=kramp(x);

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

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

Kr2=kramp(x);

Pk2=(m-1)/m*(1-Kr2);

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

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

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

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

Kr1=kramp(x);

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

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

Kr2=kramp(x);

Pk2=(m-1)/m*(1-Kr2);

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

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

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

Kr1=kramp(x);

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

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

Kr2=kramp(x);

Pk2=(m-1)/m*(1-Kr2);

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

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

elseif Tm==2

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

disp('FSK с разрывом фазы c ФНЧ');

x=sqrt(h01c/2);

Kr1=kramp(x);

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

x=sqrt(h02c/2);

Kr2=kramp(x);

Pk2=(m-1)/m*(1-Kr2);

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

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

disp(['Poh1=', num2str(Pk1),' FSK']);

disp(['Poh2=', num2str(Pk2),' FSK']);

disp('MSK без разрыва фазы c ФНЧ');

x=sqrt(h01c/1.5);

Kr1=kramp(x);

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

x=sqrt(h02c/1.5);

Kr2=kramp(x);

Pk2=(m-1)/m*(1-Kr2);

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

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

disp(['Poh1=', num2str(Pk1),' MSK']);

disp(['Poh2=', num2str(Pk2),' MSK']);

disp('MSK с минимальным отклонением фазы, без разрыва фазы c ФНЧ');

x=sqrt(h01c);

Kr1=kramp(x);

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

x=sqrt(h02c);

Kr2=kramp(x);

Pk2=(m-1)/m*(1-Kr2);

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

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

disp(['Poh1=', num2str(Pk1),' MSK min']);

disp(['Poh2=', num2str(Pk2),' MSK min']);

elseif Tm==3

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

x=sqrt(2*h01c*(sin(pi/m))^2);

Kr1=kramp(x);

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

x=sqrt(2*h02c*(sin(pi/m))^2);

Kr2=kramp(x);

Pk2=(m-1)/m*(1-Kr2);

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

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

elseif Tm==5

disp(' OFDM');

Pk1=(m-1)/(m*log2(m))*(1-sqrt(3*h01*log2(m)/(m^2-1)/(3*h01*log2(m)/(m^2-1)+1)));

Pk2=(m-1)/(m*log2(m))*(1-sqrt(3*h02*log2(m)/(m^2-1)/(3*h02*log2(m)/(m^2-1)+1)));

disp(['Poh1=', num2str(Pk1),' OFDM ФМ-2 ']);

disp(['Poh2=', num2str(Pk2),' OFDM ФМ-2 ']);

end

guidata(hObject, handles);

function varargout = LK_data_ChM_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function edit1_Callback(hObject, eventdata, handles)

function edit1_CreateFcn(hObject, eventdata, handles)

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

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

end

function edit2_Callback(hObject, eventdata, handles)

function edit2_CreateFcn(hObject, eventdata, handles)

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

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

end

function edit3_Callback(hObject, eventdata, handles)

function edit3_CreateFcn(hObject, eventdata, handles)

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

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

end

function edit4_Callback(hObject, eventdata, handles)

function edit4_CreateFcn(hObject, eventdata, handles)