Таблица 4.2 - Параметры блоков DiscretePulseGenerator Block
|
Наимено-вание |
Pulse Type |
Amplitude |
Period |
Pulse Width |
PhaseDelay |
Sample Time |
Vector Params1D |
|
G1 |
Sample-based |
1 |
2 |
1 |
1 |
1 |
on |
|
G2 |
Sample-based |
1 |
4 |
2 |
2 |
1 |
on |
|
G3 |
Sample-based |
1 |
8 |
4 |
4 |
1 |
on |
Таблица 4.2 - Параметры блока Logic Block
|
Наименование |
Operator |
Inputs |
|
Logical Operator |
XOR |
8 |
Таблица 4.3 - Параметры блоков Mux Block
|
Наименование |
Inputs |
DisplayOption |
|
Mux |
5 |
none |
|
Mux1 |
5 |
none |
Таблица 4.4 - Параметры блока Rounding Block Properties
|
Наименование |
Operator |
|
Rounding Function |
round |
Таблица 4.5 - Параметры блоков Selector Block Properties
|
Наимено-вание |
Input Type |
Element Src |
Elements |
Row Src |
Rows |
Column Src |
Columns |
Input Port Width |
|
Selector 9/1 |
Vector |
Internal |
[1 2 3 4 5 6 7 8] |
Internal |
1 |
Internal |
1 |
12 |
Таблица 4.6 - Параметры блоков ToWorkspace Block Properties
|
Наименование |
VariableName |
MaxDataPoints |
Decimation |
SampleTime |
Save Format |
|
To Workspace |
unbuf |
inf |
1 |
-1 |
Array |
|
To Workspace1 |
line |
inf |
1 |
-1 |
Array |
|
To Workspace2 |
bline |
inf |
1 |
-1 |
Array |
|
To Workspace3 |
error |
inf |
1 |
-1 |
|
|
To Workspace4 |
prebuf |
inf |
1 |
-1 |
Array |
Таблица 4.7 - Параметры блока Binary Symmetric Channel Block Properties
|
Наименование |
P |
s |
E |
|
Binary Symmetric Channel |
0,07 |
2137 |
on |
Таблица 4.8 - Параметры блока Buffer Block Properties
|
Наименование |
N |
V |
Ts |
ic |
|
Buffer |
5 |
0 |
1 |
0 |
Таблица 4.9 - Параметры блока Unbuffer Block Properties
|
Наименование |
num_chans |
Ts |
|
Unbuffer |
1 |
5 |
Блоки Temperature Sensor 1 - 4 реализуют модель датчика температуры с первичным преобразователем. Первичный преобразователь обеспечивает выходной сигнал в пределах разрядности АЦП при заданном диапазоне изменения температуры. Мультиплексор каналов построен на блоках Мих и Unbuffer, последний выполняет прореживание выборок сигналов для сокращения времени вычислений и согласования настроек параметров моделирования и разрядности АЦП. АЦП показан как пользовательская подсистема ADC8/1 и имеет как параллельный, так и последовательный выход данных. Генераторы G1 и G2 используются для маркирования каналов передачи данных, с тем, чтобы на приемной стороне можно было их разделить. Принцип маркирования заключается в том, что каждому каналу присваивается уникальный двухбитовый индекс, зависящий от сочетания частот генераторов G1 и G2. Бинарный канал передачи моделируется при помощи стандартного блока Binary Symmetric Channel.
График принятых сообщений представлен на рисунке Б.2 в приложении Б.
5. Построение кодОВ
.1 Построение кода с
удвоением
Код с удвоением характеризуется введением дополнительных символов для каждого символа информационной части комбинации, причем «1» дополняется «0» и преобразуется в «10», а «0» дополняется «1» и преобразуется в «01».
Пример.
Показателем искажения кода будет появление в «парных» элементах сочетаний вида «00» или «11» . Код обнаруживает все ошибки за исключением двукратных в «парных» элементах.
Избыточность кода
5.2
Построение циклического кода
Циклические коды могут быть использованы для обнаружения и коррекции как одиночных, так и систематических ошибок. Основное их свойство состоит в том, что каждая кодовая комбинация может быть получена путем циклической перестановки символов комбинации, принадлежащей к данному коду.
Формирование кодовых комбинаций (код, исправляющий одиночные ошибки):
) Рассчитать соотношение между контрольными и информационными символами:
Определить p
(или n) исходя из k
информационных символов:
(5.1)
Так как в канале передачи возможно наличие 8 различных команд то для передачи нам потребуется : k ≥ log2 8 = 4 информационных символа.
Графическое решение уравнения 5.1
представлено на рисунке 5.1
Рисунок 5.1 - Определение разрядности кода
передача данные датчик код
Исходя из решения уравнения 5.1 разрядность кода равна 7.
) Выбрать образующий полином по таблицам неприводимых двоичных полиномов или построить. Образующий полином Р(х) следует выбирать минимальной длины, но его порядок должен быть не меньше (n - k), а число ненулевых членов - не меньше минимального кодового расстояния d0.
В качестве образующего многочлена выбираем: х3+х+1
) Построить единичную транспонированную матрицу, у которой число столбцов (строк) равно числу информационных разрядов.
Для 4 информационных разрядов
матрица имеет следующий вид
) Составить образующую матрицу путем умножения элементов единичной транспонированной матрицы на образующий полином.
Образующая матрица имеет вид:
0001 × 1011 = 0001011
× 1011 = 0010110
× 1011 = 0101100
1000 × 1011 = 1011000
5) Комбинациями искомого кода являются строки образующей матрицы и все возможные суммы по модулю 2 различных сочетаний строк образующей матрицы.
Сгруппируем полученные коды по
возрастанию:
|
1) 0001011 2) 0010110 3) 0101100 4) 1011000 5)0110001 |
6) 1100010 7) 1000101 8) 0011101 9) 0111010 10) 1110100 |
Обнаружение и исправление ошибок
Обнаружение и исправление ошибок производится по остаткам от деления принятой комбинации F(x) на образующий полином P(x). Если принятая комбинация делится на образующий полином без остатка - код принят безошибочно. Остаток от деления свидетельствует о наличии ошибки, но не указывает ее положение.
Поиск ошибочных разрядов:
) принятую кодовую комбинацию (КК) разделить на образующий полином;
) определить вес остатка (ω)
а) если ω ≤ σ (допустимая кратность ошибки) то принятую комбинацию складывают по модулю 2 с полученным остатком. Сумма даст исправленную комбинацию.
б) если ω > σ то:
) выполнить циклический сдвиг принятой КК F(x) на один разряд влево. КК, полученную в результате циклического сдвига разделить на Р(х). Если ω ≤ σ, то делимое суммируют с остатком;
) выполнить циклический сдвиг вправо на один разряд комбинации, полученной в результате суммирования последнего делимого с последним остатком.
Полученная в результате комбинация не содержит ошибок.
) Если после первого циклического сдвига и последующего деления вес остатка такой, что ω > σ,
то:
в) повторять операцию пункта а) до тех пор, пока не будет выполнено условие ω ≤ σ . В этом случае комбинацию, полученную в результате циклического сдвига, суммировать с остатком от деления этой комбинации на Р(х);
г) выполнить циклический сдвиг вправо на столько разрядов, на сколько была сдвинута влево суммируемая с последним остатком комбинация относительно принятой комбинации.
В результате будет получена исправленная комбинация.
Решение.
Предположим, что была передана комбинация №4 и в ней исказился четвертый разряд. Таким образом, принятая комбинация имеет вид: 1010000.
) Делим принятую КК на образующий многочлен
Сравниваем вес полученного остатка ω с возможным для данного кода числом исправляемых ошибок σ. Вес остатка ω=2. Число исправляемых ошибок σ=1, ω > σ.
) Производим циклический сдвиг принятой КК F(x)
на один разряд влево и делим на Р(х)
) Повторяем п. 3 до тех пор, пока не будет
выполнено условие ω
≤
σ.;

) Складываем по модулю 2 последнее делимое с
последним остатком
Производим циклический сдвиг комбинации, полученной в результате суммирования последнего делимого с последним остатком, вправо на 4 разряда (т.к. до этого она четырежды была сдвинута влево): 1000101, 1100010, 0110001, 1011000.
Последняя комбинация соответствует переданной.
6.
Модель кодирующего и декодирующего устройства
При построении кодирующего устройства исходными данными является вид кода, применяемый при передаче команд управления - код с удвоением.
На рисунке А.5 в приложении А показана модель кодирующего и декодирующего устройства для получения кода с удвоением.
Таблицы значений блоков
приведены в таблицах 6.1-6.10.
Таблица 6.1 - Параметры блоков Constant Block
|
Наименование |
Value |
VectorParams1D |
|
B |
-20 |
on |
|
Rx |
350 |
on |
Таблица 6.2 - Параметры блока Display Block
|
Наименование |
Format |
Decimation |
Floating |
SampleTime |
|
Display |
short |
1 |
off |
-1 |
Таблица 6.3 - Параметры блоков Fcn Block
|
Наименование |
Expr |
|
Fcn |
!u(1) |
|
Fcn1 |
!u(2) |
|
Fcn2 |
!u(3) |
|
Fcn3 |
!u(4) |
|
Fcn4 |
u(7)== u(8) |
|
Fcn5 |
u(5)== u(6) |
|
Fcn6 |
u(3)== u(4) |
|
Fcn7 |
u(1)== u(2) |
Таблица 6.4 - Параметры блока Rounding Block
|
Наименование |
Operator |
|
Rounding Function |
round |
Таблица 6.5 - Параметры блоков Counter
|
Наиме-нование |
Dire ction |
Count Event |
Counter Size |
Max Count |
Initial Count |
Output |
Hit Value |
Reset Input |
Samples Per Frame |
Ts |
|
Counter |
Up |
Non-zero sample |
User defined |
255 |
0 |
Count |
32 |
off |
1 |
1 |
|
Counter1 |
Up |
Non-zero sample |
User defined |
255 |
0 |
Count |
32 |
off |
1 |
1 |
|
Counter2 |
Up |
Non-zero sample |
User defined |
255 |
0 |
Count |
32 |
off |
1 |
1 |
|
Counter3 |
Up |
Non-zero sample |
User defined |
255 |
0 |
Count |
32 |
off |
1 |
1 |
Таблица 6.6 - Параметры блоков To Workspace Block
|
Наименование |
VariableName |
MaxDataPoints |
Decimation |
Sample Time |
SaveFormat |
|
To Workspace |
precod |
inf |
1 |
-1 |
Array |
|
To Workspace2 |
double_coded |
inf |
1 |
-1 |
Array |
|
To Workspace4 |
error |
inf |
1 |
-1 |
Array |
Таблица 6.7 - Параметры блока Binary Symmetric Channel Block Properties
|
Наименование |
P |
s |
E |
|
Binary Symmetric Channel |
0,07 |
2137 |
on |
Таблица 6.8 - Параметры блоков Mux Block
|
Наименование |
Inputs |
DisplayOption |
|
Mux |
8 |
none |
|
Mux1 |
4 |
none |