Е.А.Чернецова
Санкт-Петербург
2016
1
УДК 681.3.07
2
Лабораторная работа № 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 Гц. Мы не
заинтересованы в столь высокой частоте дискретизации, т.к. должна быть значительно
повышена емкость буферных устройств в системе связи.
Поэтому отфильтрованный аналоговым фильтром сигнал посылается на устройство
квантования, на выходе которого имеем уже цифровой сигнал, который можно
подвергнуть цифровой фильтрации.
4
Рисунок 1. Интерфейс разработки и анализа фильтра
5
Рисунок 3. Одна из секций разработанного фильтра
Контрольные вопросы:
1. Как изменится структура фильтра, если снизить требования к подавлению частот
вне полосы пропускания?
2. Как изменится структура фильтра, если повысить требования к подавлению частот
вне полосы пропускания?
7
Лабораторная работа № 2
Теоретические сведения
8
Рис.1, а
Рис.1, б
Глазковая диаграмма – это изображение, полученное в результате измерения
отклика системы на заданные узкополосные сигналы. На вертикальные пластины
осциллографа подается отклик приемника на случайную последовательность импульсов, а
на горизонтальные – пилообразный сигнал сигнальной частоты ( горизонтальная
временная развертка осциллографа устанавливается равной длительности символа
(импульса). В течение каждого сигнального промежутка очередной сигнал накладывается
на семейство кривых в интервале (0,Т). На рис.2 приведена глазковая диаграмма,
получаемая при двоичной антиподной (биполярные импульсы) передаче сигналов.
Поскольку символы поступают из случайного источника, они могут быть как
положительными, так и отрицательными, и отображение послесвечения электронного
луча позволяет видеть изображение, имеющее форму глаза. Ширина открытия глаза
указывает время, в течение которого должна быть проведена выборка сигнала.
Оптимальное время взятия выборки соответствует максимально распахнутому глазу, что
дает максимальную защиту от воздействия помех. Диапазон разностей амплитуд DA
является мерой искажения, вызванного межсимвольной интерференцией (наложением
сигналов друг на друга из-за образования сигнальных «хвостов» вследствие воздействия
помех), а диапазон разностей времен перехода через нуль JT является мерой неустойчивой
синхронизации. MN – мера запаса помехоустойчивости, ST – чувствительность к ошибкам
синхронизации. Чаще всего глазковая диаграмма используется для качественной оценки
9
межсимвольной интерференции. По мере открытия глаза она уменьшается, а по мере
закрытия – увеличивается.
Рис.2
%%
Глазковая диаграмма используется для графического представления промодулированного
отфильтрованного сигнала для демонстрации контуров модуляции. Представим один
график для синфазной компоненты и один график для квадратурной компоненты.
10
fp = get(h1,'position');
set(h1,'position',[ss(3)*.99-fp(3) ss(4)*.9-fp(4) fp(3:4)]);
pause
%%
Глазковая диаграмма может также использоваться для графического представления
реальной части сигнала.. yReal является реальной частью синфазной компоненты y.
Глазковая диаграмма различает, что сигнал реальный и создает только одну пару осей.
%%
Предыдущая глазковая диаграмма представляла графически всю переменную у. Однако
нам не интересны хвостовые части у, которые содержат ранние и поздние частичные
отклики фильтра. Следующие графики демонстрируют глазковую диаграмму переменной
уу, которая не включает “хвосты” у. Теперь характеристики модуляции становятся
явными. Каждая синфазная и квадратурная составляющая 16-разрядной QAM занимает
4 отличающихся уровней в центре диаграммы с небольшим перекрытием между
уровнями
11
%% Вы можете построить диаграмму таким образом, чтобы открытая часть глаза не
находилась в центре осей. Следующую программу можно назвать представлением
закрытой части глаза в центре осей.
% Создание диаграммы.
h5 = eyediagram(yy, N, 1, N/2);
%%
Функция SCATTERPLOT создает диаграмму рассеяния синфазной компоненты в
сравнении с квадратурной компонентой сигнала, которая строится в соответствии с
величиной выборки на символ, N. Результирующий график показывает принятый сигнал
в соответствии с набором символов. Когда канал не зашумлен и при отстутствии помех,
эти символы идентичны переданным.
12
%Закрытие графического окна
close(h7(ishandle(h7)));
pause
%%
Следующие графики представляют индикаторные диаграммы для оригинального сигнала
( синие линии) и зашумленного сигнала ( красные линии). Диаграммы ясно показывают
изменение принятого сигнала в сравнении с передаваемым в соответствии с тем шумом,
который добавился к сигналу.
%%
Следующие графики являются представлением диаграммы рассеяния исходного сигнала
( голубые точки) и зашумленного сигнала ( красные точки). Диаграмма рассеяния ясно
показывает отличия переданного сигнала от принятого.
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-');
pause
%%
14
Следующая программа анимации индикаторной диаграммы и диаграммы рассеяния
представляет эффект различного начала отсчета в приемнике. Параметр начала отсчета
варьируется относительно исходного.
Примечания:
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 2f 0 t d Q (t ) sin sin 2f 0 t (1)
2T 2T
16
Рисунок 4. Иллюстрация процессов, протекающих в модуляторе системы с MSK
17
Листинг 1.
18
Рисунок 5. Иллюстрация процесса формирования ЧМ сигнала
с минимальным сдвигом
19
Для моделирования и сравнения спектральных характеристик модуляций BPSK, QPSK,
OQPSK и MSK необходимо в командном окне МАТЛАБ создать сектор тестируемого
бинарного сигнала:
x=randint(1536,1);
20
Рисунок 6. Параметры блока Signal from Workspace из блока DSP
21
Рисунок 7. Параметры блока QPSK Modulator Baseband из блока Communications System
Toolbox\Modulation\Digital Baseband Modulation\PM
22
Рисунок 8. Параметры блока BPSK Modulator Baseband из блока Communications System
Toolbox\Modulation\Digital Baseband Modulation\PM
Получаемые при запуске модели спектры должны показать, что BPSK требует
большей полосы пропускания, т.к. эффективность использования полосы частот при
BPSK вдвое меньше, чем при QPSK. Боковые максимумы графика MSK ниже, чем
графиков QPSK или OQPSK. Это является следствием плавных фазовых переходов. Чем
плавнее переход, тем быстрее спектральные хвосты стремятся к нулю. Модуляция MSK
спектрально эффективнее, чем модуляция QPSK или OQPSK, однако спектр MSK имеет
более широкий основной максимум, чем спектр QPSK или OQPSK. Следовательно, MSK
нельзя назвать удачным выбором при использовании узкополосных линий связи. В то же
время MSK следует использовать в схемах с несколькими несущими, поскольку ее
относительно малые побочные максимумы спектра позволяют избежать значительных
помех соседних каналов. То, что спектр QPSK имеет более узкий основной максимум, чем
MSK, объясняется тем, что при данной скорости передачи битов скорость передачи
символов QPSK вдвое меньше скорости передачи символов MSK.
23
Лабораторная работа № 3
Теоретические сведения
24
Рисунок 1. Структурная схема скремблера
25
Рисунок 3. Созвездие квадратурной манипуляции, используемое модемами V.32bis при
скорости 14400 бит/с
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. Это поле заполняется вручную в соответствии с логикой
работы кодера.
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 является результатом работы функции.
28
Рис. 5. Сформированный сигнал модема V.32bis (слева) и его спектр мощности (справа)
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
31
Рисунок 7. Диаграмма рассеяния, выведенная функцией demod32144 при приеме сигнала
Примечания:
32
Контрольные вопросы:
1. Назовите основные методы расчета коэффициентов эквалайзера
2. Назовите типы эквалайзеров
3. Для чего в устройствах модемов применяется скремблирование ?
Лабораторная работа № 4
Теоретические сведения
Каждая сплошная стрелка показывает, что кодер переходит в другое состояние, если
входной сигнал равен 0, а каждая пунктирная стрелка показывает, что кодер переходит в
33
другое состояние, если входной сигнал равен 1. Цифры над стрелками показывают
значение выходного символа кодера. Например, если кодер находился первоначально в
состоянии 10 и получил входной бит, равный 0, то он выдает на выходе кодовый символ
равный 3, и переходит в состояние 01.
Задача сверточного декодера заключается в определении пути, пройденного сообщением в
кодирующей решетке по критерию максимального правдоподобия ( алгоритм Витерби).
В пакете MATLAB структура, описывающая кодер ТСМ имеет следующие поля:
34
'outputs',[0 3;1 2;3 0;2 1]);
35
Рисунок 3. Исходный (синий) и декодированный с использованием ТСМ (красный)
сигналы
Контрольные вопросы:
1. Опишите принцип решетчатого кодирования
2. Чем «платит» разработчик системы за преимущества, предоставляемые
решетчатым кодированием?
Лабораторная работа № 5
Исследование системы фазовой автоподстройки частоты
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) не изменится, если перенести начало отсчета частот в точку номинального значения
частоты генератора ɷг = ɷго, т.е.
38
Рисунок 3. Изменение напряжения генератора:
А) при больших значениях расстройки ∆ɷо
Б) при малых начальных значениях расстройки ∆ɷо
39
Рисунок 4. Процесс вхождения системы ФАПЧ в синхронизм.
(1)
41
(2)
(3)
где
42
результате биений с колебаниями генератора в область нулевой частоты, в пределах
полосы пропускания следящей системы 2Ωmаx распределена равномерно.
Величина ξ(t) на рис 9 представляет собой нормированный белый шум с
единичной спектральной плотностью. При цифровом моделировании непрерывный
процесс ξ(t) представляется его отсчетами ξ(nTs).
Полоса захвата — это область частот, которую можно измерить, медленно изменяя
частоту подстраиваемого генератора от больших расстроек (|∆Ωо| > Ωз) — к малым. При
выполнении равенства |∆Ωо| = Ωз, система входит в синхронизм: ɷс - ɷг = 0
Медленно перестраивая генератор в сторону увеличения расстройки (по модулю),
можно выйти из области синхронизма. Таким способом можно определить полосу
удерживания ±Ωу. В общем случае полосы удерживания и захвата по протяженности не
одинаковы. Протяженность полосы захвата зависит от фазовых набегов в петле ФАПЧ.
Основным инерционным звеном здесь является фильтр нижних частот Кроме того,
дополнительную задержку в цифровой модели вносит звено z-1, осуществляющее
задержку фазы управляемого генератора на один дискрет.
43
Известно, что в бесфильтровой ФАПЧ полосы захвата и удерживания равны, т.е.
Ωз = Ωу. Если используется пропорционально-интегрирующий фильтр (ПИФ), то
полосы связаны соотношением Ωз = γзΩу, где коэффициент
(4)
Здесь т — коэффициент передачи ПИФ с передаточной функцией (1) на
высоких частотах (рис. 11), определяемый соотношением сопротивлений т = T1/T2 =
R2/(R1 + R2).
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.
Отсюда видно, что за один дискрет по оси времени на эпюрах частота будет изменяться на
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.
48
Рисунок 14. Выход системы ФАПЧ из синхронизма
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.
50
Рисунок 16. Зависимость фазы ∆𝜑(t), а также частоты перестраиваемого генератора
при ЛЧМ сигнале при значении параметра шума Rgo = 0,7.
Контрольные вопросы
1. Какой блок в структурной схеме ФАПЧ выполняет роль различителя направления
сдвига фаз ?
2. Что такое полоса захвата системы ФАПЧ?
3. Что такое полоса удерживания системы ФАПЧ?
Лабораторная работа № 6
51
Задание на выполнение работы: осуществить сверточное и пунктурное кодирование
бинарной последовательности, полученной из заданного сигнала в работе № 4, определить
вероятность битовой ошибки, обеспечиваемой данным кодером.
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))
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.
54
end
Контрольные вопросы:
1. В чем заключается принцип сверточного кодирования?
2. Для чего используется пунктурное кодирование?
3. В чем заключается принцип пунктурного кодирвоания?
Лабораторная работа № 7
Теоретические сведения:
Вместо квантования сигнала х, кодер DPCM квантует ошибку предсказания x-y. Целое
число m называется порядком предсказания. Особый случай, когда m=1 соответствует
дельта-модуляции.
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
distor =
0.0063
56
1. Тексты программ
2. Скрин-шоты сигналов
Контрольные вопросы:
1. Для какой цели используется алгоритм DPCM?
2. Чем отличается DPCM от дельта-модуляции?
Лабораторная работа № 8
Теоретические сведения:
Построение сигнального созвездия цифровой модуляции QPSK (квадратурной фазовой
манипуляции) выполняется с помощью модели, схема которой приведена на рисунке 1.
58
Необходимо оценить влияние шума на диаграмму рассеяния. Получите скрин-шоты
результатов работы собранной модели при отсутствии шума и при значениях параметра
Es/No в соответствии с вариантом.
Варианты задания:
Построение дерева фаз для модуляции СРМ (модуляции без разрыва фазы).
Дерево фаз является диаграммой, в которой друг на друга накладываются несколько
кривых, каждая из которых представляет собой изменение фазы модулированного сигнала
во времени.
Схема модели построения дерева фаз СРМ представлена на рисунке 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
59
pulse_length = 2;
samples_per_symbol = 8;
opts = simset('SrcWorkspace','Current',...
'DstWorkspace','Current');
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
Замените блок M-PSK Modulator Passband в схеме рис.4 на блок M-DPSK Modulator
Passband и затем на блок OQPSK Modulator Passband.
Постройте графики спектров модулированных сигналов для случаев использования
дифференциальной фазовой манипуляции и квадратурной фазовой манипуляции со
сдвигом.
Опишите, как изменяется спектр полосового сигнала при применении различных типов
модуляции
Контрольные вопросы:
1. Как изменяется вид сигнального созвездия при изменении значения скачка фазы
при модуляции QPSK?
2. Каковы причины использования вместо модуляции QPSK модуляций OQPSK и
СРМ?
61
3. Что такое код Грея и для чего он используется?
Лабораторная работа № 9
Теоретические сведения:
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 сек.).
64
для передачи сообщения не использовалось канальное кодирование ( так называемый Raw
Signal). Уровень битовой ошибки (ВER) зависит от отношения сигнал/шум в канале связи
и количества «пальцев» RAKE-приемника. Длительность моделирования установлена на
2 секунды. Так как длительность кадра в стандарте IS-95A равна 0.02 секунды, то
моделируется получение 100 кадров сообщения. Это дает возможность для получения
реальных значений BER . В ходе моделирования необходимо проанализировать, как
количество «пальцев» RAKE-приемника, а также задержка их настройки влияет на
величину битовой ошибки.
Схема кодека обратного канала связи стандарта IS-95 показывает, как происходит
процесс канального кодирования на мобильной станции и соответственно процесс
декодирования сигнала на базовой станции. Модель канала добавляет шум для
моделирования ошибок в канале связи. Запустить модель можно, набрав в командной
строке рабочего окна МАТЛАБ команду is95revchcodec2. Проанализировать, как
уровни BER и FER зависят от уровня шума в канале связи и скорости передачи
данных. Время моделирования установлено на 10 секунд. Это соответствует передаче 500
кадров (длительность кадра в стандарте IS-95 составляет 0,02 сек.).
Контрольные вопросы:
1. Какую роль играют функции Уолша в прямом и обратном канале связи мобильной
системы стандарта IS-95?
2. Какой из каналов связи – прямой или обратный - более устойчив при приеме
сигнала и почему, за счет чего достигается заданное качество связи в менее
устойчивом канале?
65
Учебное издание
66
Редактор И.Г. Максимова
67