Выбрать главу

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),' некогерентный прием']);

полную версию книги