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);
Pk2=(m-1)/m*(1-Kr2);
set(handles.edit33, 'String', Pk1);
set(handles.edit37, 'String', Pk2);
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);
set(handles.edit32, 'String', Pk1);
set(handles.edit36, 'String', Pk2);
disp(['Poh1=', num2str(Pk1),' некогерентный прием']);