Основы теории радиосистем передачи информации. Практикум
.pdf
Лабораторная работа № 8 «Системные характеристики телекоммуникационных систем. Связь между
помехоустойчивостью и скоростью передачи»
1 Цель работы
Реализация кодирования повторением. Определение зависимостей помехоустойчивости связи от отношения сигнал-шум.
2 Лабораторное задание
1.Реализация кодера повторением.
2.Реализация декодера повторением.
3.Оценка зависимостей BER от отношения сигнал-шум.
3 Порядок выполнения работы
Работа выполняется экспериментально с программным обеспечением Octave.
Рисунок 8.1 – Схема реализуемой модели
Целью работы является создание имитационной модели системы связи с кодированием повторением, работающей в заданном диапазоне ОСШ и рассчитывающей зависимости BER(Eb/N0) и BER(SNR). Далее приведена возможная последовательность действий по реализации этой модели, однако вы можете реализовать ее самостоятельно.
Для работы в Octave с телекоммуникационными функциями нужно загрузить специальную библиотеку, для этого нужно написать в командной строке команду:
pkg load communications
31
и нажать Enter. При этом выполнится соответствующая команда и загрузится библиотека.
Программы в Octave пишутся в двух типах файлов – скриптах (сценариях) и функциях. Скрипты являются исполняемыми файлами (файлами верхнего уровня), а функции подключаются в скрипты или другие функции.
Для того чтобы создать скрипт, нужно выбрать меню Файл – Создать – Создать сценарий.
Создайте отдельную папку (рекомендуем каждый новый проект создавать в отдельной папке). Создайте скрипт и назовите его main. В начале файла напишите следующие команды (каждую в отдельной строке):
clc
(стирает все сообщения из адресной строки); clear all
(стирает все переменные из рабочей области); close all
(закрывает все окна графиков). Далее объявите переменные
M = 2;
(индекс модуляции, возможные значения 2, 4, 16, … );
N = 10000;
(количество передаваемых символов);
Минимальное и максимальное значение SNR, для которых планируется проводить моделирование:
SNR = [0 20];
Далее необходимо объявить цикл с помощью оператора for, в котором значения snr_i будут меняться от SNR(1) до SNR(2). Кроме того, необходимо объявить индекс итерации, например, k. В каждой следующей итерации k будет увеличиваться на 1.
k = 0;
for snr_i =SNR(1):SNR(2) k = k+1
Создайте функцию (в отдельном файле) кодирования повторением repeat_code. Аргументы функции bits, D, выход coded_bits. Саму функцию можно реализовать, используя следующий алгоритм. Создается пустой вектор coded_bits, который в дальнейшем мы наполним закодированными битами.
coded_bits = [];
Создаем цикл от 1 до длины вектора входных битов, в каждой итерации объявляем пустой вектор bits_D и далее в цикле от 1 до D наполняем его копиями i-го бита (вставляем D раз) и записываем в вектор coded_bits:
32
for i = 1:length(bits) bits_D = []; for d = 1:D
bits_D = [bits_D,bits(i)]; end
coded_bits = [coded_bits,bits_D]; end
На этом код функции заканчивается.
Вставьте функцию в скрипт main и расположите ее в соответствии с рисунком 8.1 (на вход подаются биты с генератора случайных чисел, выход функции подключен к модулятору):
bits = randi([0 M-1],N,1); coded_bits = repeat_code (bits, D); qam_sym = modulator(coded_bits, M);
Измените аргументы функции awgn: вместо SNR подайте текущее значение snr_i.
Создайте функцию декодирования со входами bits, D и выходом decoded_bits. Она может иметь следующую логику. Создается пустой вектор decoded_bits, который в дальнейшем мы наполним закодированными битами.
decoded_bits = [];
В цикле с i от 1 до длины вектора входных битов с шагом D необходимо в каждой итерации вырезать из вектора соответствующую группу битов, сложить значения всех битов, разделить на D и округлить. Результат добавить к decoded_bits:
for i = 1:D:length(bits) bits_group= bits(i:i+D-1); decoded_bit= round(sum(bits_group)/D); decoded_bits = [decoded_bits, decoded_bit]; end
В каждой итерации (для каждого значения snr_i) необходимо рассчитывать
BER(k):
ber(k) = (length(find(de2bi(bits) – de2bi(decoded_bits))))/(N*log2(M));
На этом итерация глобального цикла snr_i заканчивается. Последним этапом является построение в логарифмическом масштабе зависимостей
BER(Eb/N0) и BER(SNR):
semilogy(SNR(1):SNR(2), ber)
Для того, чтобы следующий график построился в новом графическом окне, можно воспользоваться функций figure, которая его открывает.
semilogy([SNR(1):SNR(2)] – 10*log10(1/D), ber)
Для построения двух графиков в одном графическом окне нужно между соответствующими функциями построения записать команду hold on. Оси графиков можно подписать следующим образом.
xlabel(' SNR'); ylabel(' BER ');
Постройте зависимости BER для различных значений D.
4 Дополнительное задание для самостоятельной работы
1.Разработанная модель будет корректно работать только для BPSK модуляции, поскольку генератор случайных чисел формирует символы, а не биты. Для значений M>2 будут повторяться именно символы. Модифицируйте модель для корректной работы с M>2.
2.Разработанный помехоустойчивый код обладает относительно низкой эффективностью. Более продуктивным будет объединение процедур демодуляции и декодирования (мягкое декодирование). В этом случай на вход декодера должны поступать не биты с выхода демодулятора, а непосредственно значения отсчетов на входе приемника. Модифицируйте модель для мягкого декодирования и постройте зависимости BER(Eb/N0) и BER(SNR).
5 Контрольные вопросы
1.Как рассчитать значение BER?
2.Каково может быть максимальное значение BER и почему?
3.Каким образом можно декодировать повторенные биты?
Листинг основной работы:
Файл main.m
clc clear all close all
M = 2;
N = 1000;
SNR = [0 20];
D = 2;
k = 0;
for snr_i = SNR(1):SNR(2) k = k+1
bits = randi([0 M-1],N,1); coded_bits = repeat_code (bits, D);
qam_sym = modulator(coded_bits, M); chan_sym = awgn(qam_sym,snr_i,'measured');
r_bits = demodulator(chan_sym, M); decoded_bits = repeat_decode (r_bits, D);
ber(k) = (length(find(de2bi(bits) – de2bi(decoded_bits))))/(N*log2(M)); end semilogy(SNR(1):SNR(2), ber) xlabel('SNR');
ylabel('BER'); hold on
34
figure
semilogy([SNR(1):SNR(2)] – 10*log10(1/D), ber) ylabel('BER'); xlabel('EB/NO');
Файл repeat_code.m
function coded_bits = repeat_code (bits, D) coded_bits = []; for i = 1:length(bits) bits_D = [];
for d = 1:D
bits_D = [bits_D,bits(i)]; end coded_bits = [coded_bits,bits_D]; end endfunction
Файл repeat_decode.m
function decoded_bits = repeat_decode (bits, D) decoded_bits = []; for i = 1:D:length(bits) bits_group = bits(i:i+D-1);
decoded_bit = round(sum(bits_group)/D); decoded_bits = [decoded_bits, decoded_bit];
end endfunction
35
ПРАКТИЧЕСКИЕ ЗАДАНИЯ
1.1. Определить энтропию и избыточность двоичного источника с независимым выбором элементов, если задана вероятность первого сообщения
P(x1). P(x2) =1 – P(x1).
Для разных вариантов P(x1) = 1/(1+N), где N – номер варианта.
1.2. Определить энтропию и избыточность источника с независимым выбором элементов (букв), вероятности выбора которых приведены в таблице вариантов.
Таблица вариантов к задаче 1.2
№ вар. |
P(x1) |
P(x2) |
P(x3) |
P(x4) |
P(x5) |
P(x6) |
P(x7) |
P(x8) |
|
1 |
– 4 |
0,3 |
0,2 |
0,2 |
0,1 |
0,05 |
0,05 |
0,05 |
0,05 |
5 |
– 8 |
0,4 |
0,2 |
0,1 |
0,05 |
0,05 |
0,05 |
0,03 |
0,02 |
9 – 12 |
0,5 |
0,15 |
0,1 |
0,1 |
0,05 |
0,05 |
0,04 |
0,01 |
|
13 |
– 16 |
0,6 |
0,1 |
0,1 |
0,1 |
0,05 |
0,03 |
0,01 |
0,01 |
17 |
– 20 |
0,7 |
0,1 |
0,05 |
0,05 |
0,02 |
0,01 |
0,01 |
0,01 |
21 |
– 24 |
0,6 |
0,1 |
0,1 |
0,05 |
0,05 |
0,05 |
0,03 |
0,02 |
25 |
– 28 |
0,5 |
0,2 |
0,1 |
0,08 |
0,07 |
0,03 |
0,01 |
0,01 |
1.3.Закодировать сообщения источника предыдущей задачи для передачи информации по каналу связи:
- равномерным двоичным кодом; - оптимальным неравномерным двоичным кодом.
Сравните среднее число элементов кода, приходящееся на одну букву, для обоих способов кодирования и сделайте обобщающие выводы.
1.4.В системе связи используется двоичный источник с зависимыми элементами (буквами) x1, x2, для которых заданы вероятности переходов.
Требуется:
1. Изобразить на чертеже диаграмму состояний и переходов источника. 2. Вычислить вероятности P(x1) и P(x2).
3.Определить энтропию и избыточность источника с найденными
вероятностями P(x1) и P(x2) в предположении отсутствия корреляционных связей.
4.Определить энтропию и избыточность источника с учетом корреляционных связей.
5.Сравните результаты вычислений по пунктам 3 и 4, сделайте обобщающий вывод о влиянии корреляции на энтропию и избыточность источника.
Для разных вариантов P(x1 x2) =1/(1+0,1N), P(x2 x1) =(N+4)/40,
где N – номер варианта.
36
1.5.Закодировать сообщения источника предыдущей задачи для передачи сообщений по каналу связи:
- равномерным двоичным кодом; - оптимальным кодом с учетом корреляционных связей, укрупняя алфавит
путем объединения букв в кодовые слова по две буквы.
Сравнить среднее число элементов кода, приходящееся на одну букву, для этих двух случаев.
1.6.Решить задачу 1.5, укрупнив алфавит источника путем объединения букв в кодовые слова по три буквы.
1.7. Вычислить пропускную способность двоичного канала связи, если информация передается со скоростью
V = 1200 Бод (для вариантов 1 – 10);
V = 2400 Бод |
(для вариантов 11 – 20) |
или |
V = 4800 Бод |
(для вариантов 21 – |
30), а вероятность искажения |
элементарной посылки равна
p = 0,1/N,
где N – номер варианта.
Определить также производительность данного источника.
1.8. Определить энтропию и производительность источника непрерывных сообщений, если плотность вероятности сигнала описывается равномерным законом распределения, а сигнал ограничен в объёме от –10 до +N милливольт, где N – номер варианта.
Эффективная ширина спектра
f = 1000 + 10N Гц.
1.9. Определить энтропию источника непрерывных сообщений с гауссовским законом распределения напряжений, если математическое ожидание равно 10N вольт, а дисперсия 2 = 0,01N Вт, где N – номер варианта.
1.10. Вычислить пропускную способность непрерывного канала связи, если эффективная полоса пропускания канала
fэфф = 1000 + 10N Гц,
мощность сигнала на входе приемника
Pс = 100 + N мВт,
мощность помехи
Pп = 10 + N мВт,
где N – номер варианта.
1.11. Определить, какую мощность должен иметь сигнал с гауссовским законом распределения, если известна полоса пропускания канала связи
fэфф = 1000 + 10N Гц
испектральная плотность шума
Nо = 10 + N мкВт/Гц,
где N – номер варианта задачи.
Пропускная способность для разных вариантов задана и равна
37
C= 500 + 20N дв.ед.инф./с.
1.12.Рассчитать и построить зависимость пропускной способности непрерывного канала связи от эффективной полосы пропускания канала при мощности сигнала
Pс = 10 + N мВт,
где N – номер варианта задачи.
Спектральная плотность гауссовского шума в канале связи
N0 = 1 + N мкВт/Гц.
1.13. По дискретному двоичному каналу связи с шумами передаются сигналы S1(t) и S2(t) в виде импульсов тока с априорными вероятностями P(S1) и P(S2). Потери, обусловленные искажениями сигнала S1(t), составляют П21 единиц, а искажениями сигнала S2(t) – П12 единиц.
Определить:
1.Среднюю вероятность ошибки, используя критерий идеального наблюдателя.
2.Среднюю вероятность ошибки, используя критерий максимального правдоподобия.
3. Величину среднего риска, вызванного искажениями сигналов
S1(t) и S2(t).
Ответить также на вопрос о том, каким образом можно практически уменьшить величину среднего риска. Ответ должен сопровождаться рисунками: временными диаграммами, графиками плотностей вероятности сигналов S1(t) и S2(t) с учетом наличия гауссовских шумов.
Исходные данные к задаче приведены в таблице вариантов.
1.14. На вход решающего устройства приемника поступает телеграфный сигнал и гауссовская помеха с дисперсией . Сигнал S1(t) представляет собой импульс прямоугольной формы длительностью T с амплитудой A1, сигнал S (t) представляет собой также импульс прямоугольной формы длительностью T и амплитудой A2.
За время длительности сигнала T произведено два замера в моменты времени t1 и t2, причем t = t2 – t1 больше интервала корреляции помехи.
Измеренные значения x1 = x(t1 ) и x2 = x(t2 ) известны.
Найти отношение правдоподобия и принять решение о том, какой из сигналов выдает решающее устройство по критерию идеального наблюдателя
для двух случаев: |
|
P(S1) = P(S2) = 0,5 и |
P(S1) P(S2) 0,5. |
Ответ должен сопровождаться подробными пояснениями и рисунками: временными диаграммами, графиками плотности вероятности сигналов S1(t) и S2(t) с учетом наличия гауссовских шумов.
На этих рисунках показать значения x1 и x2 .
Исходные данные к задаче приведены в таблице вариантов.
38
1.15. На вход приемного устройства, оптимального по критерию идеального наблюдателя, поступает сигнал с ДАМ, ДЧМ, ДФМ или ДОФМ с амплитудой Am и стационарный белый шум со спектральной плотностью N0. Вероятности сигналов P(S1) = P(S2) = 0,5.
Скорость передачи в канале связи V Бод.
Вычислить и изобразить графически зависимости средней вероятности ошибки от амплитуды входного сигнала Am.
Исходные данные к задаче приведены в таблице вариантов. При решении задачи рекомендуется задаться вероятностями ошибки 10–1, 10–2, 10–3, 10–4.
1.16. На вход приемного устройства, оптимального по критерию идеального наблюдателя, поступают сигналы с ДАМ, ДЧМ, ДФМ или ДОФМ с амплитудой Am и стационарный белый шум со спектральной плотностью N0. Вероятности сигналов P(S1) = P(S2) = 0,5. Скорость передачи в канале связи V Бод.
Найти вероятность искажения сигнала для заданного варианта задачи. Исходные данные приведены в таблице вариантов.
Решение должно сопровождаться подробными пояснениями.
1.17. На вход приемного устройства, оптимального по критерию
идеального наблюдателя, поступает сигнал с ДЧМ вида |
|
|
|
|
||||||
|
|
|
|
S1(t) = 4cos(1t + 1), |
|
|
|
|
||
|
|
|
|
S2(t) = 4cos(2t + 2). |
|
|
|
|
||
Априорные вероятности сигналов P(S1) = P(S2) = 0,5. |
|
|
||||||||
Скорость передачи V = 200 Бод, причем V << 1 |
и V << 2, |
а 2 – 1 >> |
||||||||
V (сигналы ортогональны). |
|
|
|
|
|
|
|
|||
Стационарный белый (гауссовский) шум в канале связи имеет |
||||||||||
спектральную плотность N0 = 0,01 Вт/Гц. |
|
|
|
|
|
|||||
Таблица вариантов к задаче 1.13 |
|
|
|
|
|
|||||
|
№ вар. |
P(S1) |
|
P(S2) |
P(S2/ S1) |
P(S1/ S2) |
П21 |
|
П12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0,1 |
|
0,9 |
0,001 |
0,0001 |
200 |
|
10 |
|
|
2 |
0,05 |
|
0,95 |
0,002 |
0,0001 |
150 |
|
5 |
|
|
3 |
0,15 |
|
0,85 |
0,003 |
0,0002 |
120 |
|
3 |
|
|
4 |
0,2 |
|
0,8 |
0,001 |
0,0002 |
250 |
|
5 |
|
|
5 |
0,9 |
|
0,1 |
0,0002 |
0,002 |
5 |
|
200 |
|
|
6 |
0,1 |
|
0,9 |
0,002 |
0,0001 |
250 |
|
4 |
|
|
7 |
0,05 |
|
0,95 |
0,001 |
0,0003 |
120 |
|
3 |
|
|
8 |
0,15 |
|
0,85 |
0,004 |
0,0002 |
200 |
|
2 |
|
|
9 |
0,2 |
|
0,8 |
0,001 |
0,0001 |
150 |
|
6 |
|
|
10 |
0,9 |
|
0,1 |
0,0003 |
0,001 |
4 |
|
150 |
|
|
11 |
0,9 |
|
0,1 |
0,0002 |
0,003 |
10 |
|
100 |
|
|
12 |
0,95 |
|
0,05 |
0,0001 |
0,003 |
50 |
|
10 |
|
|
13 |
0,85 |
|
0,15 |
0,0004 |
0,002 |
60 |
|
3 |
|
|
14 |
0,8 |
|
0,2 |
0,0004 |
0,004 |
10 |
|
150 |
|
|
|
|
|
|
39 |
|
|
|
|
|
15 |
0,1 |
0,9 |
0,005 |
0,0002 |
10 |
120 |
16 |
0,9 |
0,1 |
0,0006 |
0,003 |
100 |
6 |
17 |
0,2 |
0,8 |
0,008 |
0,0004 |
120 |
6 |
18 |
0,15 |
0,85 |
0,0001 |
0,004 |
10 |
200 |
19 |
0,05 |
0,95 |
0,01 |
0,001 |
10 |
150 |
20 |
0,1 |
0,9 |
0,0008 |
0,01 |
120 |
4 |
21 |
0,01 |
0,99 |
0,001 |
0,01 |
80 |
2 |
22 |
0,03 |
0,97 |
0,001 |
0,003 |
60 |
5 |
23 |
0,05 |
0,95 |
0,004 |
0,005 |
200 |
10 |
24 |
0,02 |
0,98 |
0,005 |
0,002 |
20 |
3 |
25 |
0,08 |
0,92 |
0,003 |
0,001 |
75 |
6 |
26 |
0,95 |
0,01 |
0,002 |
0,03 |
3 |
200 |
27 |
0,93 |
0,02 |
0,001 |
0,002 |
6 |
40 |
Таблица вариантов к задаче 1.14
№ вар. |
2, Вт |
A1, B |
A2, B |
x1, B |
x2, B |
P(S1) |
1 |
0,36 |
–0,6 |
0,6 |
–0,1 |
0,2 |
0,7 |
2 |
0,07 |
0 |
0,5 |
0,2 |
0,4 |
0,3 |
3 |
0,7 |
–0,7 |
0,7 |
–0,3 |
0,1 |
0,3 |
4 |
0,07 |
0 |
0,6 |
0,4 |
0,3 |
0,6 |
5 |
0,32 |
–0,8 |
0,8 |
0,2 |
–0,1 |
0,7 |
6 |
0,09 |
0 |
0,8 |
0,4 |
0,3 |
0,2 |
7 |
0,8 |
–0,5 |
0,5 |
–0,3 |
–0,1 |
0,3 |
8 |
0,06 |
0 |
0,5 |
0,1 |
0,3 |
0,15 |
9 |
0,32 |
–0,8 |
0,8 |
–0,2 |
0,4 |
0,8 |
10 |
0,09 |
0 |
0,6 |
0,4 |
0,1 |
0,3 |
11 |
0,72 |
–0,6 |
0,6 |
–0,2 |
–0,1 |
0,2 |
12 |
0,09 |
0 |
0,6 |
0,1 |
0,3 |
0,1 |
13 |
0,35 |
–0,5 |
0,5 |
–0,3 |
0,4 |
0,35 |
14 |
0,06 |
0 |
0,5 |
0,4 |
0,2 |
0,75 |
15 |
0,75 |
–0,7 |
0,7 |
–0,3 |
–0,1 |
0,2 |
16 |
0,05 |
0 |
0,4 |
0,3 |
0,2 |
0,75 |
17 |
0,8 |
–0,8 |
0,8 |
0,1 |
0,3 |
0,8 |
18 |
0,08 |
0 |
0,7 |
0,4 |
0,5 |
0,9 |
19 |
0,4 |
–0,6 |
0,6 |
–0,3 |
–0,1 |
0,15 |
20 |
0,04 |
0 |
0,6 |
0,3 |
0,4 |
0,8 |
21 |
0,3 |
–0,7 |
0,7 |
0,1 |
–0,3 |
0,25 |
22 |
0,05 |
0 |
0,4 |
0,2 |
0,1 |
0,25 |
23 |
0,5 |
–0,5 |
0,5 |
0,4 |
–0,2 |
0,8 |
24 |
0,08 |
0 |
0,5 |
0,2 |
0,4 |
0,7 |
25 |
0,35 |
–0,4 |
0,4 |
–0,2 |
–0,1 |
0,2 |
26 |
0,09 |
0 |
0,8 |
0,3 |
0,4 |
0,2 |
27 |
0,4 |
–0,7 |
0,7 |
–0,4 |
0,6 |
0,75 |
28 |
0,2 |
0 |
0,7 |
0,5 |
0,4 |
0,7 |
29 |
0,3 |
–0,6 |
0,6 |
0,2 |
–0,3 |
0,3 |
30 |
0,08 |
0 |
0,6 |
0,1 |
0,4 |
0,25 |
40
