Вы находитесь на странице: 1из 67

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию


Государственное образовательное учреждение высшего профессионального образования
Российский государственный гидрометеорологический университет

Е.А.Чернецова

Cистемы и сети передачи информации


Лабораторный практикум
Часть 1

Санкт-Петербург
2016

1
УДК 681.3.07

Чернецова Е.А. Системы и сети передачи информации. Лабораторный практикум.


Часть 1. - СПб.: изд. РГГМУ, 2016.- с.

Рецензент И.В.Алешин, проф.Санкт-Петербургского государственного морского


технического университета
Лабораторный практикум предназначен для студентов специальности
«Информационная безопасность телекоммуникационных систем» . Используемые в тексте
примеры программирования тестировались в пакете MATLAB 6.05.

 Е.А. Чернецова 2016


 Российский государственный гидрометеорологический университет (РГГМУ),
2016

2
Лабораторная работа № 1

Проектирование аналоговых и цифровых фильтров

Цель работы: изучение реализации процесса выборки с запасом и расчета параметров


аналоговых и цифровых фильтров.
Задание на выполнение работы:
Разработать аналоговый и цифровой фильтр для параметров сигнала, приведенных в
таблице 1.
Таблица 1. Параметры сигнала – варианты заданий
№ Fmin , Fmax , F p , кГц Р, дБ
п/п кГц кГц
1 0,3 3,6 0,9 -48
2 0,3 2,7 1,0 -52
3 0,4 3,4 1,2 -60
4 0,5 4,6 0,8 -64
5 0,05 10 0,5 -47
6 0,03 15 0,5 -35
7 60,6 107,7 1 -63
8 512,3 551,4 12 -40
9 330 530 12 -45
10 312,3 351,6 10 -50
11 0,3 3,6 0,9 -44
12 0,3 2,7 1,0 -58
13 0,4 3,4 1,2 -62
14 0,5 4,6 0,8 -67
15 0,05 10 0,5 -57
16 0,03 15 0,5 -55
17 60,6 107,7 1 -53
18 512,3 551,4 12 -46
19 330 530 12 -49
20 312,3 351,6 10 -54

Теоретические сведения

Рассмотрим процесс выборки с запасом для амплитудно-модулированного


телефонного сигнала с параметрами:
Fmin  300 Гц; - нижняя граничная частота спектра сигнала
Fmax  3400 Гц; - верхняя граничная частота спектра сигнала
F p  800 Гц – ширина полосы расфильтровки между исходным сигналом и нижней
боковой полосой первой гармоники частоты дискретизации

Рассчитаем значение частоты дискретизации сигнала, при которой будут отсутствовать


искажения дискретизации, если в системе связи включается ФНЧ с шириной полосы
расфильтровки – защитного интервала F p :
Fs  2 * Fmax  F p =2*3400+800=7600 Гц (1)
Существует несколько полезных аппроксимаций характеристики идеального ФНЧ.
Одну из них дает фильтр Баттерворта, аппроксимирующий идеальный ФНЧ функцией :

3
1
2n
|Hn(f)| = f  n 1 (2)
1   сигн 
 fu 
где f u - верхняя частота среза ( по уровню -3дБ); n – порядок фильтра
Чем выше порядок, тем выше сложность и стоимость реализации фильтра.
Пусть необходимо обеспечить условие снижения наложения спектров мощностей
гармоник частоты дискретизации до уровня Р=-50 дБ. Верхнюю частоту среза аналогового
ФНЧ Баттерворта f u выберем равной 3600 Гц. Если делать аналоговый фильтр
несложным и недорогим, то нужно ограничиться порядком фильтра n=2. Тогда переведя
децибелы в разы из формулы (2) имеем:
1
| H n ( f ) |  0.00001
4
f 
1   сигн 
 fu 
Решая это уравнение, получим, что
f сигн
соотношение  10 2 , 5  f сигн  3600 * 10 2 ,5  1137600 Гц
fu
Частота дискретизации по теореме Найквиста должна быть не менее удвоенной верхней
частоты в спектре сигнала. Получаем f дискр  f s  2 f сигн  2275200 Гц. Мы не
заинтересованы в столь высокой частоте дискретизации, т.к. должна быть значительно
повышена емкость буферных устройств в системе связи.
Поэтому отфильтрованный аналоговым фильтром сигнал посылается на устройство
квантования, на выходе которого имеем уже цифровой сигнал, который можно
подвергнуть цифровой фильтрации.

Порядок выполнения работы

Цифровой фильтр разрабатываем с помощью библиотеки Filter Design and Analysis


Tool блока Signal Processing Toolbox пакета прикладных программ Matlab. Для начала
работы в рабочем окне печатаем команду вызова интерфейса разработки фильтра fdatool.
Интерфейс разработки и анализа фильтра с введенными параметрами представлен
на рисунке 1.
Нажатием кнопки «Design filter» рассчитываются коэффициенты цифрового фильтра.
Структура разработанного фильтра и его функция передачи представлена на рисунке 2.

С помощью кнопки можно просмотреть модель реализованного фильтра,


которая состоит из четырнадцати секций, одна из которых для примера приведена на
рисунке 3.
Коэффициенты фильтра можно экспортировать в рабочую область в качестве
переменных, относящихся к числителю (Num) и знаменателю (Den) функции передачи
фильтра с помощью команды File- Export- To Workspace. В данном примере фильтр
представляет собой секции второго порядка и коэффициенты его представляют собой
матрицу.
Модель фильтрующего устройства представлена на рисунке 4.
На вход схемы подается синусоидальный сигнал с параметрами, представленными
на рисунке 5. Заметим, что верхняя частота в спектре сигнала равна 144000 Гц.

4
Рисунок 1. Интерфейс разработки и анализа фильтра

Рисунок 2. Интерфейс, представляющий структуру разработанного фильтра

5
Рисунок 3. Одна из секций разработанного фильтра

Рисунок 4. Схема для тестирования разработанного фильтра

Рисунок 5. Параметры входного синусоидального сигнала


6
Сигнал с выхода фильтра загружается в рабочую область.
a=abs(fft(xcov(yout))); % построение спектра выходного сигнала
% Пересчет отсчетов частоты: Fs  7600 Гц; 0:10001 – количество отсчетов сигнала
% на выходе фильтра yout.
f = 7600*(0:10001)/20002;
plot(f(1:10001),a(1:10001)); % Построение графика спектра выходного сигнала
Как видно из рисунка 6, в спектре выходного сигнала остались только частоты от 300
до 3400 Гц.

Рисунок 6. Спектр выходного сигнала

Как видно из рисунка 2, разработанный цифровой фильтр содержит 14 секций вида,


изображенного на рисунке 3, однако если ослабить требования к уровню затухания
спектральных составляющих вне полосы пропускания фильтра Astop1 и Astop 2 , то можно
получить фильтр, состоящий из меньшего числа секций. Однако для фильтра,
реализуемого цифровым образом, наличие большого числа секций не влияет на стоимость
его изготовления и не вносит нелинейных искажений в сигнал.

Отчет должен содержать:


1. Задание на выполнение работы
2. Рассчитанную передаточную характеристику фильтра ( рисунок 2)
3. Структурную схему одного звена фильтра ( рисунок 3)
4. Спектральную характеристику фильтра ( рисунок 6)
5. Выводы

Контрольные вопросы:
1. Как изменится структура фильтра, если снизить требования к подавлению частот
вне полосы пропускания?
2. Как изменится структура фильтра, если повысить требования к подавлению частот
вне полосы пропускания?

7
Лабораторная работа № 2

Изучение цифровой квадратурной модуляции

Цель работы: использование глазковой диаграммы (eyediagram) и диаграммы рассеяния


(scatterplot) для анализа квадратурной модуляции сигнала в системе связи.

Задание на выполнение работы:

1. воспроизвести в пакете MATLAB программу применения функций scatterplot и


eyediagram для анализа модулированного сигнала
2. применить функций scatterplot и eyediagram для анализа модуляции заданного сигнала
3. воспроизвести в пакете МАТЛАБ программу моделирования сигнала в модуляции с
минимальным сдвигом
4. Разработать для квантованной исходной последовательности ( считать его сигналом в
кодировке РАМ) согласованный фильтр. Рассчитать значение энергии в додетекторной
точке z . Принять значение порога обнаружения сигнала равным z/2 и рассчитать,
при каком отношении сигнал/шум сигнал не будет обнаруживаться.

Теоретические сведения

Основными задачами модуляции являются:


1. Совместимость сигналов с характеристиками канала передачи
2. максимизация эффективности использования полосы частот.
3. увеличение скорости передачи данных
При квадратурной модуляции (QPSK) поток импульсов разделяется на синфазный
(четные биты) и квадратурный (нечетные биты). Синфазный поток умножается на
несущую, а квадратурный – на ту же несущую, сдвинутую по фазе на 90 0. Затем два
модулированных сигнала складываются и передаются вместе. В приемнике сигналы
обнаруживаются независимо с помощью согласованных фильтров в виде пары (x,y) . На
рис.1 показаны диаграммы рассеяния (scatterplot) сигнала. Двумерные диаграммы
рассеяния используются для визуализации взаимосвязей между двумя переменными X и
Y . На этих диаграммах отдельные точки данных представлены маркерами на плоскости,
где оси соответствуют переменным. Две координаты (X и Y), определяющие положение
точки, соответствуют значениям переменных. Если между переменными существует
сильная взаимосвязь, то точки на графике образуют упорядоченную структуру ( рис.1, а).
Если переменные не взаимосвязаны, то точки образуют "облако" (рис.1, б).

8
Рис.1, а

Рис.1, б
Глазковая диаграмма – это изображение, полученное в результате измерения
отклика системы на заданные узкополосные сигналы. На вертикальные пластины
осциллографа подается отклик приемника на случайную последовательность импульсов, а
на горизонтальные – пилообразный сигнал сигнальной частоты ( горизонтальная
временная развертка осциллографа устанавливается равной длительности символа
(импульса). В течение каждого сигнального промежутка очередной сигнал накладывается
на семейство кривых в интервале (0,Т). На рис.2 приведена глазковая диаграмма,
получаемая при двоичной антиподной (биполярные импульсы) передаче сигналов.
Поскольку символы поступают из случайного источника, они могут быть как
положительными, так и отрицательными, и отображение послесвечения электронного
луча позволяет видеть изображение, имеющее форму глаза. Ширина открытия глаза
указывает время, в течение которого должна быть проведена выборка сигнала.
Оптимальное время взятия выборки соответствует максимально распахнутому глазу, что
дает максимальную защиту от воздействия помех. Диапазон разностей амплитуд DA
является мерой искажения, вызванного межсимвольной интерференцией (наложением
сигналов друг на друга из-за образования сигнальных «хвостов» вследствие воздействия
помех), а диапазон разностей времен перехода через нуль JT является мерой неустойчивой
синхронизации. MN – мера запаса помехоустойчивости, ST – чувствительность к ошибкам
синхронизации. Чаще всего глазковая диаграмма используется для качественной оценки

9
межсимвольной интерференции. По мере открытия глаза она уменьшается, а по мере
закрытия – увеличивается.

Рис.2

Порядок выполнения работы:


Часть 1 и 2
Рассмотрим использование функций Matlab Communications Toolbox для анализа систем
связи. График промодулированного и отфильтрованного сигнала не показывает
характеристик модуляции так явно как глазковая диаграмма и диаграмма рассеяния. На
глазковой диаграмме показываются много коротких сегментов, называемых следами для
визуализации характеристик сигнала. Диаграмма рассеяния осуществляет посимвольные
выборки сигнала и показывает их в пространстве сигнала. Размер выборки 16 показывает
графические возможности этой функции.

Введем следующие обозначения:


N- размер выборки, приходящийся на один след;
Fc – несущая частота;
Fs – частота взятия отсчетов; Fs  2 * Fc  BW , где BW - полоса пропускания
модулированного сигнала;
Fd – частота следования символов.
Symb - количество передаваемых символов;
M – размерность алфавита кодировки;

N = 16; Fd = 1; Fs = N * Fd; Delay = 3; Symb = 60; M = 16; %определение переменных


msg_orig = randsrc(Symb,1,[0:M-1],4321); % генерация случайных чисел в рамках алфавита
М
msg_tx = modmap(msg_orig,Fd,Fd,'qask',M); %квадратурная модуляция
x = complex(msg_tx(:,1),msg_tx(:,2)); %создание комплексного результата
[y, t] = rcosflt(x, Fd, Fs); % пропускание через косинусоидальный фильтр
plot(t, real(y));
pause

%%
Глазковая диаграмма используется для графического представления промодулированного
отфильтрованного сигнала для демонстрации контуров модуляции. Представим один
график для синфазной компоненты и один график для квадратурной компоненты.

h1 = eyediagram(y, N); % Создание глазковой диаграммы

% Перемещение фигуры в правую сторону экрана


ss = get(0,'ScreenSize');

10
fp = get(h1,'position');
set(h1,'position',[ss(3)*.99-fp(3) ss(4)*.9-fp(4) fp(3:4)]);
pause

%%
Глазковая диаграмма может также использоваться для графического представления
реальной части сигнала.. yReal является реальной частью синфазной компоненты y.
Глазковая диаграмма различает, что сигнал реальный и создает только одну пару осей.

% Создание глазковой диаграммы.


yReal = real(y);
h2 = eyediagram(yReal, N);

% Управление графическим окном.


close(h1(ishandle(h1)))
fp = get(h2,'position');
set(h2,'position',[ss(3)*.99-fp(3) ss(4)*.9-fp(4) fp(3:4)]);
pause

%%
Предыдущая глазковая диаграмма представляла графически всю переменную у. Однако
нам не интересны хвостовые части у, которые содержат ранние и поздние частичные
отклики фильтра. Следующие графики демонстрируют глазковую диаграмму переменной
уу, которая не включает “хвосты” у. Теперь характеристики модуляции становятся
явными. Каждая синфазная и квадратурная составляющая 16-разрядной QAM занимает
4 отличающихся уровней в центре диаграммы с небольшим перекрытием между
уровнями

% Создание глазковой диаграммы.


yy = y(1+Delay*N:end-Delay*(N+2));
h3 = eyediagram(yy, N);

% Управление графическим окном


close(h2(ishandle(h2)))
fp = get(h3,'position');
set(h3,'position',[ss(3)*.99-fp(3) ss(4)*.9-fp(4) fp(3:4)]);
pause
%%
Глазковая диаграмма может также представлять несколько символов на след. Следующая
фигура показывает два символа на след.

% Создание глазковой диаграммы


NumSym = 2;
h4 = eyediagram(yy, N*NumSym, NumSym);

% Управление графическим окном


close(h3(ishandle(h3)))
fp = get(h4,'position');
set(h4,'position',[ss(3)*.99-fp(3) ss(4)*.9-fp(4) fp(3:4)]);
pause

11
%% Вы можете построить диаграмму таким образом, чтобы открытая часть глаза не
находилась в центре осей. Следующую программу можно назвать представлением
закрытой части глаза в центре осей.

% Создание диаграммы.
h5 = eyediagram(yy, N, 1, N/2);

% Управление графическим окном


close(h4(ishandle(h4)))
fp = get(h5,'position');
set(h5,'position',[ss(3)*.99-fp(3) ss(4)*.9-fp(4) fp(3:4)]);
pause

%%
Функция SCATTERPLOT создает диаграмму рассеяния синфазной компоненты в
сравнении с квадратурной компонентой сигнала, которая строится в соответствии с
величиной выборки на символ, N. Результирующий график показывает принятый сигнал
в соответствии с набором символов. Когда канал не зашумлен и при отстутствии помех,
эти символы идентичны переданным.

% Создание диаграммы рассеяния.


h6 = scatterplot(yy, N);

% Управление графическим окном.


close(h5(ishandle(h5)));
fp = get(h6,'position');
set(h6,'position',[ss(3)*.99-fp(3) ss(4)*.9-fp(4) fp(3:4)]);
pause
%%
Функция SCATTERPLOT выполняется дважды для создания графика. Голубая линия
представляет синфазную компоненту траектории принятого сигнала в сигнальном
пространстве. Синие точки представляют выборку сигнала. Этот график демонстрирует,
что даже при движении сигнала в сигнальном пространстве, значения сигнала
соотвествуют исходному сигналу.

% Создание диаграммы рассеяния


h7 = scatterplot(yy, 1, 0, 'c-');
hold on;
scatterplot(yy, N, 0, 'b.',h7);
hold off;

% Управление графическим окном.


close(h6(ishandle(h6)));
fp = get(h7,'position');
set(h7,'position',[ss(3)*.99-fp(3) ss(4)*.9-fp(4) fp(3:4)]);
pause

Использование этих функций для анализа систем связи.


Следующая программа показывает зашумленный сигнал ( красная линия). Хотя он
отличается от незашумленного сигнала ( синяя линия), все же тяжело определить
воздействие шума на сигнал. Отношение сигнал/шум (SNR) для зашумленного сигнала
равно 15 dB.

12
%Закрытие графического окна
close(h7(ishandle(h7)));

% Создание нового графика.


SNR = 15;
sig_rx1 = awgn(msg_tx,SNR,'measured',1234,'dB');
sig_rx = complex(sig_rx1(:,1),sig_rx1(:,2));
[fsig_rx, t2] = rcosflt(sig_rx, Fd, Fs);
tfsig_rx = fsig_rx(1+Delay*N:end-Delay*(N+1),:);
plot(t, real(y),'b-', t2, real(fsig_rx),'r-');

pause
%%
Следующие графики представляют индикаторные диаграммы для оригинального сигнала
( синие линии) и зашумленного сигнала ( красные линии). Диаграммы ясно показывают
изменение принятого сигнала в сравнении с передаваемым в соответствии с тем шумом,
который добавился к сигналу.

% Создание индикаторной диаграммы.


h(1) = eyediagram(yy, N,1);
h(2) = eyediagram(tfsig_rx, N,1,0,'r-');

% перемещение диаграммы к стороне экрана


fp = get(h(1),'position');
set(h(1),'position',[ss(3)*.99-fp(3) ss(4)*.9-fp(4) fp(3) fp(4)]);
set(h(2),'position',[ss(3)*.86-fp(3) ss(4)*.65-fp(4) fp(3) fp(4)]);

%%
Следующие графики являются представлением диаграммы рассеяния исходного сигнала
( голубые точки) и зашумленного сигнала ( красные точки). Диаграмма рассеяния ясно
показывает отличия переданного сигнала от принятого.

% Создание диаграммы рассеяния


h(3) = scatterplot(yy, N, 0, 'b.');
h(4) = scatterplot(tfsig_rx, N, 0, 'r.');

% перемещение графика к низу экрана


fp = get(h(3),'position');
set(h(3),'position',[ss(3)*.01 ss(4)*.01 fp(3) fp(4)]);
set(h(4),'position',[ss(3)*.3 ss(4)*.02 fp(3) fp(4)]);
pause
%%
Следующий график представляет сигнал, принятый при уровне сигнал/шум 20 dB
(малиновая линия) . Изменения, вызванные шумом, теперь меньше, чем в предыдущем
сигнале
(SNR = 15 dB). В этом случае индикаторная диаграмма и диаграмма рассеяния нужны
даже больше для определения характеристик модуляции.

% Закрытие всех графических окон


close(h(ishandle(h)));

13
% График переданного сигнала.
SNR = 20;
sig_rx1 = awgn(msg_tx,SNR,'measured',4321,'dB');
sig_rx = complex(sig_rx1(:,1),sig_rx1(:,2));
[fsig_rx2, t2] = rcosflt(sig_rx, Fd, Fs);
tfsig_rx2 = fsig_rx2(1+Delay*N:end-Delay*(N+1),:);
plot(t, real(y),'b-', t2, real(fsig_rx2), 'm-');
pause
%%
Следвующие графики представляют индикаторные диаграммы первого зашумленного
сигнала ( красные линии) и второго зашумленного сигнала ( малиновые линии). Они ясно
показывают, что изменения во втором принятом сигнале меньше, чем в первом. Также
изображены два зашумленных сигнала.

% Создание графиков.
plot(t, real(fsig_rx),'r-',t2,real(fsig_rx2),'m-');
h(1) = eyediagram(tfsig_rx, N,1);
h(2) = eyediagram(tfsig_rx2, N,1,0,'r-');

% Управление графическими окнами .


fp = get(h(1),'position');
set(h(1),'position',[ss(3)*.99-fp(3) ss(4)*.9-fp(4) fp(3) fp(4)]);
set(h(2),'position',[ss(3)*.86-fp(3) ss(4)*.65-fp(4) fp(3) fp(4)]);
pause
%%
Следующие графики показывают диаграммы рассеяния первого зашумленного сигнала
( красные точки) и второго зашумленного сигнала ( малиновые точки). Эти Диаграммы
рассеяния ясно показывают, что изменения во втором принятом сигнале меньше, чем в
первом.

% Создание диаграмм рассеяния.


h(3) = scatterplot(tfsig_rx, N, 0, 'r.');
h(4) = scatterplot(tfsig_rx2, N, 0, 'm.');

% Управление графическими окнами.


fp = get(h(3),'position');
set(h(3),'position',[ss(3)*.01 ss(4)*.01 fp(3) fp(4)]);
set(h(4),'position',[ss(3)*.3 ss(4)*.02 fp(3) fp(4)]);
pause
Использование анимации для показа временных ошибок.

% Закрытие всех графических окон.


close(h(ishandle(h)));

% Создание и анимация графиков.


plot(t2,real(fsig_rx2),'m-');
[h(1), h(2)] = animatescattereye(tfsig_rx2,N,.1,N,'lin',-1);

pause
%%

14
Следующая программа анимации индикаторной диаграммы и диаграммы рассеяния
представляет эффект различного начала отсчета в приемнике. Параметр начала отсчета
варьируется относительно исходного.

% Закрытие всех графических окон.


close(h(ishandle(h)));

% Создание и анимация графика


plot(t2,real(y),'b-');
animatescattereye(yy,N,.1,17,'lr',0);

Примечания:
1. Исследуемый сигнал должен быть небольшим ( примерно 60 отсчетов), для такого
сигнала можно взять параметры:
Fd=1;Delay=3;offset=0;Fs=16;M=32;N=16;

Чтобы получить из заданного сигнала информативный сигнал для анализа лучше всего
применить вейвлет-преобразование ( оно изменяет масштаб сигнала в сторону
уменьшения).
Пример команд вейвлет-преобразования:
[c,l]=wavedec(s3,'db2'); cd2=detcoef(c,l,3); cd2=cd2(1:60);

Для перевода сигнала в цифровую форму нужно квантовать сигнал, для этого
воспользоваться командой
INDX = QUANTIZ(SIG, PARTITION), в которой
SIG – исходный сигнал
PARTITION – строго возрастающий вектор, определяющий границы квантования,
например, 0:0.01:0.25

Часть 3
Если сигнал, модулированный QPSK, подвергается фильтрации для уменьшения
побочных максимумов спектра, результирующий сигнал может не иметь постоянной
огибающей и, фактически, случайный фазовый сдвиг на 1800 вызовет моментальное
обращение огибающей в нуль. Если эти сигналы применяются в спутниковых каналах,
где используются нелинейные усилители, постоянная огибающая будет
восстанавливаться. Однако будут восстанавливаться и все нежелательные частотные
боковые максимумы, которые могут интерферировать с сигналами соседних каналов и
других систем связи.
При квадратурной модуляции со сдвигом (OQPSK) потоки импульсов и не могут
одновременно изменить состояние, несущая не может изменить фазу на 1800, поскольку
за один раз переход может сделать только один из компонентов. Поэтому огибающая не
обращается в нуль, как это происходит при модуляции QPSK.
Манипуляцию с минимальным сдвигом ( minimum shift keying – MSK) можно
рассматривать как частный случай модуляции OQPSK. Как и в случае OQPSK, синфазный
и квадратурный компонент MSK сдвинуты друг относительно друга на Т секунд. Однако в
случае MSK производится синусоидальное взвешивание информационных символов
t t
членами cos и sin , что устраняет резкие переходы фазы, а, следовательно,
2T 2T
сужает спектр модулированного сигнала. Сигнал MSK ( рисунок 4) можно записать в
виде:

15
t t
s (t )  d I (t ) cos cos 2f 0 t  d Q (t ) sin sin 2f 0 t (1)
2T 2T

Здесь dI(t)= ±1, dQ(t)= ±1 , а функции на интервале длительностью


2Tb имеют форму полуволны и сглаживают прямоугольные импульсы в квадратурных
ветвях. Как и в случае OQPSK, синфазный и квадратурный компоненты сдвинуты
относительно друг друга на Tb секунд. Форму записи (1) иногда называют MSK с
предварительным кодированием (precoded MSK).

Рисунок 3. Структурная схема модулятора MSK

Изменение знаков dI(t)= ±1, dQ(t)= ±1 определяется сменой полярности импульсов в


квадратурных каналах. Таблица 1 поясняет, каким образом значения частот f 1 и f2 связаны
с полярностью модулирующих импульсов.
На первом графике (рис. 4,а) представлен пример входного цифрового потока. На
втором и третьем графиках приведены нечетные d I(t) и четные dQ(t) биты входного
потока, причем длительность их увеличена вдвое.
Отметим также переход от RZ к NRZ. В результате для каждого битового интервала
длительностью Tb расположенные одно над другим значения dI(t) и dQ(t) дают ту пару бит,
которая является основной для выбора частоты f1 или f2 (табл. 1). Следующие графики
(рис. 4,г и рис. 4,д) демонстрируют форму модулирующих сигналов в квадратурных

каналах, которая определяется функциями .


Обратим внимание на то, что фазы этих сигналов изменяются скачкообразно на
180є в моменты изменения полярности прямоугольных импульсов в подканалах.
Отмеченные на полуволнах знаки соответствуют полярности импульсов в подканалах.
На рис. 4,е показан закон изменения фазы высокочастотного колебания на выходе
передатчика в том случае, когда входная информационная последовательность имеет
вид, показанный на рис. 4,а. Отметим, что на любом интервале длительностью Tb фаза
меняется по линейному закону ±πt/2Tb.
Все сказанное приобретает особую наглядность, если промоделировать выражение (1) в
среде MATLAB. Модель процесса модуляции представляет листинг 1. Результаты работы
программы представлены на рисунке 5.

16
Рисунок 4. Иллюстрация процессов, протекающих в модуляторе системы с MSK

17
Листинг 1.

18
Рисунок 5. Иллюстрация процесса формирования ЧМ сигнала
с минимальным сдвигом
19
Для моделирования и сравнения спектральных характеристик модуляций BPSK, QPSK,
OQPSK и MSK необходимо в командном окне МАТЛАБ создать сектор тестируемого
бинарного сигнала:

x=randint(1536,1);

Затем в окне Simulink создаем модель ( рис.5)

Рисунок 5. Simulink - Модель исследования спектров фазоманипулированных сигналов

20
Рисунок 6. Параметры блока Signal from Workspace из блока DSP

Рисунок 6. Параметры блока MSK Modulator Baseband из блока Communications System


Toolbox\Modulation\Digital Baseband Modulation\PM

21
Рисунок 7. Параметры блока QPSK Modulator Baseband из блока Communications System
Toolbox\Modulation\Digital Baseband Modulation\PM

Рисунок 8. Параметры блока OQPSK Modulator Baseband из блока Communications


System Toolbox\Modulation\Digital Baseband Modulation\PM

22
Рисунок 8. Параметры блока BPSK Modulator Baseband из блока Communications System
Toolbox\Modulation\Digital Baseband Modulation\PM

Блок Specrum Analyzer находится в библиотеке DSP Blockset\ Sinks

Получаемые при запуске модели спектры должны показать, что BPSK требует
большей полосы пропускания, т.к. эффективность использования полосы частот при
BPSK вдвое меньше, чем при QPSK. Боковые максимумы графика MSK ниже, чем
графиков QPSK или OQPSK. Это является следствием плавных фазовых переходов. Чем
плавнее переход, тем быстрее спектральные хвосты стремятся к нулю. Модуляция MSK
спектрально эффективнее, чем модуляция QPSK или OQPSK, однако спектр MSK имеет
более широкий основной максимум, чем спектр QPSK или OQPSK. Следовательно, MSK
нельзя назвать удачным выбором при использовании узкополосных линий связи. В то же
время MSK следует использовать в схемах с несколькими несущими, поскольку ее
относительно малые побочные максимумы спектра позволяют избежать значительных
помех соседних каналов. То, что спектр QPSK имеет более узкий основной максимум, чем
MSK, объясняется тем, что при данной скорости передачи битов скорость передачи
символов QPSK вдвое меньше скорости передачи символов MSK.

Отчет должен содержать:


1. Задание на выполнение работы
2. Модели и Листинги используемых в работе программ
3. Скрин-шоты результатов работы
4. Расчет согласованного фильтра
5. Выводы
Контрольные вопросы:
1. Назовите основные параметры глазковой диаграммы
2. Как меняются основные параметры глазковой диаграммы при наличии шума?
3. Что моделируется применением анимации к глазковой диаграмме?
4. Что показывает диаграмма рассеяния и как влияет шум на нее?
5. В чем причина применения модуляций QPSK, OQPSK, MSK

23
Лабораторная работа № 3

Изучение работы модема и эквалайзера

Цель работы: моделирование одного из реальных модемных стандартов средствами


пакета Matlab Communications Toolbox.

Задание на выполнение работы: В пакете MATLAB

1. Спроектировать девятиотводный трансверсальный эквалайзер, удовлетворяющий


критерию минимальной среднеквадратической ошибки. Вычислить значения импульсов
на выходе эквалайзера в моменты времени к=0,  1,2,..., 8 . Чему после выравнивания
равен вклад наибольшей амплитуды в межсимвольную интерференцию и чему равна
сумма амплитуд всех вкладов?

2. Создать программы функции

1. mod32144.m - функцию моделирования передатчика модема;


2. demod32144.m - функцию моделирования приемника модема;

Теоретические сведения

Одну из разновидностей систем связи, хорошо знакомых пользователям


персональных компьютеров, представляют собой модемы, предназначенные для передачи
данных по телефонным сетям. Рассмотрим моделирование одного из реальных модемных
стандартов средствами пакета Communications. Речь пойдет о моделировании приемника и
передатчика модема, работающего в соответствии с Рекомендацией ITU-T V.32bis [1].
Достаточно подробное описание процесса формирования сигнала имеется также в книге
[2]. Конечно, данный протокол в настоящее время является устаревшим, но он обладает
многими характерными чертами систем цифровой связи и благодаря своей простоте
удобен для использования в учебных и демонстрационных целях. Рекомендация V.32bis
предусматривает различные скорости передачи данных - от 4800 до 14 400 бит/с. В
данном примере будет моделироваться обработка сигнала для максимально возможной
скорости 14 400 бит/с.

Краткое описание стандарта V.32bis


Входным сигналом модема является последовательный битовый поток данных, для
кодирования и модуляции которого в протоколе V.32bis используется следующая
последовательность процедур.
1. Входной битовый поток данных проходит через скремблер, структурная схема
которого показана на рис. 1. Скремблер представляет собой рекурсивный фильтр,
операции сложения в котором производятся по модулю два. Порядок фильтра m = 23,
положение отвода: для вызывающего модема n = 18, для отвечающего модема n = 5.
Назначение скремблера - сделать сигнал псевдослучайным.

24
Рисунок 1. Структурная схема скремблера

2. Скремблированный битовый поток разбивается на символы длиной по 6 бит . Два


первых (во времени) бита сформированного символа подвергаются дифференциальному
кодированию. Это кодирование математически описывается следующим образом: Y(n) =
(Q(n) - Y(n - 1)) mod 4. Здесь Q(n) - целое число, представляемое двумя кодируемыми
битами, Y(n) - результирующее двухбитовое целое число, Y(n - 1) - результат
дифференциального кодирования предыдущего символа.
3. Дифференциально-кодированные биты Y1(n) и Y2(n) подаются на сверточный
кодер, структурная схема которого приведена на рис. 2. Кодер формирует избыточный бит
Y0(n), пропуская на выход биты Y1(n) и Y2(n) без изменений. Следует обратить внимание на
то, что избыточный бит Y0(n) зависит только от предыдущих, но не от текущих значений
входных битов Y1(n) и Y2(n).

Рисунок 2. Структурная схема сверточного кодера

4. Избыточный бит Y0(n), дифференциально-кодированные биты Y1(n) и Y2(n) и четыре


бита, не подвергавшиеся дифференциальному кодированию, образуют символ,
передаваемый в течение одного символьного такта (символьная скорость - 2400
символов/с). Этот символ отображается на комплексную плоскость с использованием
созвездия квадратурной манипуляции, показанного на рис. 3.

Порядок выполнения работы:

В рассматриваемых далее MATLAB-примерах используется созвездие,


сформированное заранее в виде вектора комплексных чисел и сохраненное в MAT-файле
map32144.mat (идентификатор переменной - constellation). Для создания рис. 3
использована функция modmap, вызов которой осуществляется для этого следующим
образом:
load map32144
modmap('qask/arb', real(constellation), imag(constellation))

25
Рисунок 3. Созвездие квадратурной манипуляции, используемое модемами V.32bis при
скорости 14400 бит/с

Для сужения полосы модулирующего сигнала и ослабления межсимвольной


интерференции полученный после отображения комплексный сигнал подвергается
интерполяции с использованием формирующего фильтра нижних частот (ФНЧ). В
качестве такого фильтра, как правило, используется ФНЧ с косинусоидальным
сглаживанием АЧХ (raised cosine). Интерполированный комплексный сигнал sM(t) после
фильтрации используется для модуляции несущего колебания с частотой f0 = 1800 Гц, в
результате чего получается сигнал передачи данных s(t) = Re[sM(t) exp(j2pf0t)].

Функция моделирования передатчика модема V.32bis

Реализуем модель передатчика модема в виде функции mod32144, которая будет


получать на входе вектор передаваемых битов x и возвращать вектор отсчетов
модулированного сигнала y:
function y = mod32144(x)
На рис. 4 показана структурная схема передатчика модема с подписанным функциями
пакета Communications, которые используются при реализации различных блоков.

Рисунок 4. Блок-схема передатчика модема V.32bis

Описание функции modmap

26
Скремблер, представляющий собой дискретный фильтр, математические операции в
котором выполняются по модулю два, удобно реализуется с помощью функции gffilter:
xs = gffilter(1, [1 zeros(1,17) 1 zeros(1,4) 1], x(:)');
Разделение скремблированного битового потока xs на шестибитовые символы
выполняется с помощью функции vec2mat:
sy = vec2mat(xs, 6);
Далее два первых бита символов sy подвергаются дифференциальному кодированию, при
этом преобразование пар битов в целые числа и обратно осуществляется с помощью
функций bi2de и de2bi соответственно:
bits12 = sy(:,1:2);
y12 = bi2de(bits12);
y12(2:2:end) = -y12(2:2:end);
y12m = cumsum(y12);
y12m(2:2:end) = -y12m(2:2:end);
y12m = mod(y12m, 4);
bits12m = de2bi(y12m, 2);
Сверточный код, соответствующий структурной схеме рис. 2, является нелинейным,
поэтому он не может быть задан в виде коэффициентов полиномов. Заполняем поля
структуры conv_code, описывающей код, вручную, предварительно приведя некоторые
комментарии.
 Кодер содержит три элемента памяти (на рис. 2 они обозначены буквой T,
поскольку осуществляют задержку сигнала на один такт) и, таким образом, имеет
23 = 8 внутренних состояний. Это значение присваивается полю numStates.
 На вход кодера поступает два бита, для которых возможно 2 2 = 4 различных
комбинации. Это значение присваивается полю numInputSymbols.
 Кодер добавляет к этим двум битам избыточный третий, что дает на выходе 2 3 = 8
комбинаций. Это значение присваивается полю numOutputSymbols.
 Данный кодер является систематическим, поэтому выходная комбинация бит
получается из входной путем добавления третьего (старшего) бита, равного
младшему биту исходного внутреннего состояния. Поэтому поле outputs (оно
должно представлять собой матрицу с числом строк, равным числу состояний, то
есть 8, и с числом столбцов, равным числу возможных входных символов, то есть
4) должно содержать строки двух типов: [0 1 2 3], повторяющие значения входных
символов, для четных значений внутреннего состояния, и [4 5 6 7] (входной символ
с добавленным единичным старшим битом) для нечетных значений внутреннего
состояния.
 Поле nextStates задает алгоритм переходов между внутренними состояниями
кодера. Оно должно представлять собой матрицу с числом строк, равным числу
состояний, то есть 8, и с числом столбцов, равным числу возможных входных
символов, то есть 4. Это поле заполняется вручную в соответствии с логикой
работы кодера.

Реализуем сказанное в виде кода MATLAB:


conv_code.numInputSymbols = 4;
conv_code.numOutputSymbols = 8;
conv_code.numStates = 8;
conv_code.nextStates = [0 2 3 1; 4 7 5 6; ...
                        1 3 2 0; 7 4 6 5; ...
                        2 0 1 3; 6 5 7 4; ...
                        3 1 0 2; 5 6 4 7];
conv_code.outputs = repmat([0 1 2 3; 4 5 6 7], 4, 1);

27
Теперь осуществляем собственно сверточное кодирование дифференциально-
кодированных битов bits21m с помощью функции convenc:
bits12m = bits12m';
bits12m = bits12m(:);
bits012 = convenc(bits12m, conv_code);
Результат работы сверточного кодера bits012 представляет собой вектор, в котором
последовательно расположены тройки интересующих нас битов. Преобразуем вектор в
матрицу с помощью функции vec2mat и объединяем результат с теми четырьмя столбцами
из матрицы sy, которые не подвергались дополнительным преобразованиям. В результате
получаем семибитовые символы в битовом (sy7) и десятичном (sy_dec) представлении:
sy012 = vec2mat(bits012, 3);
sy7 = [(sy012) sy(:,3:6)];
sy_dec = bi2de(sy7, 'left-msb');
Имеющиеся в пакете Communications функции цифровой модуляции, к сожалению, не
реализуют формирование спектра сигнала при квадратурной манипуляции, поэтому нам
придется осуществить необходимые шаги вручную. Прежде всего загружаем описание
используемого созвездия и отображаем семибитовые символы на комплексную плоскость
с помощью функции modmap:
load map32144
sy_mapped = modmap(sy_dec, 1, 1, 'qask/arb', ...
                      real(constellation), imag(constellation));
Теперь производим формирование спектра, выполняя интерполяцию сигнала sy_mapped с
использованием SQRT-варианта фильтра с косинусоидальным сглаживанием АЧХ.
Частота дискретизации повышается при этом в восемь раз, до значения
2400 x 8 = 19200 Гц:
Fd = 2400;
Fs = Fd*8;
s_m = rcosflt(sy_mapped, Fd, Fs, 'sqrt');
Наконец, интерполированный сигнал s_m подвергается аналоговой квадратурной
модуляции с помощью функции amod:
Fc = 1800;
y = amod(s_m, Fc, Fs, 'qam');
Модулированный сигнал y является результатом работы функции.

Тестирование функции mod32144

Протестируем функцию, подав на ее вход вектор из 10 000 бит, сформированный с


помощью функции randint:
x = randint(1, 10000);
y = mod32144(x);
Поскольку при квадратурной модуляции амплитуда и фаза сигнала меняются
одновременно, график полученного сигнала не слишком нагляден. Однако все же выведем
его начальный фрагмент, а также покажем оценку спектральной плотности мощности
полученного сигнала, произведя ее методом Уэлча с помощью функции pwelch пакета
Signal Processing:
plot(y(1:200))
pwelch(y, [], [], [], 19200)
Полученные графики представлены на рисунке 5.

28
Рис. 5. Сформированный сигнал модема V.32bis (слева) и его спектр мощности (справа)

При наличии звуковой карты можно прослушать полученный сигнал, например, с


помощью функции soundsc:
soundsc(repmat(y, 10, 1), 19200)
Функция repmat использована здесь для того, чтобы повторить сформированный
вектор 10 раз, иначе звук оказывается слишком коротким.
Если вы когда-нибудь слышали шуршащий звук модема, то, без сомнения, узнаете его.
Функция моделирования приемника модема V.32bis
Функция demod32144, реализующая приемник модема V.32bis, выполняет
преобразования, обратные по отношению к процессам, происходящим в передатчике.
Функция принимает на входе массив отсчетов модулированного сигнала y и возвращает
вектор принятых битов z:
function z = demod32144(y)
На рис. 6 показана структурная схема приемника модема с подписанным функциями
пакета Communications, которые используются при реализации различных блоков.

Рисунок 6. Блок-схема приемника модема V.32bis

Прежде всего зададим необходимые константы: символьную скорость Fd, несущую


частоту Fc и частоту дискретизации Fs:

29
Fd = 2400;
Fc = 1800;
Fs = Fd*8;
Как уже говорилось, функции цифровой модуляции пакета Communications не
поддерживают формирование спектра при квадратурной манипуляции. Поэтому
демодуляцию сигнала придется реализовать, вручную выполнив необходимые шаги.
Сначала рассчитаем фильтр с косинусоидальным сглаживанием АЧХ, идентичный тому,
который использовался в передатчике. Для этого служит функция rcosine:
b = rcosine(Fd, Fs, 'sqrt');
Теперь производим аналоговую демодуляцию с помощью функции ademod, указав
рассчитанный фильтр в качестве используемого ФНЧ:
x_m = ademod(y, Fc, Fs, 'qam', b, 1);
Выводим диаграмму рассеяния с помощью функции scatterplot, чтобы посмотреть, как
принятые точки ложатся на комплексную плоскость:
scatterplot(x_m, Fs/Fd)
Далее с помощью функции demodmap ищем точки используемого созвездия, ближайшие к
принятым точкам (символьная скорость задана в виде двухэлементного вектора, второй
элемент которого указывает положение оптимальных точек дискретизации сигнала):
load map32144
sy = demodmap(x_m, [Fd 1], Fs, 'qask/arb', ...
           real(constellation), imag(constellation));
Кроме того, для последующей реализации исправления ошибок с помощью сверточного
кода необходимо найти ближайшие к принятым точкам позиции восьми частичных
созвездий, соответствующих восьми возможным комбинациям трех выходных бит
сверточного кодера:
for k = 1:8
    sy1(:,k) = demodmap(x_m, [Fd 1], Fs, 'qask/arb', ...
        real(constellation((k-1)*16+(1:16))), ...
        imag(constellation((k-1)*16+(1:16))));
    sy1(:,k) = sy1(:,k) + (k-1)*16;
end
При обработке фильтрами в приемнике и передатчике сигнал приобретает некоторую
задержку, которая в нашем примере равна шести символам (по умолчанию функции rcosflt
и rcosine рассчитывают фильтр, длина импульсной характеристики которого
соответствует шести символьным тактам). Поэтому необходимо удалить первые шесть
принятых символов, соответствующих начальному переходному процессу фильтрации.
Далее вектор десятичных представлений символов sy преобразуется в матрицу битовых
представлений с помощью функции de2bi:
sy = sy(7:end);
sy1 = sy1(7:end,:);
sy_bits = de2bi(sy, 7, 'left-msb');
Подготовка структуры conv_code, описывающей сверточный код, производится точно так
же, как это делалось в передатчике:
conv_code.numInputSymbols = 4;
conv_code.numOutputSymbols = 8;
conv_code.numStates = 8;
conv_code.nextStates = [0 2 3 1; 4 7 5 6; ...
                        1 3 2 0; 7 4 6 5; ...
                        2 0 1 3; 6 5 7 4; ...
                        3 1 0 2; 5 6 4 7];
conv_code.outputs = repmat([0 1 2 3; 4 5 6 7], 4, 1);

30
К сожалению, способ реализации мягкого декодирования сверточных кодов,
реализованный в настоящее время в функции vitdec пакета Communications, плохо
приспособлен для декодирования сигнально-кодовых конструкций квадратурной
манипуляции. Поэтому используем жесткое декодирование, предварительно выделив
первые три бита каждого символа и преобразовав их в одномерный вектор:
y012 = sy_bits(:,1:3);
y012 = y012';
y012 = y012(:);
y12 = vitdec(y012, conv_code, 40, 'trunc', 'hard');
Алгоритм Витерби попытался исправить ошибки, имевшиеся в двухбитовых
комбинациях, защищенных сверточным кодом. Однако в каждом символе имеются еще
четыре бита, передававшиеся без такой защиты. Чтобы обеспечить коррекцию полных
шестибитовых символов, мы подвергаем исправленную последовательность y12
сверточному кодированию, чтобы получить исправленные значения избыточного бита.
Результирующие трехбитовые комбинации определяют номера частичных созвездий, в
которых следует искать точки, соответствующие исправленным символам. Результаты
отображения принятых точек с использованием частичных созвездий сохранены в
матрице sy1, так что сейчас мы просто выбираем из нее нужные элементы, сформировав
набор линейных индексов с помощью функции sub2ind. После этого исправленные
символы преобразуются в битовые представления с помощью функции de2bi:
bits012_corr = convenc(y12, conv_code);
bits012_corr = vec2mat(bits012_corr, 3);
y012_corr = bi2de(bits012_corr, 'left-msb');
sy = sy1(sub2ind(size(sy1), (1:length(sy))', y012_corr+1));
sy_bits = de2bi(sy, 7, 'left-msb');
Следующий этап - дифференциальное декодирование двух бит каждого символа. Для
этого мы выделяем эти биты, преобразуем их в целое число и затем попарно складываем
эти числа, соответствующие соседним символам, беря два младших бита от результата.
Полученные числа преобразуются обратно в биты:
y12 = sy_bits(:,2:3);
z12 = bi2de(y12);
z12dec = bitand([0;z12(1:end-1,:)]+z12, 3);
sy_bits(:,2:3) = (de2bi(z12dec));
Последний этап - дескремблирование битового потока. Мы удаляем избыточный бит,
преобразуем матрицу шестибитовых информационных символов в битовый поток и
реализуем дескремблер, который представляет собой нерекурсивный фильтр, легко
реализуемый с помощью функции gffilter:
zs = sy_bits(:, 2:end);
zs = zs';
zs = zs(:);
z = gffilter([1 zeros(1,17) 1 zeros(1,4) 1], 1, zs');
Вектор дескремблированных битов z является результатом работы функции
.
Тестирование функции demod32144

Протестируем функцию, подав на ее вход сформированный ранее вектор y отсчетов


модулированного сигнала:
z = demod32144(y);
На рис. 7 показана диаграмма рассеяния, сформированная нашей функцией. Видно, что
принятые точки соответствуют использованному созвездию (см. ранее рис. 3).

31
Рисунок 7. Диаграмма рассеяния, выведенная функцией demod32144 при приеме сигнала

Проверим правильность приема, сравнив переданную и принятую


последовательности бит с помощью функции symerr (поскольку мы сравниваем векторы,
содержащие только нули и единицы, функции symerr и biterr в данном случае
оказываются эквивалентными). Принятый вектор содержит на два элемента больше, чем
переданный, поскольку при передаче входной сигнал был дополнен двумя нулевыми
битами для формирования целого числа шестибитовых символов, поэтому при сравнении
нужно выделить первые 10 000 элементов:
symerr(x, z(1:10000))
ans =0
Как видите, сигнал принят правильно.

Данный пример является демонстрационным и не реализует ряда функций,


необходимых в реальной системе цифровой связи. К таким функциям относятся
адаптивная фильтрация для компенсации искажений, вносимых каналом связи, временная
синхронизация, передача служебных сигналов для установления соединения и т. п. Все
это также может быть реализовано средствами MATLAB с использованием прикладных
пакетов Communications, Signal Processing и Filter Design.

Примечания:

ПРИМИТИВНОЕ МОДЕЛИРОВАНИЕ потока битов, являющегося функцией заданного


сигнала можно получить с использованием команды
[index,quants] = quantiz(sig,partition,codebook);
где количество интервалов квантования partition выбирается самым минимальным, а
вектор присваиваемых уровням квантования значений codebook содержит нули и
единицы. Выходным потоком битов будет переменная quants.

Необходимо проверить правильность приема, сравнив переданную и принятую


последовательности бит с помощью функции symerr.

Отчет должен содержать:


1.Задание на выполнение работы
2. Программу, моделирующую работу модема
3. Диаграмму рассеяния принятого модемом сигнала
4. Расчет эквалайзера для случайно зашумленного единичного импульса
5. Выводы

32
Контрольные вопросы:
1. Назовите основные методы расчета коэффициентов эквалайзера
2. Назовите типы эквалайзеров
3. Для чего в устройствах модемов применяется скремблирование ?

Лабораторная работа № 4

Изучение решетчатого кодирования

Цель работы: Знакомство с принципами решетчатого кодирования


Задание на выполнение работы: Осуществить кодирование заданного сигнала с
помощью схемы решетчатого кодирования и сверточного кодера со степенью
кодировании ½ и декодировать сигнал по алгоритму Витерби с жесткой схемой принятия
решений.

Теоретические сведения

При использовании в системах связи реального времени кодов коррекции ошибок


достоверность передачи улучшается за счет расширения полосы частот. В узкополосных
каналах хочется улучшить качество связи без расширения полосы частот. Для этого
применяются схемы решетчатого кодирования. Суть метода решетчатого кодирования
(trellis code modulation – TCM) заключается в одновременном использовании модуляции и
кодирования, т.е. присвоения сигналов битам (модуляция) согласно критерию лучших или
худших пространственных характеристик (канальное кодирование). Когда два сигнала
находятся в непосредственной близости друг от друга в сигнальном пространстве кодовой
системы, их близость может не иметь существенного значения с точки зрения вероятности
ошибки, т.к. правила кода могут не допускать перехода между ними.
Схему ТСМ можно реализовать с помощью сверточного кодера, и максимальную
эффективность кодирования можно достичь со степенью кодирования k/(k+1) ( где k –
текущие биты ) с последующим отображением групп из k+1 бит в набор из 2 k 1
сигналов. Причем увеличение набора символов не окажет влияния на полосу пропускания
системы, т.к. евклидово расстояние между векторами в сигнальном пространстве
уменьшится.
Рассмотрим сверточный кодер со степенью кодирования ½. Он имеет четыре состояния
( бинарно названные на схеме от 00 до 11).

Рисунок 1. Схема работы сверточного кодера со степенью кодирования ½

Каждая сплошная стрелка показывает, что кодер переходит в другое состояние, если
входной сигнал равен 0, а каждая пунктирная стрелка показывает, что кодер переходит в

33
другое состояние, если входной сигнал равен 1. Цифры над стрелками показывают
значение выходного символа кодера. Например, если кодер находился первоначально в
состоянии 10 и получил входной бит, равный 0, то он выдает на выходе кодовый символ
равный 3, и переходит в состояние 01.
Задача сверточного декодера заключается в определении пути, пройденного сообщением в
кодирующей решетке по критерию максимального правдоподобия ( алгоритм Витерби).
В пакете MATLAB структура, описывающая кодер ТСМ имеет следующие поля:

Таблица 1 Поля решетчатой структуры для степени кодировании k/n


Поля в решетчатой Размерность Значение
структуре
numInputSymbols Скаляр Количество входных символов кодера:2k
numOutputsymbols Скаляр Количество выходных символов кодера:2n
numStates Скаляр Количество состояний кодера
nextStates Матрица размерностью Следующие состояния для всех
numStates x 2k комбинаций текущего состояния и
текущего входного символа
outputs Матрица размерностью Выходные символы кодера ( в десятичном
numStates x 2k представлении) для всех комбинаций
текущего состояния и текущего входного
символа

Порядок выполнения работы:


1. Загрузить заданный сигнал в рабочую область MATLAB
2. Выбрать информационный отрезок сигнала длиной 1000 отсчетов
3. Моделировать кодирование источника. Использовать вейвлет-преобразование с
командами [c,l]=wavedec(s1,3,'db2');cd2=detcoef(c,l,3); ( полученные коэффициенты
сжимают сигнал примерно в десять раз)
4. Квантовать полученный сигнал, так чтобы размер алфавита не превышал 63.
5. Из полученного квантованного сигнала выбрать информационный отрезок длиной
64 отсчета
6. Представить целочисленные неотрицательные значения квантованного сигнала у в
виде 6-разрядных двоичных цифр с помощью команды >> z=dec2base(y,2,6);
7. Написать программу - Цикл для представления полученных отдельных значений в
бинарном представлении в виде непрерывного бинарного вектора ( s =64 - длина
исходного сигнала)
8. Превратить бинарную строку в последовательность цифр – нулей и единиц

После подготовки сигнала для моделирования, рекомендуется сохранить его в файле,


например, save ss ss и очистить рабочую область clear all;clc;
Затем загрузить полученную переменную в рабочую область. load ss

9. Зашумить исходный бинарный сигнал по команде


ss1=rem(ss + randerr(384,1,[0 1;.95 .05]),2);

10. Произвести моделирование декодирования сигнала без использования ТСМ


Получить десятичные значения сигнала из бинарных написав программу –цикл и
использовав команду bin2dec

11. Создать решетчатую структуру по типу, показанному в теоретической части


trel = struct('numInputSymbols',2,'numOutputSymbols',4,...
'numStates',4,'nextStates',[0 2;0 2;1 3;1 3],...

34
'outputs',[0 3;1 2;3 0;2 1]);

12. Кодировать исходнq бинарный сигнал с использованием созданной решетчатой


cтруктуры по команде code = convenc(ss,trel);
При этом размерность полученного сигнала увеличивается вдвое ( т.к. степень
кодирования ½).
13. Зашумить полученный сигнал командой
ncode = rem(code + randerr(768,1,[0 1;.95 .05]),2);

14. Декодировать сигнал с использованием алгоритма Витерби по команде


decoded1 = vitdec(ncode,trel,1,'cont','hard');
Цифра «1» означает задержку на одну значащую позицию в сигнале для начала
декодирования, поэтому, чтобы декодированный сигнал не отставал от исходного,
переопределим в новую переменную, например,
dec(1:383)=decoded1(2:384);
dec(384)=0;

15. Получить десятичные значения сигнала из бинарных см.п.10

13. Сравнить графики сигнала , посланного в кодер, декодированного с


использованием ТСМ, декодированного без использования ТСМ.
Например, на рисунках синий график – исходный сигнал , зеленый график –
декодирование без ТСМ, красный – с использованием ТСМ. Посчитано суммарное
среднеквадратическое отклонение декодированных сигналов от исходного. Из
полученных значений видно, что без использования ТСМ сигнал декодируется с
большим количеством ошибок.

Рисунок 2. Исходный (синий) и декодированный без использования ТСМ (зеленый)


сигналы

z=sum(sqrt((a1-a3).^2)) % Подсчет несовпадений исходного и декодированного без


использования ТСМ сигнала
z = 407

35
Рисунок 3. Исходный (синий) и декодированный с использованием ТСМ (красный)
сигналы

z=sum(sqrt((a1-a2).^2)) % Подсчет несовпадений исходного и декодированного с


использованием ТСМ сигнала
z = 342
Выигрыш при использовании решетчатого кодирования:
10*log10(407/342)=0,76 дБ

Отчет должен содержать:


1. Задание на выполнение работы
2. Программу, реализующую решетчатое кодирование/декодирование заданного
сигнала
3. Графики, поясняющие преимущества решетчатого кодирования перед простым
форматированием в случае повреждения сигнала шумом.
4. Расчет выигрыша в дБ при использовании решетчатого кодирования
5. Выводы

Контрольные вопросы:
1. Опишите принцип решетчатого кодирования
2. Чем «платит» разработчик системы за преимущества, предоставляемые
решетчатым кодированием?

Лабораторная работа № 5
Исследование системы фазовой автоподстройки частоты

Цель работы: Цифровое моделирование системы ФАПЧ методом информационного


параметра
Задание на выполнение работы:
1. Создать цифровую модель системы ФАПЧ.
2. Произвести проверку правильности работы системы ФАПЧ в целом и отдельных ее
элементов.

36
3. Дать оценку влияния шумов в контуре ФАПЧ на значение полосы удерживания.
Определить, как на нее влияет выбор значения частоты среза ПИФ
Варианты заданий:
Часть 1
За пределами области захвата Работа в режиме синхронизма Выход из синхронизма

№ DW WD Kf DW WD Kf DW WD Kf
1 3 0 3 -3 1.5 2.7 -3 3 2.7
2 2.5 0.5 2.3 -2.5 1.25 2 -2.5 2.5 2
3 3.5 0 3 -3.5 1.75 2.7 -3.5 3.5 2.7
4 1 0.5 1 -1 0.5 0.5 -1 1 0.5
5 7 0 2 -7 3.5 1.7 -7 7 1.7
6 6 0.5 6 -6 3 5.5 -6 6 5.5
7 4.4 0 2 -4.4 2.2 2 -4.4 4.4 2
8 5.5 0.5 5.5 -5.5 2.75 5 -5.5 5.5 5
9 9 0 3.3 -9 4.5 3 -9 9 3
10 4 0.5 2 -4 2 2 -4 4 2
Часть 3:
При Wc = При Wc = 10
0.1
№ Без При Без При
шума Rgo= шума Rgo=
1 0 0.7 0 0.7
2 0 1.5 0 1.5
3 0 2 0 2
4 0 1 0 1
5 0 3.6 0 3.6
6 0 0.2 0 0.2
7 0 2.8 0 2.8
8 0 3 0 3
9 0 0.6 0 0.6
10 0 3.8 0 3.8

Теоретические сведения
Система фазовой автоподстройки частоты (ФАПЧ) относится к категории следящих
систем радиотехники Для цифрового моделирования таких систем часто отдают
предпочтение методу информационного параметра, который предполагает, что
информационный параметр λ(t) является относительно медленной функцией времени
Использование иных методов моделирования связано с непродуктивным ростом
потребных ресурсов ЭВМ.
В фазовой системе АПЧ информационный параметр λ(t) принимает ненулевое
значение при возникновении разности фаз ∆𝜑(t) колебаний сигнала, имеющего фазу
Фс(t)= ɷct + 𝜑с, и перестраиваемого генератора Фг(t) = ɷгt + 𝜑г. Таким образом, здесь
λ(t) =∆𝜑(t) = Фс(t) - Фг(t) . В этом случае роль различителя направления сдвига фаз
выполняет фазовый детектор. Напряжение на его выходе uфд связано нелинейной
зависимостью с информационным параметром ∆𝜑 (t). В соответствии со структурной
схемой системы ФАПЧ (рис. 1) это напряжение через фильтр нижних частот и
усилитель постоянного тока преобразуется в регулирующее напряжение uр, которое
посредством устройства управления изменяет частоту генератора ɷг(t) относительно
номинального значения ɷг0 в сторону сближения с частотой сигнала ɷс.

37
Разность фаз колебаний связана с разностью частот соотношением ∆𝜑(t) =
∆ɷ(t)t+𝜑c-𝜑г, где ∆ɷ(t)= ɷс - ɷг . Заметим, что значение информационного параметра
∆𝜑(t) не изменится, если перенести начало отсчета частот в точку номинального значения
частоты генератора ɷг = ɷго, т.е.

Рисунок 1. Структурная схема системы ФАПЧ

Если цепь обратной связи разомкнута и частота сигнала постоянна, то начальная


разность частот ∆ɷо = ɷс —ɷг0 = const и разность фаз ∆ɷ ot. Линейно увеличивается во
времени. При этом напряжение uфд на выходе фазового детектора будет изменяться в
соответствии с его детекторной характеристикой uфд = f(∆𝜑) Поскольку ∆𝜑=∆ɷot, то
uфд(t) как функция времени будет повторять форму детекторной характеристики (рис. 2).
Таким образом, uфд(t) имеет вид периодического колебания с периодом Тфд и
частотой равной начальной разности частот ∆ɷо = 2π/Tфд.
В замкнутой системе ФАПЧ это напряжение является поисковым: с учетом
коэффициента передачи ФНЧ и УПТ оно периодически изменяет примерно по тому же
закону частоту генератора. Однако при больших начальных расстройках ∆ɷ о (рис. 3, а)
разность частот ∆ɷ(t) никогда не становится равной нулю, и система не входит в
синхронизм.

Рисунок 2. Изменение напряжения на фазовом детекторе

38
Рисунок 3. Изменение напряжения генератора:
А) при больших значениях расстройки ∆ɷо
Б) при малых начальных значениях расстройки ∆ɷо

Такая возможность возникает при относительно малых начальных расстройках ∆ɷо


(рис. 3,6): в процессе перестройки в момент t1 возникает равенство ɷг(t1) = ɷс, т. е.
∆ɷ(t1)= 0. Происходит захват частоты генератора, и система ФАПЧ входит в синхронизм.
При этом остаточная ошибка настройки по фазе ∆𝜑 = ∆ɷ(t1)t1+ɷc—ɷг = 𝜑c-𝜑г . Она
позволяет получить на выходе фазового детектора напряжение рассогласования,
обеспечивающее равенство ∆ɷ = 0. При изменении частоты как сигнала, так и
подстраиваемого генератора напряжение рассогласования на выходе различителя
изменяет частоту генератора таким образом, чтобы поддерживать синхронизм колебаний.
Фильтр нижних частот в системе ФАПЧ ослабляет высокочастотные составляющие
напряжения, управляющего частотой генератора, и корректирует передаточную функцию
замкнутой системы. Если частота сигнала линейно нарастает от больших расстроек к
малым (линейная частотная модуляция, ЛЧМ), то разность частот ∆ɷ(t)= ɷс - ɷг
уменьшается, т. e. Уменьшается частота поискового напряжения uфд и соответственно
частота модуляции перестраиваемого генератора (рис. 4). Одновременно в соответствии с
формой амплитудно-частотной характеристики ФНЧ при уменьшении частоты
напряжения uфд на его входе растет коэффициент передачи ФНЧ, а значит, и амплитуда
поискового напряжения uр на входе устройства управления.
Аналоговую модель ФАПЧ построим на основе функциональной схемы (см. рис.
1) При этом в соответствии с выбранным методом будем моделировать не собственно
функции отдельных блоков, а результат воздействия в каждом из них либо
непосредственно на информационный параметр ∆𝜑(t), либо на параметр, в который
преобразуется ∆𝜑 (t) в элементах функциональной схемы.

39
Рисунок 4. Процесс вхождения системы ФАПЧ в синхронизм.

Источник информационного параметра ∆𝜑 (t) — фазовый детектор. На рис. 5 отражено,


что ∆𝜑 (t) появляется в результате сравнения фаз колебаний сигнала и перестраиваемого
генератора. Варианты выполнения фазового детектора определяют значение и вид
нелинейности реакции детектора на разность фаз. Значение реакции определяется
наклоном детекторной характеристики фазового детектора в точке перехода через ноль с
положительной производной ∆𝜑 = Зπ/2.

Рисунок 5. Схема сравнения фаз колебаний сигнала и перестраиваемого генератора

Соответствующий параметр называется чувствительностью фазового детектора Sфд


= duфд/d𝜑. Нелинейное преобразование информационного параметра в фазовом
детекторе учитывается в структурной схеме блоком cos∆𝜑 — этой функцией
аппроксимируется в рассматриваемом варианте детекторная характеристика.
Колебание, соответствующее преобразованному информационному параметру,
проходит через фильтр нижних частот с передаточной функцией К (р), усиливается в Купт
раз и изменяет частоту генератора ɷг, относительно номинального значения ɷг0 в сторону
увеличения или уменьшения в соответствии с регулировочной характеристикой системы
«генератор — устройство управления». Эффективность управления частотой генератора
определяется крутизной регулировочной характеристики Sг=2πdfг/dup.
Петлевой коэффициент передачи, учитывающий безынерционные преобразования,
можно записать в виде К =SфдSгКупт, объединив их в один элемент. Он определяет
отклонение частоты генератора от номинального значения, приходящееся на один вольт
выходного напряжения фазового детектора.
Фаза генератора связана с мгновенной частотой интегральным соотношением
40
Или в операторной форме

Отсюда следует, что по отношению к информационному параметру генератор


играет роль идеального интегрирующего звена с передаточной функцией Кг(р) = 1/р.
Перейдем от аналоговой модели ФАПЧ к цифровой, показанной на рис. 6. Фильтру
нижних частот с операторной передаточной функцией К(р) соответствует цифровой
фильтр с передаточной функцией H(z), элементу 1/р — цифровой фильтр Предположим,
что в качестве ФНЧ используется пропорционально-интегрирующий фильтр (ПИФ),
схема которого показана на рис. 7. Его операторная передаточная функция записывается
в виде

(1)

Рисунок 6. Цифровая схема модели ФАПЧ

Рисунок 7. Схема пропорционально-интегрирующего фильтра (ПИФ)

Если требуется наилучшее совпадение частотных характеристик цифровой и


аналоговой моделей фильтров, то для перехода к цифровой модели используют метод
билинейного z-преобразования. В этом методе переход к H(z) выполняется заменой в К(р)

оператора р дробно-рациональной функцией .


В результате можно получить

41
(2)

(3)
где

В цифровой модели присутствует элемент задержки на один такт с передаточной


функцией z_1, аналога которому нет в модели на рис. 5. Если бы этот элемент
отсутствовал, то для нахождения ∆𝜑(nТs) и соответствующей фазы генератора ФГ(nТs)
пришлось бы на каждом шаге решать нелинейное разностное уравнение, описывающее
данную схему. В показанном варианте для нахождения ∆𝜑(nТs) используется значение
ФГ(nТs —Тs), полученное на предыдущем шаге, близкое к Фг(nТs). Это приводит к
дополнительной методической погрешности, однако ее можно уменьшить до требуемого
уровня, если уменьшать интервал дискретизации Тs.
Передаточные функции (2), (.3) соответствуют рекурсивным алгоритмам
вычислений. На рис. 8 приведены схемы вычислений, соответствующие цифровым
фильтрам H(z) и Hг(z).

Рисунок 8. Схемы вычисления передаточных функций а) H(z) и б) Hг(z).

В случае анализа работы системы ФАПЧ под воздействием помех моделирование


ведется по методу статистических эквивалентов, являющемуся разновидностью метода
информационного параметра Данный метод используется, когда удается найти
статистическое описание оценки информационного параметра на выходе различителя (в
данном случае — выходе фазового детектора).
На рис. 9 показан вариант схемы статистического эквивалента фазового детектора.
В предположении, что на входе фазового детектора действует аддитивная смесь сигнала
со стационарной помехой, имеющей нормальное распределение, показано, что величина
G(0), называемая флуктуационной характеристикой дискриминатора, определяется
соотношением

где α – коэффициент пропорциональности; Gn(ɷг) — значение спектральной плотности


мощности помехи на частоте колебаний перестраиваемого генератора. Данное выражение
предполагает, что спектральная плотность мощности помехи Gn(ɷг), преобразованная в

42
результате биений с колебаниями генератора в область нулевой частоты, в пределах
полосы пропускания следящей системы 2Ωmаx распределена равномерно.
Величина ξ(t) на рис 9 представляет собой нормированный белый шум с
единичной спектральной плотностью. При цифровом моделировании непрерывный
процесс ξ(t) представляется его отсчетами ξ(nTs).

Рисунок 9. Вариант схемы статистического эквивалента фазового детектора

После того как цифровая модель составлена и проверена ее работоспособность,


следует уделить внимание проверке адекватности ее функционирования аналоговой
модели системы ФАПЧ. Для этого требуется сравнить характеристики цифровой модели
с соответствующими характеристиками системы, полученными аналитически.
Одной из таких характеристик является полоса захвата ±Ωз,. На рис. 10
показана регулировочная характеристика системы ФАПЧ — зависимость разности частот
сигнала и подстраиваемого генератора от начальной расстройки ∆ɷ0.

Рисунок 10. Регулировочная характеристика системы ФАПЧ

Полоса захвата — это область частот, которую можно измерить, медленно изменяя
частоту подстраиваемого генератора от больших расстроек (|∆Ωо| > Ωз) — к малым. При
выполнении равенства |∆Ωо| = Ωз, система входит в синхронизм: ɷс - ɷг = 0
Медленно перестраивая генератор в сторону увеличения расстройки (по модулю),
можно выйти из области синхронизма. Таким способом можно определить полосу
удерживания ±Ωу. В общем случае полосы удерживания и захвата по протяженности не
одинаковы. Протяженность полосы захвата зависит от фазовых набегов в петле ФАПЧ.
Основным инерционным звеном здесь является фильтр нижних частот Кроме того,
дополнительную задержку в цифровой модели вносит звено z-1, осуществляющее
задержку фазы управляемого генератора на один дискрет.

43
Известно, что в бесфильтровой ФАПЧ полосы захвата и удерживания равны, т.е.
Ωз = Ωу. Если используется пропорционально-интегрирующий фильтр (ПИФ), то
полосы связаны соотношением Ωз = γзΩу, где коэффициент

(4)
Здесь т — коэффициент передачи ПИФ с передаточной функцией (1) на
высоких частотах (рис. 11), определяемый соотношением сопротивлений т = T1/T2 =
R2/(R1 + R2).

Рисунок 11. Вид передаточной функции ПИФ

Соотношение (4) справедливо при выполнении неравенства тТ2Ωу >> 1.

Указания к выполнению работы.


Задание 1 Текст скрипт-файла модели ФАПЧ приведен в листинге 1. Для выполнения
задания установлены следующие начальные параметры модели. Параметры ПИФ: Wc —
частота среза; m — коэффициент передачи ПИФ на верхних частотах. Частотные и
фазовые параметры: DW — начальная разность частот; WD — девиация частоты; DFI —
начальный сдвиг фаз; FI — вектор разности фаз сигнала и генератора; Flh — фаза
генератора; Kf — петлевой коэффициент передачи; Rgo, KSI — шумовые параметры;
Р1-Р4 — внутренние переменные рекурсивных фильтров (на входе и выходе блоков
задержки); СОЕ — вектор коэффициентов фильтров, вычисляемых в т-файле coefap (см.
ниже) в соответствии с выражениями (2), (3).
Листинг 1.

44
1. Система ФАПЧ находится за пределами области захвата

Программа fapch.m

Далее приведен текст основного цикла работы системы ФАПЧ. В цикле рассчитываются
текущая частота ЛЧМ сигнала Wlin и вектор разности фаз сигнала и генератора FI, а
также вектор значений сигнала U на выходе фазового детектора с учетом при
необходимости аддитивных шумов. Затем сигнал дважды фильтруется. На выходе
первого цифрового фильтра формируется вектор DWh отклонения частоты генератора
относительно номинального значения, на выходе второго — текущее значение фазы
генератора Flh.

45
При заданной начальной расстройке ∆ɷо = 2 рад/с (DW) модель находится за
пределами области захвата, что подтверждается результатами машинного эксперимента,
выводимыми в графическом окне (см. рис. 12).
На верхнем графике наблюдается линейное увеличение разности фаз сигнала и
генератора на входе фазового детектора ∆𝜑(nTs) =∆ɷ0nTs. В соответствии с детекторной
характеристикой фазового детектора, имеющей форму синусоиды, его выходное
напряжение при линейном изменении фазы периодически изменяется в пределах ±1
(второй график). (Заметим, что в тексте программы для упрощения нелинейное
преобразование в фазовом детекторе представлено функцией синуса, а не косинуса. В
последнем случае различитель работает вблизи точки ∆𝜑= 3π/2. Если бы детекторная
характеристика имела форму синусоиды, его реакция на сдвиг фаз была бы такой же в
точке ∆𝜑 = 0, что и использовано в программе.)
Последовательность на выходе цифровой модели ПИФ (третий график) в
соответствии со структурной схемой рис. 6 дает мгновенное значение отклонения частоты
генератора ∆ɷг от его номинального значения ɷг0 и является поисковым колебанием.
Параметры этого колебания определяются передаточной функцией цифровой
модели ПИФ, соответствующей К(р) (1). Вид модуля К(р) — АЧХ ПИФ для разных ɷo
был показан на рис. 11. Из него следует, что амплитуда поискового напряжения,
перестраивающего генератор, зависит от выбора параметров элементов фильтра,
определяющих его частоту среза, а именно, в соответствии с (1) нетрудно установить
связь

(5)
В отличие от инерционного звена, увеличение постоянной времени ПИФ не
приводит к стремлению его коэффициента передачи к нулю, а ограничивает его значением
К= т. Это нетрудно проверить на модели, изменяя параметр ɷo (WC).

46
После прохождения через блок К с коэффициентом передачи Kf пропорционально
возрастают пределы изменения частоты генератора.
Проверьте соответствие частоты колебаний заданному значению ∆ɷ 0. Подсчитав
число дискретов k на период колебания То kTs, получим ∆ɷ0 =2π/T0.

Рисунок 12. Ожидаемые результаты работы программы fapch.m

Следующий этап проверки цифровой модели — работа в режиме синхронизма. С


этой целью будем использовать тестовый сигнал с линейной частотной модуляцией: за
время моделирования Тм частота будет изменяться по закону

Здесь ɷд — максимальное отклонение (девиация) частоты относительно ее среднего


значения. Поскольку нас интересует не собственно частота ɷc, а ее отклонение ∆ɷc от
номинального значения частоты перестраиваемого генератора, в модели имеем
∆ɷc(t)= ∆ɷ0 + 2ɷдt/TM
Данное выражение в дискретном виде с учетом равенства Тм= NTS имеет вид

Отсюда видно, что за один дискрет по оси времени на эпюрах частота будет изменяться на
2ɷд/N.
Установите параметры модели таким образом, чтобы начальное значение∆ɷ 0
вывело систему за пределы полосы захвата (DW = -2), а затем расстройка частоты за
время Тм уменьшилась бы до нуля, т. е. при n = N ∆ɷc(NTs) = ∆ɷ 0 + 2ɷд= 0, откуда

47
ɷд = -∆ɷ0/2 (WD = 1;). Другие параметры нужно задать так: Wc = 0.1; Kf = 1.7;
N = 2000.
Работа системы ФАПЧ иллюстрируется на рис. 13.

Рисунок 13. Работа системы ФАПЧ

В левой части нижнего графика частота генератора периодически изменяется, т. е.


система работает в режиме поиска. Поскольку ∆ɷc(t) линейно уменьшается, период
поисковых (по частоте) колебаний увеличивается, а их размах изменяется в
соответствии с формой АЧХ ПИФ. В некоторой точке по оси дискретного времени
мгновенное значение разности частот сигнала и генератора становится равным нулю и
система входит в синхронизм. На верхнем графике, отражающем зависимость ∆𝜑(nTs),
прекращается «накрутка» фазы Частота генератора становится равной частоте сигнала,
но отличается от номинальной ɷг 0. По мере уменьшения ∆ɷc(t) за счет девиации
частоты сигнала синхронно с ней изменяется частота генератора, стремясь к ɷг0. При
зтом регулирующее напряжение (средний график), поддерживающее равенство ɷг = ɷс,
также уменьшается. При nTs = NTS = Тм частота ∆ɷc(nТs) = 0 и регулирующее
напряжение также равно нулю.
Увеличьте вдвое девиацию частоты WD = 2 (рис. 14). На графиках справа появится
область выхода ФАПЧ из синхронизма. Обратите внимание на то, что области
синхронизма на нижнем графике влево и вправо от точки, соответствующей ∆ɷг = 0 (при
n= 1000), не одинаковы по протяженности. Поскольку движение происходит слева-
направо, точка входа в синхронизм слева соответствует Ω3, т. е. половине полосы захвата.
Правая точка получается при движении из области синхронизма и соответствует половине
полосы удерживания Ω y.

48
Рисунок 14. Выход системы ФАПЧ из синхронизма

Оцените приближенные значения этих частот, ориентируясь на верхний график


При этом, как указывалось выше, один дискрет по оси времени соответствует изменению
частоты на 2ɷд/N, т. е. Ω3(У) = 2ɷдnc/N, где nс— число дискретов, соответствующее
половине ширины области захвата (удерживания).

Задание 2. Проверку адекватности модели работе системы ФАПЧ проведем для


примера только по одному параметру — экспериментальной оценке значения γз—
соотношения полос захвата и удерживания. Оценку γ= Ωз/Ωу по результатам
моделирования необходимо сопоставить с теоретической, описываемой выражением (4),
которое, как указывалось, справедливо при выполнении условия mT2Ωy >> 1 Поскольку
для ПИФ согласно (1) тТ2 = Т1 с учетом выражения (5) нетрудно преобразовать условие

использования формулы (4) к виду


В частности, при m = 0,4 получим условие выбора частоты среза ɷ0<< 0,2Ωу.
Выбор частоты среза сделайте на основании измерений Ωу, проведенных в
предыдущем пункте Желательно, чтобы она была не менее 0,01 рад/с, так как большая
инерционность ПИФ приводит к затяжным переходным процессам при входе в
синхронизм, что требует увеличения времени моделирования.
Методика точной оценки значения Ω3 (до трех знаков) состоит в следующем.
Задать параметры WD = 0; DW = 2;. Проверить, что система работает в режиме поиска.
Уменьшить вдвое значение расстройки (DW = 1) и вновь провести проверку. Если
режим не изменился, уменьшить расстройку еще вдвое. Если система вошла в
синхронизм, установить DW = 1,5 — среднее значение двух последних опытов и т. д. до
третьего знака. Первые два знака можно получить, задав N = 5000.

49
По мере повышения точности потребуется увеличить N до 10-12 тысяч и более,
чтобы дождаться окончания переходного процесса, возникающего в системе при
скачкообразном изменении частоты сигнала.
В соответствии с рис. 14 ширина полосы удерживания составляет примерно 850
дискретов. Учитывая, что одному дискрету соответствует полоса частот
2ɷд/N = 2 • 2/2000 = 0,002, получим
Ωу= 850 • 0,002 = 1,7.
В соответствии с (4) γз = 2 * 0,4  0,4 2 = 0,8, где m = 0,4.
Тогда Ωз=γзΩу=0,8*1,7 =1,36
Машинный эксперимент по описанной выше методики дает Ωз = 1,275. Что
достаточно близко к теоретической оценке.
Задание 3. На рис. 15 показана зависимость фазы ∆𝜑(t), а также частоты
перестраиваемого генератора при ЛЧМ сигнале в отсутствие шумов (здесь задано в
начальный момент ɷс = ɷ Го). Те же зависимости показаны на рис. 14.16 для случая,
когда параметр шума Rgo = 0,7.

Рисунок 15. Зависимость фазы ∆𝜑(t), а также частоты перестраиваемого генератора


при ЛЧМ сигнале в отсутствие шумов

50
Рисунок 16. Зависимость фазы ∆𝜑(t), а также частоты перестраиваемого генератора
при ЛЧМ сигнале при значении параметра шума Rgo = 0,7.

Из графика ∆𝜑 (t) можно определить примерное значение полосы удерживания,


которое, как видно из рисунков, уменьшается при воздействии шумов
При разных значениях частоты среза ПИФ (Wc = 0.1 и 10 рад/с) получите две
зависимости полосы удерживания Ωу от параметра шума Rgo, изменяя его в пределах от 0
до 4.
Для каждого значения Rgo проведите усреднение Ωу по пяти измерениям. Постройте
графики полученных зависимостей и сделайте выводы о влиянии частоты среза ПИФ.

Отчёт должен содержать


1. Листинги используемых программ
2. Скрин-шоты полученных результатов
3. Расчет параметров функционирования системы ФАПЧ с пояснениями
4. Ответы на контрольные вопросы

Контрольные вопросы
1. Какой блок в структурной схеме ФАПЧ выполняет роль различителя направления
сдвига фаз ?
2. Что такое полоса захвата системы ФАПЧ?
3. Что такое полоса удерживания системы ФАПЧ?

Лабораторная работа № 6

Принципы сверточного кодирования

Цель работы: ознакомление с принципами сверточного и пунктурного кодирования

51
Задание на выполнение работы: осуществить сверточное и пунктурное кодирование
бинарной последовательности, полученной из заданного сигнала в работе № 4, определить
вероятность битовой ошибки, обеспечиваемой данным кодером.

Теоретические сведения: На рисунке 1 приведена схема сверточного кодера,


обеспечивающая степень кодирования 2/3.

Рисунок 1. Схема сверточного кодера со степенью кодирования 2/3.


Определим основные параметры, необходимые для выполнения команды МАТЛАБ
poly2trellis, моделирующего работу сверточного кодера.
Команда poly2trellis содержит два векторных параметра. Размерность первого
векторного параметра равна количеству входов кодера. Так как на рисунке 1 кодер имеет
два входа, размерность вектора первого параметра команды poly2trellis равна двум.
Численные значения вектора равны количеству регистров сдвига в каждой из ветвей
кодера плюс входной бит. В первой ветви кодера четыре регистра сдвига плюс один
входной бит дает число 5, во второй ветви кодера три регистра сдвига плюс один входной
бит дает число четыре. Численные значения первого вектора параметров команды
poly2trellis следовательно равны [5 4].
Второй векторный параметр команды poly2trellis представляет собой генераторную
матрицу размером 2 х 3 (два входа и три выхода) вида [23 35 0; 0 5 13], численные
значения которой определяются вкладом каждого из двух входов в каждый из трех
выходов, взятые как восьмеричные числа результата преобразования входного дибита 11
регистрами сдвигов и суммирования по модулю 2. Так , например, для вычисления
численного значения элемента второй строки и третьего столбца рассмотрим результат
преобразования регистрами сдвига нижнего (второго) ряда дибита 11. Получаем бинарное
число 1011, которое после преобразования в восьмеричный вид дает число 13.
Для формирования структуры кода используем команду:
trel = poly2trellis([5 4],[23 35 0;0 5 13]);

Пример кодирования с помощью разработанной структуры кодера

len = 1000; %длина случайной последовательности


% Случайная бинарная последовательность двухбитовых символов
msg = randint(2*len,1);

52
trel = poly2trellis([5 4],[23 35 0;0 5 13]); % Структура кодера
code = convenc(msg,trel); % Кодирование сообщения.
ncode = rem(code + randerr(3*len,1,[0 1;.96 .04]),2); % Добавление шума
decoded = vitdec(ncode,trel,34,'cont','hard'); % Декодирование
%Вычисление вероятности битовой ошибки
[number,ratio] = biterr(decoded(68+1:end),msg(1:end-68));
% Зашумление некодированного сигнала
nеcode = rem(msg + randerr(2*len,1,[0 1;.96 .04]),2);
%Вычисление вероятности битовой ошибки в некодированном сигнале
[number,ratio] = biterr(ncode(68+1:end),msg(1:end-68))

Заметьте, что входные данные команды кодирования convenc представляют собой


2-х битовые символы, а выходные данные – трехбитовые символы. Команда biterr
игнорирует первые 68 элементов декодированного сигнала, так как это есть количество
бит на символ (2) восстанавливаемого сигнала, умноженного на задержку (34),
установленную в команде vitdec. Это означает, что первые 68 элементов декодированного
сигнала являются нулями.

В работе необходимо выполнить сверточное кодирование заданного сигнала,


преобразованного в бинарную последовательность (как в работе № 4) и оценить
преимущества применения сверточного кодирования для улучшения качества связи.

Для выполнения работы с заданным сигналом установите задержку при передаче


сообщения, равную 1 ( как в лабораторной работе № 4).
Заметьте, что в примере параметр len=100, а генерация вектора случайных бинарных
чисел происходит с параметром 2*len, что при кодировании со скоростью 3/2 дает длину
кодированного сообщения, равную 3000, поэтому вектор добавляемого шума имеет
длину, равную 3*len=3000.
Для бинарного вектора вашего сигнала, полученного в работе № 4, который должен
иметь длину len= 384 отсчета , команда добавления шума должна выглядеть так:
ncode = rem(code + randerr((3/2)*len,1,[0 1;.96 .04]),2); % Добавление шума
В этой команде нулевая ошибка встречается в кодовом слове, прошедшем через
канал с шумом, с вероятностью 0,96, а единичная ошибка – с вероятностью 0,04. Измените
значения вероятностей ошибочного бита и оцените воздействие шума на результаты -
количество ошибок в кодовом слове и вероятность битовой ошибки.

Пунктурное сверточное кодирование

Иногда бывает так, что избыточность данных, обеспечиваемая сверточным кодером,


при определенных условиях помеховой обстановки достаточна высока и является
излишней, и встает задача уменьшить избыточность. Для этого можно, конечно,
разработать соответствующий сверточный кодер, но целесообразнее добавить в схему
блок, который будет просто уничтожать лишние биты. Процесс, выполняемый таким
блоком, называется пунктурным кодированием.

Пример реализации пунктурного сверточного кодера

Пример начинается с генерации 3000 случайных бит и кодирования их сверточным


кодом со степенью кодирования ½. Результирующий вектор содержит 6000 бит, которые
модулируются для передачи значениями -1 и 1. Пунктурный процесс уничтожает каждый
3-й бит, и к результирующему вектору канальных битов, который содержит уже 4000

53
значений, добавляется аддитивный гауссовский шум. Затем производится процесс
замещения «выколотых» битовых точек нулями.
Затем с помощью команды vitdec, моделирующей процесс декодирования сигнала с
помощью алгоритма Витерби, происходит декодирование по типу «неквантованного»
сигнала. Использование неквантованного типа принятия решения на декодере
используется по следующим причинам:
 Переменная tcode используется для представления логических «1» в
информационной последовательности с помощью значений сигнала, равных «-1»
 Переменная tcode используется для представления логических «0» в
информационной последовательности с помощью значений сигнала, равных «1»
 Пормещенные пунктурным кодером в информационную последовательность «0»
могут приняты декодером при «неквантованном» типе принятия решения, который
позволяет использовать в качестве входных переменных любые действительные
числа;
Также в приведенном ниже примере вычисляется вероятность битовой ошибки и
количество ошибочных бит.

len = 3000;
msg = randint(len,1,2,94384); % Генерация случайных чисел
t = poly2trellis(7,[171 133]); % Определение структуры пунктурного сверточного кодера
code = convenc(msg,t); % длина кода становится 2*len.
tcode = -2*code+1; % Передача сигнальных -1 и 1.

% Пунктурирование удалением из кода каждого третьего значения


punctcode = tcode;
punctcode(3:3:end)=[]; % Длина кода становится (2*len)*2/3.

ncode = awgn(punctcode,8,'measured',1234); % Добавление шума

% Помещение значений «0» на место «выколотых» информационных бит


nicode = zeros(2*len,1); .
nicode(1:3:end) = ncode(1:2:end);
nicode(2:3:end) = ncode(2:2:end);

decoded = vitdec(nicode,t,96,'trunc','unquant'); % Декодирование


% Вычисление вероятности битовой ошибки и количества ошибочных бит
[number,ratio]=biterr(decoded,msg);

В работе нужно выполнить пунктурное кодирование заданного сигнала, представленного


в виде последовательности «0» и «1» и, так же как в приведенном выше примере,
определить вероятность битовой ошибки и количество ошибочных бит.
Учтите, что длина вашей бинарной последовательности, полученной в работе № 4, равна
len=384 . Вам следует сформировать 10 периодов вашей информационной битовой
последовательности, чтобы получить длину кодового слова len=3840 отсчетов. Это можно
сделать при помощи небольшой программы:
len=384; % Длина вашего бинарного сигнала, обозначенного переменной msg
z=zeros(3840,1);
lenn=3840;
i=1;
while i<=(lenn-383)
z(i:(i+383))=msg;
i=i+383;

54
end

Отчет должен содержать:


1. Цель и задание на выполнение работы;
2. Тексты необходимых программ
3. Скрин-шоты сигналов, значения вероятности битовой ошибки и количества
ошибочных бит, необходимые для пояснения хода работы

Контрольные вопросы:
1. В чем заключается принцип сверточного кодирования?
2. Для чего используется пунктурное кодирование?
3. В чем заключается принцип пунктурного кодирвоания?

Лабораторная работа № 7

Исследование дифференциальной импульсно-кодовой модуляции

Цель работы: ознакомиться с алгоритмом осуществления DPCM

Задание на выполнение работы: выполнить кодирование и декодирование с помощью


алгоритма DPCM заданного сигнала, и оптимизировать параметры DPCM для
уменьшения среднеквадратической ошибки предсказания.

Теоретические сведения:

Для решения некоторых задач связи требуется осуществить предсказания текущего


значения сигнала на основе переданных сигнальных посылок. Квантование сигнала с
использованием предсказания называется квантованием с предсказанием. Оно
используется в дифференциальной импульсно-кодовой модуляции (Differential Pulse Code
Modulation – DPCM).

Линейная функция предсказания имеет вид:


y(k) = p(1)x(k-1) + p(2)x(k-2) + ... + p(m-1)x(k-m+1) + p(m)x(k-m) (1)
где х – исходный сигнал, а y(k) – функция предсказания значения сигнала на k – том шаге
x(k), р – m-мерный вектор действительных чисел.

Вместо квантования сигнала х, кодер DPCM квантует ошибку предсказания x-y. Целое
число m называется порядком предсказания. Особый случай, когда m=1 соответствует
дельта-модуляции.

Для выражения (1) соответствующая функция предсказания (предиктор) запишется


командой МАТЛАБ
predictor = [0, p(1), p(2), p(3),..., p(m-1), p(m)]
Начальное значение предиктора, равное нулю, устанавливается, если вектор р
рассматривается как полиномиальная функция преобразования фильтра с конечной
импульсной характеристикой (FIR).

В простейшем случае DPCM квантует разность между текущим и предыдущим


значением сигнала. Пример, приведенный ниже, иллюстрирует этот случай. Сигнал
sawtooth кодируется с использованием DPCM, затем декодируется и строится график

55
исходного (сплошная линия)и декодированного (пунктир) сигнала. Также вычисляется
значение среднеквадратической ошибки между исходным и декодированным сигналом.
predictor = [0 1]; % y(k)=x(k-1)
partition = [-1:.1:.9];
codebook = [-1:.1:1];
t = [0:pi/50:2*pi];
x = sawtooth(3*t); % Исходный сигнал
% Квантование сигнала х с использованием DPCM.
encodedx = dpcmenco(x,codebook,partition,predictor);
% Восстановление сигнала х из модулирванного сигнала.
decodedx = dpcmdeco(encodedx,codebook,predictor);
plot(t,x,t,decodedx,'--')
distor = sum((x-decodedx).^2)/length(x) % Вычисление средневадратической ошибки

distor = 0.0327

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


каждого значения шага квантования, задаваемого параметром partition. Размер вектора
codebook должен быть равен размеру вектора partition+1.
Пример использования параметра codebook при использовании команды квантования:
[index,quants] = quantiz([3 34 84 40 23],10:10:90,10:10:100)

Примечание. При выполнении работы со своим сигналом следует сначала квантовать


сигнал без использования параметра codebook и построить график квантованного сигнала,
с помощью которого определить количество используемых интервалов квантования
partition, а затем вектору codebook присвоить значения от 0 до (partition+1 )..

Оптимизация параметров DPCM производится с целью уменьшения


среднеквадратической ошибки между предсказанным и истинным значением сигнала. Она
выполняется с помощью параметра dpcmopt.
В приведенном ниже примере используется порядок предсказания, равный 1 в качестве
желаемого порядка оптимизированной функции предсказания. Функция dpcmopt создает
оптимизированные параметры DPCM, которые уменьшают значение
среднеквадратической ошибки.

t = [0:pi/50:2*pi];% задание параметров тестового сигнала


x = sawtooth(3*t); % формирование тестового сигнала
initcodebook = [-1:.1:1]; % задание кодовой книги
% Оптимизация параметров с использованием кодовой книги и порядка 1.
[predictor,codebook,partition] = dpcmopt(x,1,initcodebook);
% Квантование сигнала х с использованием DPCM.
encodedx = dpcmenco(x,codebook,partition,predictor);
% Восстановление сигнала х из модулированного сигнала
decodedx = dpcmdeco(encodedx,codebook,predictor);
distor = sum((x-decodedx).^2)/length(x) % значение среднеквадратической ошибки

distor =

0.0063

Отчет должен содержать:

56
1. Тексты программ
2. Скрин-шоты сигналов

Контрольные вопросы:
1. Для какой цели используется алгоритм DPCM?
2. Чем отличается DPCM от дельта-модуляции?

Лабораторная работа № 8

Модуляция цифровых сигналов

Цель работы: изучение принципов модуляции цифровых сигналов

Задание на выполнение работы: собрать с помощью библиотеки блоков Simulink схемы,


реализующие различные виды модуляции цифровых сигналов, получить скрин-шоты
результатов работы моделей.

Теоретические сведения:
Построение сигнального созвездия цифровой модуляции QPSK (квадратурной фазовой
манипуляции) выполняется с помощью модели, схема которой приведена на рисунке 1.

Рисунок 1. Модель для построения сигнального созвездия цифровой модуляции QPSK

Результатом работы модели рис.1. является диаграмма переходов от символа к символу в


сигнальном созвездии модуляции QPSK.
Для построения модели рис.1. используются следующие блоки:
 Random Integer Generator – генератор случайных целых чисел – находится во
вложенной библиотеке Data Sources библиотеки Comm Sources.
- Установите размер цифрового сигнального алфавита М=4;
- Установите начальное зерно генератора (Initial seed) любым скалярным целым
положительным числом;
- Установите время взятия выборок (Sample time) на 0,01.
 DQPSK Modulator Baseband – блок узкополосной цифровой модуляции QPSK –
находится во вложенной библиотеке РМ вложенной библиотеки Digital Baseband
библиотеки Modulation
 Complex to Real-Imag – блок выделения синфазной и квадратурной составляющей
сигнала – находится в библиотеке Simulink Math Operations
 XY Graph – осциллограф – находится в библиотеке Simulink Sinks

Если не указано обратное, используйте параметры блоков Simulink, заданные по


умолчанию.
Результатом работы модели рис.1 является сигнальное созвездие квадратурной

фазовой манипуляции, реализующей сдвиг фаз для сигнального алфавита размером
4
М=4.
57
Необходимо также оценить влияние сдвига фаз на вид сигнального созвездия,
изменив параметр Phase offset в блоке DQPSK Modulator Baseband block в соответствии с
вариантом.
Варианты задания:
         
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
9 8 10 12 14 16 18 3 5 7

Построение сигнального созвездия цифровой модуляции QАМ (квадратурной


амплитудной манипуляции) выполняется с помощью модели, схема которой приведена на
рисунке 2.

Рисунок 2. Модель для построения сигнального созвездия цифровой модуляции QАМ

В модели рис.2. цифровые символы в модуляции QAM проходят канал с гауссовским


шумом (AWGN), который искажает вид сигнального созвездия.

Для построения модели рис.2. используются следующие блоки:


 Random Integer Generator – генератор случайных целых чисел – находится во
вложенной библиотеке Data Sources библиотеки Comm Sources.
- Установите размер цифрового сигнального алфавита М=16;
- Установите начальное зерно генератора (Initial seed) любым скалярным целым
положительным числом;
- Установите время взятия выборок (Sample time) на 0,1.
 Rectangular QAM Modulator Baseband – блок узкополосной квадратурной
амплитудной манипуляции с квадратным видом созвездия – находится во
вложенной библиотеке АМ вложенной библиотеки Digital Baseband библиотеки
Modulation.
- Установите параметр Normalization method на значение Peak Power
 AWGN Channel – блок канала с гауссовским белым шумом – находится в
библиотеке Channels
- Установите параметр Es/No на значение 20
- Установите параметр Symbol period на значение 0,1
 Discrete-Time Scatter Plot Scope – блок изображения диаграммы рассеяния
дискретного времени – находится в библиотеке Comm Sinks.
- Выберите опцию Show Plotting Properties.
- Установите параметр Points displayed на значение 160
- Установите параметр New points per display на значение 80
- Выберите опцию Show Figure Properties
- Установите параметр Scope position на значение figposition([2.5 55 35 35]);
- Установите параметр Figure name на значение QAM Scatter Plot

В окне модели Simulation menu выберите Simulation parameters и установите время


моделирования Stop time на значение 250.
Результатом моделирования является диаграмма рассеяния, содержащая 16 скоплений
точек.

58
Необходимо оценить влияние шума на диаграмму рассеяния. Получите скрин-шоты
результатов работы собранной модели при отсутствии шума и при значениях параметра
Es/No в соответствии с вариантом.

Варианты задания:

1. Es/No=10; 2. Es/No=5; 3. Es/No=3; 4. Es/No= -1; 5. Es/No=8; 6. Es/No=-2;


7. Es/No=12; 8. Es/No=15; 9. Es/No=-3; 10. Es/No=-5;

Построение дерева фаз для модуляции СРМ (модуляции без разрыва фазы).
Дерево фаз является диаграммой, в которой друг на друга накладываются несколько
кривых, каждая из которых представляет собой изменение фазы модулированного сигнала
во времени.
Схема модели построения дерева фаз СРМ представлена на рисунке 3.

Рисунок 3. Схема модели построения дерева фаз СРМ

Для получения численных значений в схеме рис.3. используется CPM Modulator Baseband
- блок узкополосной модуляции СРМ. Его параметры конфигурируются с использованием
фильтра типа приподнятого косинуса. Результаты работы схемы рис.3 помещаются в
рабочую область МАТЛАБ.
Для построения модели рис.3. используются следующие блоки:
 DSP Constant – блок константы цифровой обработки сигнала - находится в
библиотеке DSP Sources
– Задайте параметр Constant value s символом s, который должен быть определен в
рабочей области МАТЛАБ
- Установите опцию Output на значение Frame-based
- Установите параметр Frame period на значение 1.
 CPM Modulator Baseband - - блок узкополосной модуляции СРМ
- Установите значение алфавита М=2
- Установите параметр Modulation index на значение 2/3
- Установите параметр Frequency pulse shape на значение Raised Cosine
- Установите параметр Pulse length на значение 2.
To Workspace – блок сохранения результатов в рабочем окне МАТЛАБ – находится в
библиотеке Simulink Sinks.
- Установите параметр Variable namе на значение х
- Установите параметр Save format на значение Array

Модель рис.3 не запускайте, так как переменная s еще не определена в рабочей


области МАТЛАБ. Вместо определения переменной s, сохраните собранную модель рис.3
в вашей активной директории МАТЛАБ под именем файла doc_phasetree.
Приведенная ниже программа, набранная по шагам в рабочей области МАТЛАБ,
позволяет запустить модель рис.3.

% Параметры блока узкополосной модуляции CPM


M_ary_number = 2;
modulation_index = 2/3;

59
pulse_length = 2;
samples_per_symbol = 8;
opts = simset('SrcWorkspace','Current',...
'DstWorkspace','Current');

L = 5; % Количество показываемых символов


pmat = [];
for ip_sig = 0:(M_ary_number^L)-1
s = de2bi(ip_sig,L,M_ary_number,'left-msb');
% Отображение входных символов с помощью модуляции CPM
% символ 0 -> -(M-1), символ 1 -> -(M-2), и т.д..
s = 2*s'+1-M_ary_number;
sim('doc_phasetree', .9, opts); % запуск модели для получения результата « x»
% построение следующего столбца переменной pmat
pmat(:,ip_sig+1) = unwrap(angle(x(:)));
end;
pmat = pmat/(pi*modulation_index);
t = (0:L*samples_per_symbol-1)'/samples_per_symbol;
plot(t,pmat); figure(gcf); % График дерева фаз

Получающийся в результате работы вышеприведенных команд график дерева фаз


модуляции без разрыва фазы показывает кривые, каждая из которых соответствует
изменению фазы каждого из входных символов.

Построение модели полосового цифрового модулятора


Схема, приведенная на рисунке 4, реализует модель полосовой многофазовой
манипуляции. Результатом работы схемы рис.4. является график спектра
модулированного сигнала.

Рисунок 4. Модель полосовой многофазовой манипуляции

Параметры M-PSK Modulator Passband – блока полосовой М-арной фазовой манипуляции


– должны удовлетворять следующим требованиям:
Скорость поступления в схему входного сигнала, равная 10, меньше значения несущей
частоты, равного 100;
Скорость передачи модулированного сигнала, равная 3000, превышает значение суммы
удвоенной несущей частоты и удвоенной скорости входного сигнала.

Для построения схемы рис.4. используются следующие блоки:


 Bernoulli Binary Generator – генератор бинарных чисел Бернулли – находится во
вложенной библиотеке Data Sources библиотеки Comm Sources.
- Установите параметр Probability of a zero на значение [.5, .5]
- Установите параметр Initial seed на любое значение вектора-строки, содержащего 2
положительных целых числа
- Установите параметр Sample time на значение 0,1

60
 M-PSK Modulator Passband – блок полосового модулятора М-арной фазовой
манипуляции – находится во вложенной библиотеке РМ вложенной библиотеки
Digital Passband библиотеки Modulation
- Установите параметр M-ary number на значение 4
- Установите параметр Input type на значение Bit
- Установите параметр Symbol period на значение 0,1
- Установите параметр Carrier frequency на значение 1000
- Установите параметр Carrier initial phase на значение pi/4
- Установите параметр Output sample time на значение 1/3000

 Buffer – буфер – находится во вложенной библиотеке DSP Blockset Buffers


библиотеки Signal Management
- Установите параметр Output buffer size на значение 1024
- Magnitude FFT – блок вычисления быстрого преобразования Фурье –
находится во вложенной библиотеке DSP Blockset Power Spectrum
Estimation библиотеки Estimation.
- Проверьте установку флажка Inherit FFT length from input dimensions
 Mean – блок вычисления среднего значения – находится в библиотеке DSP Blockset
Statistics
- Проверьте установку флажка Running mean
- Установите параметр Reset port на значение None
 Vector Scope – блок визуализации временных рядов – находится в библиотеке DSP
Sinks
- Установите параметр Set Input domain на значение Frequency
- Проверьте установку флажка Axis properties
- Установите параметр Frequency range на значение [-Fs/2...Fs/2]
- Установите параметр Maximum Y-limit на значение 100.

В окне модели Simulation menu выберите Simulation parameters и установите время


моделирования Stop time на значение 10.
Постройте график спектра модулированного сигнала.

Замените блок M-PSK Modulator Passband в схеме рис.4 на блок M-DPSK Modulator
Passband и затем на блок OQPSK Modulator Passband.
Постройте графики спектров модулированных сигналов для случаев использования
дифференциальной фазовой манипуляции и квадратурной фазовой манипуляции со
сдвигом.
Опишите, как изменяется спектр полосового сигнала при применении различных типов
модуляции

Отчет должен содержать:


1. Схемы собранных моделей
2. Необходимый для запуска схем набор команд
3. Скрин-шоты результатов работы моделей
4. Выводы

Контрольные вопросы:
1. Как изменяется вид сигнального созвездия при изменении значения скачка фазы
при модуляции QPSK?
2. Каковы причины использования вместо модуляции QPSK модуляций OQPSK и
СРМ?

61
3. Что такое код Грея и для чего он используется?

Лабораторная работа № 9

Знакомство с принципами работы мобильной системы связи стандарта IS-95.

Цель работы: ознакомиться с составом основных подсистем мобильной системы связи


стандарта IS-95, принципами их работы и структурными схемами.

Задание на выполнение работы: промоделировать работу основных подсистем


мобильной системы связи стандарта IS-95 и проанализировать основные результаты их
работы.

Теоретические сведения:
Interim Standard 95 (IS 95) определяет требования к радиотелефонным системам
связи с применением сигналов расширенного спектра ( метод прямой последовательности
DS/SS)) для обеспечения множественного доступа. Этот стандарт был разработан
корпорацией Qualcomm для работы в спектре частот, используемом аналоговыми
системами связи (AMPS) в США. Системы AMPS используют полосу шириной 25 МГц
для передачи сигнала от базовой станции к мобильному устройству (прямой канал) в
диапазоне 869-894 МГц и полосу такой же ширины для обратной передачи сигнала
(обратный канал) в диапазоне 824-849 МГц. При работе IS-95 в каждый отдельный
момент времени используется система CDMA с шириной полосы 1,25 МГц, а мобильные
устройства соответствуют одновременно двум стандартам (AMPS и CDMA). Согласно
решению Федеральной Комиссии связи США, одному оператору может быть выделен
максимальный диапазон частот, равный 12,5 МГц, как в прямом, так и в обратном канале,
что соответствует 10 физическим частотным радиоканалам с полосой 1,25 МГц.
Основные характеристики системы:
Каждый канал расширяется на полосу шириной 1,25 МГц, после чего фильтруется
для ограничения спектра.
Скорость передачи элементарных сигналов Rch =1,2288 млн. элементарных сигналов
в секунду. Номинальная скорость передачи данных, называемая режимом RS1 (Rate Set 1)
равна 9,6 Кбит/с. Улучшенный скоростной режим RS2 соответствует скорости передачи
данных 14,4 Кбит/с.
Модуляция данных осуществляется с помощью двоичной фазовой манипуляции
(BPSK) с применением расширения сигнала методом QPSK. При этом каждый
квадратурный компонент несущей является сигналом BPSK, модулированным данными.
Используется сверточное кодирование с декодированием по алгоритму Витерби
Для разнесения по времени используется устройство временного уплотнения
импульсных сигналов с интервалом 20 мс.
Сигналы с многолучевым распространением обрабатываются RAKE – приемником.
Для пространственного разделения используются две антенны в каждом секторе ячейки.
Для разделения по каналам применяется ортогональное кодовое уплотнение.
Регулирование мощности позволяет минимизировать энергию передаваемого
сигнала, и, следовательно, уменьшить интерференцию.
Резерв фактора речевой активности учитывается использованием речеобразующего
устройства (вокодера) с переменной частотой преобразования аналогового речевого
сигнала в цифровой. В зависимости от активности абонента вокодер формирует потоки
данных со скоростями 8,6; 4; 2; 0,8 кбит/с
Порядок выполнения работы:

62
Последовательно запустить на выполнение программы, моделирующие работу
отдельных подсистем мобильной системы связи стандарта IS-95и проверить зависимость
результатов их работы от отдельных параметров схем..
Схема детектирования сигнала прямого канала в мобильной системе связи
стандарта IS-95A вызывается с помощью команды is95fwdchdetection2, набранной в
командной строке рабочего окна МАТЛАБ. Этот пример показывает, как происходит
модуляция и расширение спектра сигнала в системе IS-95A. Сигнал CDMA базовой
станции сужается и когерентно демодулируется мобильной станцией. Основными
компонентами данного примера являются передатчик, приемник и канал связи.
Результатом работы схемы является уровень битовой ошибки (BER) сигнала, не
подвергнутому канальному кодированию (RAW signal). Схема модели состоит из
следующих блоков:
IS-95A интерфейс передатчика сигнала базовой станции ( внутри подсистемы модуляции
и расширения спектра), генератор длинного, короткого кода (PN1 и PNQ) и кода Уолша
(внутри подсистемы источника данных) , скремблера, передающего фильтра. Скремблер
использует децимированный длинный код для скремблирования входных данных и
вставки битов регулировки мощности.
Роль передающей секции схемы состоит в генерировании модулированного сигнала,
который состоит из пилотного, синхронизационного, пейджингового канала и каналов
трафика. С выхода блока передающего фильтра снимаются модулированные сигналы
синфазного (I) и квадратурного (Q) каналов. В схеме моделируется прохождение сигнала
по каналу с зашумлением, сигнал подвергается многолучевому распространению.
На приемном конце схемы реализуются фильтрация, корреляция с помощью
гребенчатого фильтра ( Rake filtering) и выполнение операции дескремблирования.
Блок принимающего фильтра (Receive Filter block) фильтрует I и Q компоненты принятого
сигнала для максимизации отношения сигнал/шум. Блок детектора (IS-95A Fwd Ch
Detector library block) содержит в себе скрытые подсистемы. Он выполняет корреляцию
для данных трафика и пилотных символов. Результаты этих операций используются Rake-
демодулятором (IS-95A Fwd Ch Rake Demodulator ) для восстановления переданных
информационных символов. Дескремблер (IS-95A Fwd Ch Descrambler) восстанавливает
исходный порядок посланных символов сообщения. Результатом работы схемы является
вероятность битовой ошибки (BER). Величина BER зависит от условий в канале связи и
количества «пальцев» гребенчатого фильтра . Проверить зависимость величины BER
от этих условий. Длительность моделирования установлена на 2 секунды. Так как
длительность кадра в системе связи IS-95 равна 0,02 сек., то время моделирования
соответствует прохождению 100 кадров данных. Для изменения количества «пальцев»
RAKE-приемника, щелкните два раза по иконке начальных фаз и измените параметры.
Задержка, соответствующая разным «пальцам» гребенчатого фильтра измеряется в
отсчетах, а не в секундах. Введение нуля ликвидирует «палец» гребенчатого фильтра. По
умолчанию в схеме установлены три «пальца» RAKE-приемника с задержками 96, 116 и
239 отсчетов соответственно. Чтобы перевести секунды в отсчеты, нужно умножить
количество отсчетом на чиповую скорость 1,2288 Мсек и поделить на запас по частоте
дискретизации, равный 8.

Схема кодека сигнала прямого канала стандарта IS-95A показывает, как происходит
канальное кодирование на базовой станции и соответствующее декодирование сигнала на
приемнике мобильной станции. Модель канала добавляет шум к кодированным данным
для моделирования ошибки. Для запуска модели в командной строке рабочего окна
МАТЛАБ набирается команда is95fwdchcodec2. Для обеспечения безошибочной
передачи сообщения передатчик базовой станции использует циклические коды CRC,
сверточное кодирование со скоростью кодирования 1/2, повторение символов и

63
чередование битов сообщения. В зависимости от скорости передачи данных блок
повторителя ( IS-95A Fwd Ch Repeater) может повторять биты сообщения для того, чтобы
кадр данных состоял из 384 символов. Если вы используете более высокую скорость
передачи ( Rate Set II), тогда блок повторителя не повторяет биты, а наоборот, изымает
некоторые биты из сообщения, чтобы размер кадра оставаля постоянным. На приемном
конце блок дерепитера ( IS-95A Fwd Ch Derepeater ) в зависимости от скорости
передаваетмых данных либо усредняет повторенные данные, либо вставляет нули на
место пропущенных битов (если они изымались повторителем на передающей стороне).
Затем сигнал поступает на блок декодирования Витерби ( IS-95A Fwd Ch Viterbi Decoder),
который восстанавливает исходное сообщение с CRC битами. Детектор кадров ( IS-95A
Frame Quality Detector block) принимает решение о корректности переданного кадра
(Quality Indicator signal) и выдает исходное сообщение без CRC битов. Один блок
вычисления вероятности ошибки сравнивает переданное и принятое сообщения, получаем
вероятность битовой ошибки (BER). Другой блок вычисления вероятности ошибки
сравнивает сообщение о корректности переданного кадра (Quality Indicator signal) с нулем,
получаем вероятность кадровой ошибки (FER). Проанализировать, как уровни BER и
FER зависят от уровня шума в канале связи и скорости передачи данных. Время
моделирования установлено на 10 секунд. Это соответствует передаче 500 кадров
(длительность кадра в стандарте IS-95 составляет 0,02 сек.).

Схема детектирования сигнала прямого канала в cтандарте IS-95 c использованием


канального кодирования вызывается с помощью команды is95fwdchendtoend2,
набранной в командной строке рабочего окна МАТЛАБ. Необходимо проанализировать
осциллограммы, полученные в различных точках схемы.

Cхема детектирования сигнала обратного канала в стандарте IS-95 вызывается с


помощью команды is95revchdetection2, набранной в командной строке рабочего окна
МАТЛАБ. Схема моделирует процессы модуляции сигнала модулятором Уолша и
расширения спектра на передатчике мобильной станции, а также процессы сужения
спектра сигнала и некогерентной демодуляции с помощью RAKE-приемника на базовой
станции. Результатом работы схемы является величина битовой ошибки.
Компонентами передатчика являются подсистема генерации данных, которая генерирует
случайные биты сообщения, определяет скорость передачи в канале связи и короткий
псевдослучайный код (PN) для расширения спектра в синфазном и квадратурном каналах.
Подсистема модуляции и расширения спектра отвечает за модуляцию кодом Уолша и
расширение спектра с помощью длинных и коротких псевдослучайных
последовательностей. Кроме этого, эта подсистема осуществляет управление
пропусканием только части сигнала ( всего кадра при передаче на основной скорости,
половины кадра на половинной скорости и т.д.). Блок передающего фильтра генерирует
синфазную и квадратурную компоненты несущей частоты. Квадратурная компонента
несущей задержана относительно синфазной компоненты на время длительности ½ чипа.
RAKE-приемник базовой станции содержит три «пальца» (приемника), каждый из
которых настроен на определенную задержку многолучевого распространения
передаваемого сигнала.
Каждый «палец» RAKE-приемника выполняет сужение сигнала с помощью короткого , а
затем и длинного PN кода. Затем выполняется корреляция с одним из 64 кодов Уолша.
Энергии сигналов синфазного (I) и квадратурного (Q) каналов складываются, а затем
складываются результирующие сигналы на выходе каждого приемника «пальца». Это
выполняется с помощью подсистемы демодулятора Уолша, который выносит как мягкое,
так и жесткое решение, каждое из которых выбирается случайным образом. Блок
вычисления ошибки сравнивает переданные и полученные биты сообщения. При этом

64
для передачи сообщения не использовалось канальное кодирование ( так называемый Raw
Signal). Уровень битовой ошибки (ВER) зависит от отношения сигнал/шум в канале связи
и количества «пальцев» RAKE-приемника. Длительность моделирования установлена на
2 секунды. Так как длительность кадра в стандарте IS-95A равна 0.02 секунды, то
моделируется получение 100 кадров сообщения. Это дает возможность для получения
реальных значений BER . В ходе моделирования необходимо проанализировать, как
количество «пальцев» RAKE-приемника, а также задержка их настройки влияет на
величину битовой ошибки.

Схема кодека обратного канала связи стандарта IS-95 показывает, как происходит
процесс канального кодирования на мобильной станции и соответственно процесс
декодирования сигнала на базовой станции. Модель канала добавляет шум для
моделирования ошибок в канале связи. Запустить модель можно, набрав в командной
строке рабочего окна МАТЛАБ команду is95revchcodec2. Проанализировать, как
уровни BER и FER зависят от уровня шума в канале связи и скорости передачи
данных. Время моделирования установлено на 10 секунд. Это соответствует передаче 500
кадров (длительность кадра в стандарте IS-95 составляет 0,02 сек.).

Схема передатчика обратного канала стандарта IS-95A моделирует работу


передатчика мобильной станции. Основными компонентами этой схемы являются:
генератор CRC кода, сверточный кодер ( Convolutional encoder), повторитель символов
(Symbol repeater), блок чередования (Interleaver), модулятор и расширитель спектра
(Modulator and spreader) и передающий фильтр ( Transmit filter). Модель запускается при
помощи команды is95revchtransmitter2, набранной в командной строке рабочего окна
МАТЛАБ.
Генератор короткого кода используется для модуляции несущей в синфазном и
квадратурном каналах. Блок модуляции Уолша ( IS-95A Rev Ch Walsh Modulation and
Spreading library block), находящийся внутри подсистемы модуляции и расширения
спектра, выполняет модуляцию сигнала кодом Уолша и расширение спектра сигнала
длинным кодом. Блок осциллографа дает возможность увидеть синфазный и
квадратурный компоненты модулированной несущей. Если скорость передачи сигнала
меньше наибольшей возможной скорости, то осциллограмма показывает, что
передаваемый сигнал сокращается по длительности. Проверить это. Длительность
моделирования установлена на 0,1 сек. Так как длительность кадра в стандарте IS-95
составляет 0,02 сек., то моделируется передача пяти кадров сообщения.

Отчет должен содержать:


1. Задание на выполнение работы
2. Скрин-шоты схем подсистем мобильной системы связи стандарта IS-95 и
результаты их работы в виде осциллограмм и вероятностей ошибки.
3. Выводы

Контрольные вопросы:
1. Какую роль играют функции Уолша в прямом и обратном канале связи мобильной
системы стандарта IS-95?
2. Какой из каналов связи – прямой или обратный - более устойчив при приеме
сигнала и почему, за счет чего достигается заданное качество связи в менее
устойчивом канале?

65
Учебное издание

Системы и сети передачи информации. Часть 1.


Лабораторный практикум

Чернецова Елена Анатольевна

66
Редактор И.Г. Максимова

Подписано в печать Формат 60/901/2 Бумага книжно – журнальная


Печ. л. Тир. 55
РГГМУ, 195196, СПб, Малоохтинский пр

67

Вам также может понравиться