Правильный символ, синхронизирующий расфазировку тактовых сигналов
comm.SymbolSynchronizer
Система object™ корректирует символ, синхронизирующий расфазировку тактовых сигналов между передатчиком одно поставщика услуг и получателем для PAM, PSK, QAM и схем модуляции OQPSK. Для получения дополнительной информации см. Обзор Синхронизации Символа.
Входной сигнал действует на основе частоты дискретизации, и выходной сигнал действует на основе уровня символа.
Откорректировать символ, синхронизирующий расфазировку тактовых сигналов:
Создайте comm.SymbolSynchronizer
объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
создает Систему синхронизатора символа objectfor исправление расфазировки тактовых сигналов между передатчиком одно поставщика услуг и получателем.symbolSync
= comm.SymbolSynchronizer
свойства наборов с помощью одной или нескольких пар "имя-значение". Например, symbolSync
= comm.SymbolSynchronizer(Name
,Value
)comm.SymbolSynchronizer('Modulation','OQPSK')
конфигурирует Системный объект синхронизатора символа для OQPSK-модулируемого входного сигнала. Заключите каждое имя свойства в кавычки.
Настраиваемый DampingFactor
, NormalizedLoopBandwidth
, и DetectorGain
свойства позволяют вам оптимизировать производительность синхронизатора в своем цикле симуляции, не выпуская объект.
Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их и release
функция разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).
Modulation
— Тип модуляции'PAM/PSK/QAM'
(значение по умолчанию) | 'OQPSK'
Тип модуляции, заданный как 'PAM/PSK/QAM'
или 'OQPSK'
.
Настраиваемый: нет
Типы данных: char |
string
TimingErrorDetector
— Синхронизация метода детектора ошибокZero-Crossing (decision-directed)
(значение по умолчанию) | Gardner (non-data-aided)
| Early-Late (non-data-aided)
| Mueller-Muller (decision-directed)
Синхронизация метода детектора ошибок, заданного как Zero-Crossing (decision-directed)
Гарднер (без использования данных)
, Early-Late (non-data-aided)
, или Mueller-Muller (decision-directed)
. Это свойство присваивает схему выявления ошибок синхронизации, используемую в синхронизаторе. Для получения дополнительной информации смотрите Синхронизацию выявления ошибок (TED).
Настраиваемый: нет
Типы данных: char |
string
SamplesPerSymbol
— Выборки на символ
(значение по умолчанию) | целое число, больше, чем 1Выборки на символ, заданный как целое число, больше, чем 1.
Настраиваемый: нет
Типы данных: double
DampingFactor
— Затухание фактора контурного фильтра
(значение по умолчанию) | положительная скалярная величинаЗатухание фактора контурного фильтра, заданного как положительная скалярная величина. Для получения дополнительной информации смотрите Контурный фильтр.
Настраиваемый: да
Типы данных: double |
single
NormalizedLoopBandwidth
— Нормированная пропускная способность контурного фильтра
(значение по умолчанию) | скаляр в области значений (0, 1)Нормированная пропускная способность контурного фильтра, заданного как скаляр в области значений (0, 1). Пропускная способность цикла нормирована к частоте дискретизации входного сигнала. Для получения дополнительной информации смотрите Контурный фильтр.
Чтобы гарантировать блокировки синхронизатора символа, установите NormalizedLoopBandwidth
свойство к значению меньше, чем 0.1
.
Настраиваемый: да
Типы данных: double |
single
DetectorGain
— Усиление детектора фазы
(значение по умолчанию) | положительная скалярная величинаУсиление детектора фазы, заданное как положительная скалярная величина.
Настраиваемый: да
Типы данных: double |
single
Для версий ранее, чем R2016b, используйте step
функционируйте, чтобы запустить алгоритм Системного объекта. Аргументы к step
объект, который вы создали, сопровождаемый аргументами, показанными в этом разделе.
Например, y = step(obj,x)
и y = obj(x)
выполните эквивалентные операции.
корректирует символ, синхронизирующий расфазировку тактовых сигналов между передатчиком одно поставщика услуг и получателем на основе входных выборок, и выходные параметры синхронизировали символы.symbols
= symbolSync(samples
)
Вход действует на основе частоты дискретизации, и выходной сигнал действует на основе уровня символа.
Можно настроить DampingFactor
, NormalizedLoopBandwidth
, и DetectorGain
свойства улучшать производительность синхронизатора.
samples
— Введите выборкиВведите выборки, заданные как скаляр или вектор-столбец PAM - PSK - QAM-или OQPSK-модулируемый сигнал одно поставщика услуг.
Типы данных: double |
single
Поддержка комплексного числа: Да
symbols
— Синхронизируемые символыСинхронизируемые символы, возвращенные как вектор-столбец переменного размера. Выходные символы наследовали тип данных от входных выборок. Для входа с размерностями N samp-1, этот выход имеет размерности N sym-1. N sym приблизительно равен маисовой крупе N, разделенной на SPS N, где SPS N равен SamplesPerSymbol
значение свойства. Если выход превышает максимальный выходной размер , это является усеченным.
timingErr
— Предполагаемая ошибка синхронизацииПредполагаемая ошибка синхронизации для каждой входной выборки, возвращенной как скаляр в области значений [0, 1] или вектор-столбец элементов в области значений [0, 1]. Предполагаемая ошибка синхронизации нормирована к входной частоте дискретизации. timingErr
имеет совпадающий тип данных и размер как вход samples
.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
comm.SymbolSynchronizer
Откорректируйте закрепленную ошибку синхронизации символа на шумном модулируемом QPSK сигнале. Проверяйте частоту ошибок по битам (BER) синхронизируемого полученного сигнала.
Инициализируйте параметры симуляции.
M = 4; % Modulation order for QPSK nSym = 5000; % Number of symbols in a packet sps = 4; % Samples per symbol timingErr = 2; % Samples of timing error snr = 15; % Signal-to-noise ratio (dB)
Создайте передачу корня повысил косинус (RRC) и получите Системные объекты фильтра.
txfilter = comm.RaisedCosineTransmitFilter( ... 'OutputSamplesPerSymbol',sps); rxfilter = comm.RaisedCosineReceiveFilter( ... 'InputSamplesPerSymbol',sps,'DecimationFactor',2);
Создайте Системный объект синхронизатора символа, чтобы откорректировать ошибку синхронизации.
symbolSync = comm.SymbolSynchronizer;
Сгенерируйте случайные M-арные символы и примените модуляцию QPSK.
data = randi([0 M-1],nSym,1); modSig = pskmod(data,M,pi/4);
Создайте объект задержки ввести фиксированную ошибку синхронизации 2 выборок. Поскольку передача, RRC фильтруют выходные параметры 4 выборки на символ, 1 выборка, эквивалентна 1/4 символу через фиксированную задержку и канал.
fixedDelay = dsp.Delay(timingErr);
fixedDelaySym = ceil(fixedDelay.Length/sps); % Round fixed delay to nearest integer in symbols
Пропустите модулируемый сигнал через передачу фильтр RRC при помощи txfilter
объект. Примените ошибку синхронизации сигнала при помощи fixedDelay
объект.
txSig = txfilter(modSig); delaySig = fixedDelay(txSig);
Передайте задержанный сигнал через канал AWGN с отношением сигнал-шум на 15 дБ.
rxSig = awgn(delaySig,snr,'measured');
Отфильтруйте модулируемый сигнал посредством получения фильтра RRC при помощи rxfilter
объект. Отобразите график рассеивания. Из-за ошибки синхронизации, полученный сигнал не выравнивается с ожидаемым созвездием ссылки QPSK.
rxSample = rxfilter(rxSig); scatterplot(rxSample(1001:end),2)
Откорректируйте ошибку синхронизации символа при помощи symbolSync
объект. Отобразите график рассеивания. Синхронизируемый сигнал теперь выравнивается с ожидаемым созвездием QPSK.
rxSync = symbolSync(rxSample); scatterplot(rxSync(1001:end),2)
Демодулируйте сигнал QPSK.
recData = pskdemod(rxSync,M,pi/4);
Вычислите, в символах, общая системная задержка из-за фиксированной задержки и передачи и получите фильтры RRC.
sysDelay = dsp.Delay(fixedDelaySym + txfilter.FilterSpanInSymbols/2 + ...
rxfilter.FilterSpanInSymbols/2);
Вычислите BER, учтя системную задержку.
[numErr,ber] = biterr(sysDelay(data),recData)
numErr = 12
ber = 0.0012
Откорректируйте закрепленную ошибку синхронизации символа на шумном сигнале передачи BPSK. Проверяйте частоту ошибок по битам (BER) синхронизируемого полученного сигнала.
Инициализируйте параметры симуляции.
M = 2; % Modulation order for BPSK nSym = 20000; % Number of symbols in a packet sps = 4; % Samples per symbol timingErr = 2; % Samples of timing error snr = 15; % Signal-to-noise ratio (dB)
Создайте передачу корня повысил косинус (RRC) и получите Системные объекты фильтра.
txfilter = comm.RaisedCosineTransmitFilter(... 'OutputSamplesPerSymbol',sps); rxfilter = comm.RaisedCosineReceiveFilter(... 'InputSamplesPerSymbol',sps,'DecimationFactor',1);
Создайте Систему синхронизатора символа object™, чтобы откорректировать ошибку синхронизации.
symbolSync = comm.SymbolSynchronizer(... 'SamplesPerSymbol',sps, ... 'NormalizedLoopBandwidth',0.01, ... 'DampingFactor',1.0, ... 'TimingErrorDetector','Early-Late (non-data-aided)');
Сгенерируйте случайные символы данных и примените модуляцию BPSK.
data = randi([0 M-1],nSym,1); modSig = pskmod(data,M);
Создайте объект задержки ввести фиксированную ошибку синхронизации 2 выборок. Поскольку передача, RRC фильтруют выходные параметры 4 выборки на символ, 1 выборка, эквивалентна 1/4 символу через фиксированную задержку и канал.
fixedDelay = dsp.Delay(timingErr);
fixedDelaySym = ceil(fixedDelay.Length/sps); % Round fixed delay to nearest integer in symbols
Пропустите модулируемый сигнал через передачу фильтр RRC при помощи txfilter
объект. Примените ошибку синхронизации сигнала при помощи fixedDelay
объект.
txSig = txfilter(modSig); delayedSig = fixedDelay(txSig);
Передайте задержанный сигнал через канал AWGN.
rxSig = awgn(delayedSig,snr,'measured');
Отфильтруйте модулируемый сигнал посредством получения фильтра RRC при помощи rxfilter
объект. Отобразите график рассеивания. Из-за ошибки синхронизации, полученный сигнал не выравнивается с ожидаемым созвездием ссылки BPSK.
rxSample = rxfilter(rxSig); scatterplot(rxSample(10000:end),2)
Откорректируйте ошибку синхронизации символа при помощи symbolSync
объект. Отобразите график рассеивания. Синхронизируемый сигнал теперь выравнивается с ожидаемым созвездием BPSK.
rxSync = symbolSync(rxSample); scatterplot(rxSync(10000:end),2)
Демодулируйте сигнал BPSK.
recData = pskdemod(rxSync,M);
Вычислите, в символах, общая системная задержка из-за фиксированной задержки и передачи и получите фильтры RRC.
sysDelay = dsp.Delay(fixedDelaySym + txfilter.FilterSpanInSymbols/2 + ...
rxfilter.FilterSpanInSymbols/2);
Вычислите BER, учтя системную задержку.
[numErr1,ber1] = biterr(sysDelay(data),recData)
numErr1 = 8
ber1 = 4.0000e-04
Правильная синхронизация символа и частота возмещают ошибки при помощи comm.SymbolSynchronizer
и comm.CarrierSynchronizer
Системные объекты.
Настройка
Инициализируйте параметры симуляции.
M = 16; % Modulation order nSym = 2000; % Number of symbols in a packet sps = 2; % Samples per symbol spsFilt = 8; % Samples per symbol for filters and channel spsSync = 2; % Samples per symbol for synchronizers lenFilt = 10; % RRC filter length
Создайте совпадающую пару Системных объектов фильтра корня повысил косинус (RRC) для передатчика и получателя.
txfilter = comm.RaisedCosineTransmitFilter('FilterSpanInSymbols',lenFilt, ... 'OutputSamplesPerSymbol',spsFilt,'Gain',sqrt(spsFilt)); rxfilter = comm.RaisedCosineReceiveFilter('FilterSpanInSymbols',lenFilt, ... 'InputSamplesPerSymbol',spsFilt,'DecimationFactor',spsFilt/2,'Gain',sqrt(1/spsFilt));
Создайте Системный объект смещения частоты фазы, чтобы ввести эффект Доплера на 100 Гц.
doppler = comm.PhaseFrequencyOffset('FrequencyOffset',100, ... 'PhaseOffset',45,'SampleRate',1e6);
Создайте переменный Системный объект задержки, чтобы ввести смещения синхронизации.
varDelay = dsp.VariableFractionalDelay;
Создайте поставщика услуг и Системные объекты синхронизатора символа, чтобы откорректировать для эффекта Доплера и синхронизации смещения, соответственно.
carrierSync = comm.CarrierSynchronizer('SamplesPerSymbol',spsSync); symbolSync = comm.SymbolSynchronizer( ... 'TimingErrorDetector','Early-Late (non-data-aided)', ... 'SamplesPerSymbol',spsSync);
Создайте Системные объекты схемы созвездия, чтобы просмотреть результаты.
refConst = qammod(0:M-1,M,'UnitAveragePower',true); cdReceive = comm.ConstellationDiagram('ReferenceConstellation',refConst, ... 'SamplesPerSymbol',spsFilt,'Title','Received Signal'); cdDoppler = comm.ConstellationDiagram('ReferenceConstellation',refConst, ... 'SamplesPerSymbol',spsSync,'Title','Frequency Corrected Signal'); cdTiming = comm.ConstellationDiagram('ReferenceConstellation',refConst, ... 'SamplesPerSymbol',spsSync,'Title','Frequency and Timing Synchronized Signal');
Основной цикл обработки
Основной цикл обработки:
Генерирует случайные символы, и примените модуляцию QAM.
Фильтрует модулируемый сигнал.
Применяет частоту и синхронизирующие смещения.
Передает переданный сигнал через канал AWGN.
Фильтрует полученный сигнал.
Корректирует эффект Доплера.
Корректирует смещение синхронизации.
for k = 1:15 data = randi([0 M-1],nSym,1); modSig = qammod(data,M,'UnitAveragePower',true); txSig = txfilter(modSig); txDoppler = doppler(txSig); txDelay = varDelay(txDoppler,k/15); rxSig = awgn(txDelay,25); rxFiltSig = rxfilter(rxSig); rxCorr = carrierSync(rxFiltSig); rxData = symbolSync(rxCorr); end
Визуализация
Постройте схемы созвездия полученного сигнала, частота откорректированный сигнал, и частота и синхронизация синхронизируемого сигнала. Определенные точки созвездия не могут быть идентифицированы в полученном сигнале и могут быть только частично идентифицированы в частоте откорректированный сигнал. Однако синхронизация и частота синхронизировались, сигнал выравнивается с ожидаемыми точками созвездия QAM.
cdReceive(rxSig)
cdDoppler(rxCorr)
cdTiming(rxData)
Откорректируйте монотонно увеличивающуюся ошибку синхронизации символа на шумном сигнале 8-PSK. Отобразите нормированную ошибку синхронизации.
Инициализируйте параметры симуляции.
M = 8; % Modulation order nSym = 5000; % Number of symbol in a packet sps = 2; % Samples per symbol nSamp = sps*nSym; % Number of samples in a packet
Создайте передачу корня повысил косинус (RRC) и получите Системные объекты фильтра.
txfilter = comm.RaisedCosineTransmitFilter( ... 'OutputSamplesPerSymbol',sps); rxfilter = comm.RaisedCosineReceiveFilter( ... 'InputSamplesPerSymbol',sps, ... 'DecimationFactor',1);
Создайте переменную дробную Систему задержки object™, чтобы ввести монотонно ошибку синхронизации увеличения.
varDelay = dsp.VariableFractionalDelay;
Создайте Системный объект синхронизатора символа, чтобы откорректировать ошибку синхронизации.
symbolSync = comm.SymbolSynchronizer(... 'TimingErrorDetector','Mueller-Muller (decision-directed)', ... 'SamplesPerSymbol',sps);
Сгенерируйте случайные 8-ary символы и примените модуляцию 8-PSK.
data = randi([0 M-1],nSym,1); modSig = pskmod(data,M,pi/8);
Пропустите модулируемый сигнал через повышенную передачу косинуса, фильтруют и применяют монотонно задержку синхронизации увеличения.
vdelay = (0:1/nSamp:1-1/nSamp)'; txSig = txfilter(modSig); delaySig = varDelay(txSig,vdelay);
Передайте задержанный сигнал через канал AWGN с отношением сигнал-шум на 15 дБ.
rxSig = awgn(delaySig,15,'measured');
Отфильтруйте модулируемый сигнал посредством получения фильтра RRC. Отобразите график рассеивания. Из-за ошибки синхронизации, полученный сигнал не выравнивается с ожидаемым созвездием ссылки 8-PSK.
rxSample = rxfilter(rxSig); scatterplot(rxSample,sps)
Откорректируйте ошибку синхронизации символа при помощи symbolSync
объект. Отобразите график рассеивания. Синхронизируемый сигнал теперь выравнивается с ожидаемым созвездием 8-PSK.
[rxSym,tError] = symbolSync(rxSample); scatterplot(rxSym(1001:end))
Постройте ошибочную оценку синхронизации. В зависимости от времени нормированная ошибка синхронизации увеличивается до 1 выборки.
figure plot(vdelay,tError) xlabel('Time (s)') ylabel('Timing Error (samples)')
Алгоритм символьной синхронизации основан на фазовой автоподстройке (ФАП), который состоит из четырех компонентов:
Синхронизация детектора ошибок (TED)
Интерполятор
Контроллер интерполяции
Контурный фильтр
Для модуляции OQPSK синфазное и квадратурные компоненты сигнала сначала выравниваются (как в модуляции QPSK) использование буфера состояния, чтобы кэшировать последнюю половину символа предыдущего входа. После начального выравнивания остающийся процесс синхронизации эквивалентен для модуляции QPSK.
Эта блок-схема показывает пример синхронизатора синхронизации. В фигуре PLL синхронизации символа работает с x (t), полученный демонстрационный сигнал после согласованной фильтрации. Символ, синхронизирующий PLL выходные параметры сигнал символа, , после исправления для расфазировки тактовых сигналов между передатчиком и получателем.
Символ, синхронизирующий поддержки синхронизатора не данные, помог TED и направленным на решение методам TED. Эта таблица показывает оценочные выражения синхронизации для опций метода TED.
Метод TED | Выражение |
---|---|
Пересечение нулем (направлено на решение) | |
Гарднер (без использования данных)) | |
Ранний поздно (не данные, которым помогают) | |
Мюллер-Мюллер (направлен на решение) |
Не данные помогли полученным выборкам использования TED без любого ведома переданного сигнала или результатов оценки канала. Не TED данных, которому помогают, используется, чтобы оценить ошибку синхронизации для сигналов со схемами модуляции, которым выровняли точки созвездия с синфазной осью или квадратурной осью. Примеры сигналов, подходящих для Гарднера или ранних последних методов, включают модулируемые QPSK сигналы с нулевым смещением фазы, которое имеет точки в {1+0i, 0+1i,-1+0i, 0−1i} и модулируемые BPSK сигналы с нулевым смещением фазы.
Метод Гарднера — метод Гарднера является методом обратной связи не данных, которому помогают, который независим от восстановления фазы поставщика услуг. Это используется в основополосных системах и модулируемых системах поставщика услуг. А именно, этот метод используется в системах, которые используют линейный тип модуляции с импульсами Найквиста, которые имеют избыточную пропускную способность приблизительно между 40% и 100%. Примеры включают системы, которые используют PAM, PSK, QAM, или модуляцию OQPSK и ту форму сигнал с помощью повышенных фильтров косинуса, фактор спада которых между 0,4 и 1. В присутствии шума улучшается производительность этого метода восстановления синхронизации, когда избыточная пропускная способность увеличивается (или увеличения фактора спада в случае повышенного фильтра косинуса). Метод Гарднера похож на ранний последний метод логического элемента.
Ранний последний метод — ранний последний метод является методом обратной связи не данных, которому помогают. Это используется в системах, которые используют линейный тип модуляции, такой как PAM, PSK, QAM или модуляция OQPSK. Например, системы с помощью повышенного косинуса фильтруют с импульсами Найквиста. В присутствии шума производительность этого метода восстановления синхронизации улучшается как избыточная пропускная способность импульсных увеличений (или увеличений фактора спада в случае повышенного фильтра косинуса).
Ранний последний метод похож на метод Гарднера. Метод Гарднера выполняет лучше в системах с высокими значениями ОСШ, потому что он имеет ниже сам шум, чем ранний последний метод.
Направленный на решение TED использует sign
функционируйте, чтобы оценить синфазные компоненты и квадратурные компоненты полученных выборок, которые приводят к более низкой вычислительной сложности, чем не, данные помогли TED.
Метод пересечения нулем — метод пересечения нулем является направленным на решение методом, который требует 2 выборок на символ во входе к синхронизатору. Это используется в условиях низкого ОСШ во всех значениях избыточной пропускной способности, и в условиях умеренного ОСШ для умеренной избыточной пропускной способности включает аппроксимированную область значений [0.4, 0.6].
Метод Мюллера-Мюллера — метод Мюллера-Мюллера является направленным на решение методом обратной связи, который требует предшествующего восстановления фазы поставщика услуг. Когда входной сигнал имеет импульсы Найквиста (например, при использовании повышенного фильтра косинуса), метод Мюллера-Мюллера имеет не сам шум. Для узкополосной связи, сигнализирующей в присутствии шума, производительность метода Мюллера-Мюллера улучшается как избыточный фактор пропускной способности импульсных уменьшений.
Поскольку направленные на решение методы (пересечение нулем и Мюллер-Мюллер) оценочная ошибка синхронизации на основе знака синфазных компонентов и квадратурных компонентов сигналов передала синхронизатору, им не рекомендуют для созвездий, которые имеют точки или с синфазным нулем или с квадратурным компонентом. и синфазные компоненты и квадратурные компоненты входных сигналов к детектору ошибок синхронизации, где предполагаемая ошибка синхронизации. Коэффициенты метода Мюллера-Мюллера и оценки и . Оценки синхронизации сделаны путем применения sign
функционируйте к синфазным компонентам и квадратурным компонентам, и используются только в направленных на решение методах TED.
Задержка оценивается от выборок с фиксированной процентной ставкой согласованного фильтра, которые являются асинхронными с уровнем символа. Поскольку получившиеся выборки не выравниваются с контурами символа, интерполятор используется, чтобы "переместить" выборки. Поскольку задержка неизвестна, интерполятор должен быть адаптивным. Кроме того, потому что interpolant является линейной комбинацией доступных выборок, он может считаться выходом фильтра.
Интерполятор использует кусочный параболический интерполятор со структурой Фэрроу и коэффициентом набор α к 1/2 (см. Рис, Майкла, Цифровую связь: Подход Дискретного времени).
Управление интерполяцией предоставляет интерполятору индекс basepoint и дробный интервал. Индекс basepoint является демонстрационным индексом, самым близким к interpolant. Дробный интервал является отношением времени между interpolant и его индексом basepoint и интервалом интерполяции.
Интерполяция выполняется для каждой выборки, и сигнал строба используется, чтобы определить, выводится ли interpolant. Синхронизатор использует 1 встречное управление интерполяцией по модулю, чтобы обеспечить строб и дробный интервал для использования с интерполятором.
Синхронизатор использует пропорционально-интегрирующий петлевой фильтр (PI). Пропорциональное усиление, K 1, и усиление интегратора, K 2, вычисляется
и
Временным термином, θ, дают
где:
N является количеством выборок на символ.
ζ является фактором затухания.
Bn T s является нормированной пропускной способностью цикла.
K p является усилением детектора.
[1] Рис, Майкл. Цифровая связь: подход дискретного времени. Верхний Сэддл-Ривер, NJ: Prentice Hall, 2008.
[2] Mengali, Умберто и Альдо Н. Д'Андреа. Методы синхронизации для цифровых получателей. Нью-Йорк: нажатие пленума, 1997.
Указания и ограничения по применению:
Смотрите системные объекты в Генерации кода MATLAB (MATLAB Coder).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.