В этом примере показано, как обработать комплексные данные в графике Stateflow®. Модель использует векторы из комплексных данных, чтобы найти фиксированный шаблон в сигнале от системы связи.
В системах связи синхронизация системы координат является методом нахождения допустимых данных в передаче, которая состоит из систем координат данных. Чтобы помочь синхронизации системы координат, передатчик вставляет фиксированный шаблон данных в начале каждой системы координат данных, чтобы отметить запуск допустимых данных. Приемник ищет фиксированный шаблон и достигает синхронизации системы координат, когда корреляция между входными данными и фиксированным шаблоном высока.
В этом примере Контроллер Синхронизации Системы координат диаграммы Stateflow принимает комплексный входной сигнал IQ
и поиски фиксированного шаблона данных trainSig
. После распознавания запуска системы координат данных график хранит допустимые данные в сигнале комплексного выхода frame
. Этот выходной сигнал является вектором из комплексных продуктов между каждой допустимой точкой данных и углом фазы несущей. График затем передает допустимые данные подсистеме Процессора Системы координат.
Обратите внимание на то, что эта модель не содержит остальную часть системы связи.
В Контроллере Синхронизации Системы координат график, look_for_sync
состояние запускает алгоритм синхронизации системы координат. На каждом временном шаге MATLAB® функционирует correlate
вычисляет корреляцию между входным сигналом IQ
и фиксированный шаблон данных trainSig
. Функция хранит комплексную корреляцию как corr
и его абсолютное значение как corrAbs
. Значение corrAbs
процент корреляции, который может лежать в диапазоне от 0 до 100 процентов. В 0 процентах нет никакой корреляции. В 100 процентах существует совершенная корреляция.
Если corrAbs
превышает 50 процентов, корреляция высока, и график указывает запуск системы координат данных. График берет переход к get_payload
состояние и хранилища 220 допустимых точек данных в комплексном векторе frame
.
Если corrAbs
остается ниже 50 процентов для 300 последовательных точек данных, сброса алгоритма синхронизации системы координат. График берет переход к frame_out
состояние и триггеры подсистема Процессора Системы координат. График затем возвращается к look_for_sync
состояние.
Когда Контроллер Синхронизации Системы координат график распознает запуск системы координат данных, get_payload
утвердите вызывает функцию MATLAB get_carrier_phase
вычислить угол фазы несущей. Состояние хранит этот угол фазы как локальный объект данных phasor
. Затем состояние собирает скалярные значения продукта IQ*phasor
в векторном frame
. Чтобы избегать использования дополнительной переменной как счетчика индекса, это состояние индексирует в этот вектор при помощи count
оператор:
Когда состояние становится активным, entry
действие хранит начальное значение продукта в первом элементе frame
.
В более поздних временных шагах, during
действие хранит следующие значения этого продукта в последовательных элементах frame
. Выражение индексации count(true)
возвращает количество временных шагов, поскольку состояние стало активным.
После шагов 220 раз, условие перехода [after(220,tick)]
становится true
и график выходит от состояния. Когда график вводит frame_out
состояние, векторный frame
содержит значения 220 продуктов. График передает эти данные подсистеме Процессора Системы координат и затем возвращается к look_for_sync
состояние.