Широкополосная передача с использованием псевдослучайных

advertisement
Широкополосная передача с использованием псевдослучайных последовательностей.
В цифровых системах связи расширение полосы достигается, как правило, путём
дополнительной модуляции сигнала. В частности применяется модуляция несущей цифровой
кодовой последовательностью с частотой следования символов, во много раз превосходящей
ширину полосы информационного сигнала. Такие системы называют системами с
одночастотными псевдослучайными сигналами (direct sequence spreading systems).
Простейший
и
наиболее
полно
исследованный
класс
псевдослучайных
последовательностей образуют М – последовательности. Последовательностью максимальной
длины (М - последовательностью) называется последовательность, порожденная сдвиговым
регистром с обратными связями, задаваемыми коэффициентами примитивного полинома.
Пусть
h( x)  h0 x n  h1 x n 1  ...  hn 1 x  hn
(1)
произвольный двоичный полином степени n. Говорят, что последовательность 𝑎 порождается
полиномом h(x), если при всех i
n
n 1
j 0
j 0
 hi ai j  0 или ain   h j ai j .
В случае двоичного полинома h0  hn  1 всегда, а hi , i  0, n принимают значения 0 или 1.
Генератор последовательности, порожденной полиномом (1), показан на рис. 1.
-h1
-h2
+
+
-hn-1
…
+
Рис. 1
Порождаемая таким генератором последовательность будет, очевидно, периодической,
причем величина периода совпадает с числом различных состояний сдвигового регистра. Ясно,
что число возможных состояний (исключая нулевое) сдвигового регистра есть 2 n  1 , однако, если
обратные связи заданы произвольным полиномом, то число различных реализующих состояний, а
значит и период последовательности, может оказаться меньше 2 n  1 . Если же обратные связи
заданы примитивным полиномом, то последовательность состояний сдвигового регистра
пробегает все возможные 2 n  1 состояний, и порождаемая последовательность будет иметь
максимально возможный период 2 n  1 (отсюда и название «последовательность максимальной
длины»).
Последовательность максимальной длины обладает следующими свойствами:
-
-
-
М – последовательность может быть получена с помощью регистра сдвига длины с
обратными связями, задаваемыми примитивным полиномом, где n – порядок примитивного
полинома;
период последовательности равен N = 2 n  1 ;
число единиц в последовательности на одну больше, чем нулей;
на выходе регистра могут быть получены все сдвиги M – последовательности, т.е.
существует в точности N различных последовательностей, порождаемых полиномом h(x).
Все они являются N различными сдвигами M – последовательности;
сложение по модулю два любой последовательности максимальной длины с
последовательностью, полученной путем любого циклического сдвига этой же
последовательности на некоторое число позиций, приводит к новой последовательности,
-
-
которая представляет собой циклический сдвиг той же самой последовательности на другое
число позиций;
каждое возможное состояние или n – разрядная комбинация данного n – разрядного
генератора за время формирования полного периода кода возникает в некоторый момент
времени только 1 раз. Исключением является комбинация из одних нулей, в нормальном
режиме работы она не возникает и не должна возникать;
двоичные М – последовательности обладают двухуровневой автокорреляционной
функцией   , т.е.
N, l = Nk, k = 0,1,2,…
-1, l Nk
Вид автокорреляционной функции показан на рис. 3
2n-1
-1
1
0
-1
Рис. 3
Взаимнокорреляционные функции М – последовательностей, как и других
псевдослучайных последовательностей, обычно характеризуют набором значений корреляции и
их весов (число значений аргумента l, при котором она принимает данное значение С) или
взаимно-корреляционным спектром пары последовательностей xn , y n .
Можно показать, что взаимнокорреляционная функция последовательностей xn , y n ,
порождаемых различными примитивными полиномами, принимает, как минимум, три различных
значения. Взаимно корреляционные функции, принимающие три значения, называются
предпочтительными, а соответствующие пары М – последовательностей – предпочтительными
парами.
Множество М – последовательностей называется связным, если любая входящая в него
пара предпочтительна. Связное множество максимальной мощности будем называть
максимальным связным множеством. В табл. 1 приведены мощности М множеств, содержащих
все М – последовательности данного периода и определенные для них пиковые значения С
взаимнокорреляционных функций, а также мощности Мn максимальных связных множеств и
пиковые значения Сn предпочтительных взаимно-корреляционных функций.
n
3
4
5
7
10
15
N= 2  1
7
15
31
127
1023
32767
n
M
2
2
6
18
60
1800
C
5
9
11
41
383
2047
Мn
2
0
3
6
3
2
Таблица 1
Сn
5
9
9
17
65
257
Максимальные связные множества М-последовательностей используются в тех случаях,
когда требуется небольшое количество последовательностей с очень хорошими
взаимнокорреляционными свойствами. В большинстве приложений, например, широкополосные
системы связи с многостанционным доступом, требуются значительно большие множества
последовательностей. Применять в них большие множества последовательностей максимальной
длины нецелесообразно, поскольку взаимно-корреляционные функции больших множеств Мпоследовательностей периода 127, обладает пиковым значением взаимнокорреляционой функции
Сn = 17. В то же время, произвольное множество из 7 и более последовательностей этого периода
характеризуются сравнительно большим значением взаимной корреляции C = 41.
Рассмотрим прием и передачу сообщений M-последовательностями периода 63. Их спектр,
представленный на рис. 4, очень похож на спектр шума, используя это свойство Мпоследовательностей можно, например, обеспечивать скрытую передачу.
При моделировании передачи по каналу с периодической помехой, спектры которой
показаны на рис. 5 зеленым цветом, на приемной стороне производится быстрое преобразование
Фурье, значение амплитуды, соответствующее пику спектра помехи, обнуляется, и решение
принимается по минимуму расстояния между принятым сигналом и известной Мпоследовательностью.
Алгоритм приема:
1. Быстрое прямое преобразование Фурье принятого сигнала.
2. Нахождение позиций со значениями большими максимального значения спектра Мпоследовательности и определении их как искаженных.
3. Обнуление значений спектра, принятого сигнала, на искаженных позициях.
4. Быстрое обратное преобразование Фурье.
5. Принятие решения о принятом сообщении по минимуму расстояния между
преобразованным
принятым
сигналом
и
возможными
вариантами
Мпоследовательностей.
В результате моделирования при различных периодических помехах решение о
передаваемом символе в приемнике оказывалось верным.
Результаты работы алгоритма при передаче сообщения 1 для различных помех:
1. 𝑑1 = 11, 𝑑0 = 125.4
2. 𝑑1 = 11, 𝑑0 = 123.6
3. 𝑑1 = 26.2, 𝑑0 = 115.6
где 𝑑1 , 𝑑0 − расстояния до М-последовательностей, использующихся соответственно для
передачи сообщений 1 и 0.
Рис. 4
Рис. 5
Приложение
1. Функция генерации M-последовательности
function M = generate_mseq( poly )
n = size(poly, 2) - 1;
reg = [1, zeros(1, n - 1)];
new_reg = zeros(1,n);
for i = 1:(2^n - 1)
M(i) = reg(n);
new_reg(1) = reg(n);
new_reg(2:n) = mod(reg(1:n-1) + poly(2:n).*reg(n), 2);
reg = new_reg;
end
end
2. Функция симуляции передачи M-последовательности в канале с различными
помехами
%%
clear;
clc;
% to generate M-sequence
M = generate_mseq([1, 0, 0, 0, 0, 1, 1]);
len = size(M,2) + 1;
% physical representation M-seq in channel
% logical 0
Din_0 = zeros(1,len);
for i = 1:len-1
Din_0(i) = (-1)^M(i);
end
% logical 1
Din_1 = (-1).*Din_0;
% to generate -1 1 -1 1 .. -1 1
G = zeros(1,len);
for i = 1:len-1
G(i) = (-1)^i;
end
% to compute spectrum
spec_D = fft(Din_0);
spec_G = fft(G);
figure(1);
plot(1:len, abs(spec_D(1:len)).^2,1:len, abs(spec_G(1:len)).^2);
title('Spectrum');
legend('M sequence', '-1 1 -1 1 ...');
% summary in channel
spec = spec_D + spec_G;
spec(33) = 0;
Dout = ifft(spec);
% to calculate distance
diff1 = sum(abs(Dout - Din_0));
diff2 = sum(abs(Dout - Din_1));
disp(diff1);
disp(diff2);
%%
% to generate -1 -1 -1 1 -1 -1 -1 1 .. -1 -1 1
G1 = ones(1,len).*(-1);
for i = 4:4:len-1
G1(i) = 1;
end
% to compute spectrum
spec_G1 = fft(G1);
figure(2);
plot(1:64, abs(spec_D(1:len)).^2,1:len, abs(spec_G1(1:len)).^2);
title('Spectrum');
legend('M sequence', '-1 -1 -1 1 -1 -1 -1 1 ...');
% summary in channel
spec = spec_D + spec_G1;
spec(find(abs(spec(1:len)).^2 > max(abs(spec_D(1:len)).^2))) = 0;
Dout = ifft(spec);
% to calculate distance
diff1 = sum(abs(Dout - Din_0));
diff2 = sum(abs(Dout - Din_1));
disp(diff1);
disp(diff2);
%%
% to generate 1 1 -1 -1 1 1 -1 -1 .. 1 1 -1 -1
G2 = ones(1,len).*(-1);
for i = 1:4:len-1
G2(i) = 1;
G2(i+1) = 1;
end
% to compute spectrum
spec_G2 = fft(G2);
figure(3);
plot(1:len, abs(spec_D(1:len)).^2,1:len, abs(spec_G2(1:len)).^2);
title('Spectrum');
legend('M sequence', '1 1 -1 -1 1 1 -1 -1 ...');
% summary in channel
spec = spec_D + spec_G2;
spec(find(abs(spec(1:len)).^2 > max(abs(spec_D(1:len)).^2))) = 0;
Dout = ifft(spec);
% to calculate distance
diff1 = sum(abs(Dout - Din_0));
diff2 = sum(abs(Dout - Din_1));
disp(diff1);
disp(diff2);
Download