z2 = recover(spec_NRZ, 5, n, 32);
pogresh 2 = trapz((z0 - z2).^2)/E0*100
subplot(413);
plot(n, z2);
axis([0 32 -2 2]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Восстановленный сигнал по 5 гармоникам');
z3 = recover(spec_NRZ, 7, n, 32);
pogresh3 = trapz((z0 - z3).^2)/E0*100
subplot(414);
plot(n, z3);
axis([0 32 -2 2]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Восстановленный сигнал по 7 гармоникам');
Рис.6 Восстановление исходного сигнала по 3,5,7 гармоникам.
pogresh1 = 6.2178 % погрешность от восстановления 3 гармониками
pogresh2 = 4.4225 % погрешность от восстановления 5 гармониками
pogresh3 = 3.2058 % погрешность от восстановления 7 гармониками
%восстановление сигнала в AMI коде
n = 0:32;
subplot(411);
stairs(n, [m1 0]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Исходный сигнал в AMI коде');
axis([0 32 -2 2]);
n = 0:0.01:32;
E0 = trapz(z0.^2);
z1 = recover(spec_AMI, 3, n, 32);
pogresh1 = trapz((z0 - z1).^2)/E0*100
subplot(412);
plot(n, z1);
axis([0 32 -2 2]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Восстановленный сигнал по 3 гармоникам');
z2 = recover(spec_AMI, 5, n, 32);
pogresh 2 = trapz((z0 - z2).^2)/E0*100
subplot(413);
plot(n, z2);
axis([0 32 -2 2]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Восстановленный сигнал по 5 гармоникам');
z3 = recover(spec_AMI, 7, n, 32);
pogresh3 = trapz((z0 - z3).^2)/E0*100
subplot(414);
plot(n, z3);
axis([0 32 -2 2]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Восстановленный сигнал по 7 гармоникам');
Рис.7. Восстановление AMI сигнала по 3,5,7 гармоникам.
pogresh1 = 12.3222 % погрешность от восстановления 3 гармониками
pogresh2 = 8.2858 % погрешность от восстановления 5 гармониками
pogresh3 = 6.3064 % погрешность от восстановления 7 гармониками
%восстановление сигнала в манчестерском коде
n = 0:0.5:32;
subplot(411);
stairs(n, [M 0]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Исходный сигнал в AMI коде');
axis([0 32 -2 2]);
n = 0:0.005:32;
E0 = trapz(z0.^2);
z1 = recover(spec_Manch, 3, n, 32);
pogresh1 = trapz((z0 - z1).^2)/E0*100
subplot(412);
plot(n, z1);
axis([0 32 -2 2]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Восстановленный сигнал по 3 гармоникам');
z2 = recover(spec_Manch, 5, n, 32);
pogresh 2 = trapz((z0 - z2).^2)/E0*100
subplot(413);
plot(n, z2);
axis([0 32 -2 2]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Восстановленный сигнал по 5 гармоникам');
z3 = recover(spec_Manch, 7, n, 32);
pogresh3 = trapz((z0 - z3).^2)/E0*100
subplot(414);
plot(n, z3);
axis([0 32 -2 2]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Восстановленный сигнал по 7 гармоникам');
Рис.8 Восстановление манчестерского сигнала по 3,5,7 гармоникам.
pogresh1 = 32.5336 % погрешность от восстановления 3 гармониками
pogresh2 = 14.2699 % погрешность от восстановления 5 гармониками
pogresh3 = 12.7568 % погрешность от восстановления 7 гармониками
%восстановление сигнала в 2B1Q коде
n = 0:16;
subplot(411);
stairs(n, [M 0]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Исходный сигнал в AMI коде');
axis([0 16 -3 3]);
n = 0:0.005:16;
E0 = trapz(z0.^2);
z1 = recover(spec_2B1Q, 3, n, 16);
pogresh1 = trapz((z0 - z1).^2)/E0*100
subplot(412);
plot(n, z1);
axis([0 16 -3 3]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Восстановленный сигнал по 3 гармоникам');
z2 = recover(spec_2B1Q, 5, n, 16);
pogresh 2 = trapz((z0 - z2).^2)/E0*100
subplot(413);
plot(n, z2);
axis([0 16 -3 3]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Восстановленный сигнал по 5 гармоникам');
z3 = recover(spec_2B1Q, 7, n, 16);
pogresh3 = trapz((z0 - z3).^2)/E0*100
subplot(414);
plot(n, z3);
axis([0 16 -3 3]);grid;
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,11),
title('Восстановленный сигнал по 7 гармоникам');
Рис.9. Восстановление 2BQ1 сигнала по 3,5,7 гармоникам.
pogresh1 = 5.9783 % погрешность от восстановления 3 гармониками
pogresh2 = 3.9732 % погрешность от восстановления 5 гармониками
pogresh3 = 2.8069 % погрешность от восстановления 7 гармониками
4) Скремблирование и дескремблирование
x = [1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1];
n=5;
m=23;
subplot(311)
stairs(x), grid
axis([1 64 -0.5 1.5]);
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),
title('Исходная последовательность');
subplot(312)
% скремблирование
scr=zeros(1,64);
for i=1:64
if i<=n
scr(i)=x(i);
elseif (i>n)&(i<=m)
scr(i)=xor(x(i),scr(i-n));
elseif i>m
scr(i)=xor(xor(x(i),scr(i-n)),scr(i-m));
end
end
stairs(scr), grid
axis([1 64 -0.5 1.5]);
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),
title('Скремблированная последовательность');
subplot(313)
% дескремблирование
x2=zeros(1,64);
for i=1:64
if i<=n
x2(i)=scr(i);
elseif (i>n)&(i<=m)
x2(i)=xor(scr(i),scr(i-n));
elseif i>m
x2(i)=xor(xor(scr(i),scr(i-n)),scr(i-m));
end
end
stairs(x2), grid
axis([1 64 -0.5 1.5]);
set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),
title('Дескремблированная последовательность');
Рис.10. Скремблирование и дескремблирование сигнала.
Скремблирование используется для борьбы с большими последовательностями нулей и единиц, а так же для шифрования.
- для данного случая.
Здесь - двоичная цифра результирующего
кода, полученная на i-м такте работы скремблера. -
двоичная цифра исходного кода, поступающая на i-м такте на вход скремблера. и -
двоичные цифры результирующего кода, полученные на предыдущих тактах работы
скремблера, соответственно на 5 и на 23 тактов ранее текущего такта, и
объединенные операцией сложение по модулю 2. Различие между алгоритмами
скремблирования заключается в изменении номеров тактов (т.е. 5 и 23 в данном
случае).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.