Декодируйте бинарные имеющие малую плотность данные проверки четности с графическим процессором
Объект GPU LDPCDecoder
декодирует бинарный имеющий малую плотность код с проверкой четности с помощью графического процессора (GPU).
Чтобы использовать этот объект, необходимо установить лицензию Parallel Computing Toolbox™ и иметь доступ к соответствующему графическому процессору. Для больше о графических процессорах, смотрите, что графический процессор Вычисляет (Parallel Computing Toolbox).
Основанная на графическом процессоре Система object™ принимает типичные массивы MATLAB® или возражает, что вы создаете использование gpuArray класса как вход. Основанные на графическом процессоре Системные объекты поддерживают входные сигналы с двойным - или типы данных с одинарной точностью. Выходной сигнал наследовал свой тип данных от входного сигнала.
Если входной сигнал является массивом MATLAB, то выходной сигнал является также массивом MATLAB. В этом случае Системный объект обрабатывает передачу данных между центральным процессором и графическим процессором.
Если входной сигнал является gpuArray, то выходной сигнал является также gpuArray. В этом случае данные остаются на графическом процессоре. Поэтому, когда объекту дают gpuArray, вычисления происходят полностью на графическом процессоре, и никакая передача данных не происходит. Передача gpuArray аргументы обеспечивает увеличенную производительность путем сокращения времени симуляции. Для получения дополнительной информации смотрите, Устанавливают Массивы на графическом процессоре (Parallel Computing Toolbox).
Этот объект выполняет LDPC, декодирующий использование алгоритма передающей веру или передачи сообщений, реализованного как доменный журналом алгоритм продукта суммы. Для получения дополнительной информации см. Алгоритм. Декодировать бинарный имеющий малую плотность код с проверкой четности:
Задайте и настройте свой бинарный имеющий малую плотность объект декодера проверки четности. Смотрите Конструкцию.
Вызовите step
, чтобы декодировать бинарный имеющий малую плотность код с проверкой четности согласно свойствам comm.gpu.LDPCDecoder
. Поведение step
характерно для каждого объекта в тулбоксе.
При запуске в R2016b, вместо того, чтобы использовать метод step
, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x)
и y = obj(x)
выполняют эквивалентные операции.
h = comm.gpu.LDPCDecoder
создает основанный на графическом процессоре бинарный имеющий малую плотность объект декодера проверки четности LDPC, h
. Этот объект выполняет LDPC, декодирующий на основе заданной матрицы проверки четности. Объект не принимает шаблонов в матрице проверки четности.
h = comm.gpu.LDPCDecoder(
создает основанный на графическом процессоре объект декодера LDPC, 'PropertyName'
,'ValueName'
)h
, с каждым заданным набором свойств к заданному значению. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как ('PropertyName1'
, 'PropertyValue1'
..., 'PropertyNameN'
, 'PropertyValueN'
).
h = comm.gpu.LDPCDecoder(PARITY)
создает основанный на графическом процессоре объект декодера LDPC, h
, с набором свойств ParityCheckMatrix
к PARITY
.
|
Матрица проверки четности Задайте матрицу проверки четности, когда двоичный файл оценил разреженную матрицу с размерностью (N-by-K) N, где N> K> 0. Последние столбцы N−K в матрице проверки четности должны быть обратимой матрицей в GF (2). Это свойство принимает типы числовых данных или логические типы данных. Верхняя граница для значения N (231)-1. Значением по умолчанию является матрица проверки четности полууровня код LDPC из стандарта DVB-S.2, который является результатом dvbs2ldpc (1/2). |
|
Выберите формат выходного значения Задайте формат выходного значения как один из |
|
Метод решения Задайте метод решения, используемый для декодирования в качестве одного из |
|
Максимальное количество декодирования итераций Задайте максимальное количество итераций, объектное использование в качестве целого числа оценило числовой скаляр. Значением по умолчанию является |
|
Условие для завершения итерации Задайте условие остановить итерации декодирования как один из |
|
Выведите количество выполняемых итераций Установите это свойство на истину выводить фактическое количество итераций выполняемый объект. Значение по умолчанию является ложным. |
|
Выведите итоговые проверки четности Установите это свойство на истину выводить итоговые проверки четности вычисленный объект. Значение по умолчанию является ложным. |
шаг | Декодируйте входной сигнал с помощью LDPC декодирование схемы |
Характерный для всех системных объектов | |
---|---|
release | Позвольте изменения значения свойства Системного объекта |
Этот объект выполняет LDPC, декодирующий использование алгоритма передающей веру или передачи сообщений, реализованного как доменный журналом алгоритм продукта суммы. Для получения дополнительной информации смотрите раздел Decoding Algorithm по странице с описанием блока LDPC Decoder.
Передайте LDPC-закодированный, модулируемый QPSK поток битов через канал AWGN, затем демодулируйте, декодируйте, и ошибки количества.
hEnc = comm.LDPCEncoder; hMod = comm.PSKModulator(4, 'BitInput',true); hChan = comm.AWGNChannel(... 'NoiseMethod','Signal to noise ratio (SNR)','SNR',1); hDemod = comm.PSKDemodulator(4, 'BitOutput',true,... 'DecisionMethod','Approximate log-likelihood ratio', ... 'Variance', 1/10^(hChan.SNR/10)); hDec = comm.gpu.LDPCDecoder; hError = comm.ErrorRate; for counter = 1:10 data = logical(randi([0 1], 32400, 1)); encodedData = step(hEnc, data); modSignal = step(hMod, encodedData); receivedSignal = step(hChan, modSignal); demodSignal = step(hDemod, receivedSignal); receivedBits = step(hDec, demodSignal); errorStats = step(hError, data, receivedBits); end fprintf('Error rate = %1.2f\nNumber of errors = %d\n', ... errorStats(1), errorStats(2))