Демодулируйте данные о DPSK в канале связи, в котором введен сдвиг фазы.
Сгенерируйте 4-ary вектор данных и модулируйте его с помощью DPSK.
M = 4; % Alphabet size
dataIn = randi([0 M-1],1000,1); % Random message
txSig = dpskmod(dataIn,M); % Modulate
Примените случайный сдвиг фазы, следующий из процесса передачи.
rxSig = txSig*exp(2i*pi*rand());
Демодулируйте полученный сигнал.
dataOut = dpskdemod(rxSig,M);
Модулятор и демодулятор имеют то же начальное условие. Однако только полученный сигнал испытывает сдвиг фазы. В результате первый демодулируемый символ, вероятно, будет по ошибке. Поэтому необходимо всегда отбрасывать первый символ при использовании DPSK.
Найдите количество ошибок символа.
errs = symerr(dataIn,dataOut)
errs = 1
Один символ по ошибке. Повторите ошибочное вычисление после отбрасывания первого символа.
y — Модулируемый DPSK входной сигнал вектор | матрица
Модулируемый DPSK входной сигнал, заданный как вектор действительных чисел или комплексный вектор или матрица. Если y матрица, функциональные процессы столбцы независимо.
Типы данных: double | single Поддержка комплексного числа: Да
M — Порядок модуляции целочисленная степень двойки
Порядок модуляции, заданный как целочисленная степень двойки.
Вращение фазы модуляции DPSK, заданной в радианах как действительный скаляр. Общий сдвиг фазы на символ является суммой phaserot и фаза сгенерирована дифференциальной модуляцией.
Если вы задаете phaserot как пустой, затем dspkdemod использует вращение фазы 0 градусов.
Пример: pi/4
Типы данных: double | single
symorder — Порядок символа 'bin' (значение по умолчанию) | 'gray'
Порядок символа, заданный как 'bin' или 'gray'. Этот аргумент задает, как функция присваивает бинарные векторы соответствующим целым числам.
Если symorder'bin', функция использует естественное двоично кодированное упорядоченное расположение.
Если symorder'gray', функция использует серо-закодированное упорядоченное расположение.
z — Демодулируемый DPSK выходной сигнал вектор | матрица
Демодулируемый DPSK выходной сигнал, возвращенный как вектор или матрица, имеющая одинаковое число столбцов как входной сигнал y.
Примечание
Дифференциальный алгоритм, используемый в этой функции, сравнивает два последовательных элемента модулируемого сигнала. Определить первый элемент векторного z, или первая строка матричного z, функция использует вращение начальной фазы 0.
Типы данных: double | single
Расширенные возможности
Генерация кода C/C++ Генерация кода C и C++ с помощью MATLAB® Coder™.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.