Этот пример показывает способ цифровой связи с синхронизацией OFDM на основе стандарта IEEE ® 802.11a™. Системные objects™ из набора Communications Toolbox используются, чтобы обеспечить модуляцию и демодуляцию OFDM и помочь функциональности синхронизации. В частности, этот пример иллюстрирует способы решения реальных проблем радиосвязи, таких как восстановление несущей частоты, восстановление синхронизации и эквализация частотного диапазона.
Этот пример описывает реализацию синхронизации OFDM в MATLAB ®, основанную на стандарте IEEE 802.11a [3].
Стандарт IEEE 802.11a описывает передачу модулированного сигнала OFDM для обмена информацией между системами в локальных и столичных сетях. Этот пример использует физический слой, очерченный этим стандартом, в частности символы преамбулы и сетчатую структуру OFDM.
Целью этого примера является:
Чтобы смоделировать общую систему радиосвязи OFDM, которая способна успешно восстановить сообщение, которое было повреждено различными имитированными нарушениями канала.
Чтобы проиллюстрировать использование ключевых инструментов Communications Toolbox™ для разработки системы OFDM и синхронизации символов OFDM
Чтобы проиллюстрировать эффективность преимущества MATLAB Coder™
Настраиваемые параметры передатчика, включая сообщение полезной нагрузки в каждой системе координат, который состоит из нескольких символов OFDM и количества переданных систем координат.
message = 'Live long and prosper, from the Communications Toolbox Team at MathWorks!'; numFrames = 1e2; % Adjustable channel parameters EbN0dB = 12; % Channel noise level (dB) frequencyOffset = 1e4; % Frequency offset (Hz) phaseOffset = 15; % Phase offset (Degrees) delay = 80; % Initial sample offset for entire data stream (samples) % Display recovered messages displayRecoveredMsg = false; % Enable scope visualizations useScopes = true; % Check for MATLAB Coder license useCodegen = checkCodegenLicense; if useCodegen fprintf(['--MATLAB Coder license found. ',... 'Transmitter and receiver functions will be compiled for ',... 'additional simulation acceleration.--\n']); end % By default the transmitter and receiver functions will be recompiled % between every run, which is not always necessary. To disable receiver % compilation, change "compileIt" to false. compileIt = useCodegen;
--MATLAB Coder license found. Transmitter and receiver functions will be compiled for additional simulation acceleration.--
Этот пример моделирует систему цифровой связи, основанную на стандарте IEEE 802.11a [3]. Система разбита на четыре функции: generateOFDMSignal, applyOFDMChannel, receiveOFDMSignal и calculateOFDMBER.
1) generateOFDMSignal: настройка и шаг объекта OFDMTransmitter System. Объект преобразует сообщение полезной нагрузки в поток битов, который сначала модулируется PSK, затем модулируется OFDM и, наконец, подготовляется символами преамбулы OFDM для формирования отдельной системы координат. Передатчик повторяет эту систему координат numFrames
времени.
2) applyOFDMChannel: моделирует канал со смещением несущей, смещением синхронизации и аддитивным белым Гауссовым шумом (AWGN).
3) receiveOFDMSignal: настройка и шаг объекта OFDMReceiver System. Объект моделирует серию компонентов в приемнике, включая восстановление синхронизации, восстановление несущей частоты, эквализацию канала и демодуляцию. Объект также может быть сконфигурирован, чтобы показать несколько возможности для визуализации обработки приемника. Выход шага объекта OFDMReceiver является декодированным битовым потоком из этих обнаруженных систем координат.
4) вычисляетOFDMBER: вычисляет вероятность системной ошибки системы координат (FER) и вероятность битовой ошибки (BER) на основе исходного сообщения полезной нагрузки в каждой системе координат и битового выхода объекта OFDMReceiver System.
Передатчик
Объект OFDMTransmitter System генерирует сигнал OFDM на основе стандарта IEEE 802.11a с поставляемой полезной нагрузкой ASCII. Каждая система координат передачи состоит из нескольких символов OFDM, включая символы преамбулы и данных. Идентичные системы координат повторяются передатчиком на основе предоставленного значения. Системы координат заполняются для заполнения сетки OFDM при необходимости.
Канал
Этот компонент имитирует эффекты беспроводной передачи. Он ухудшает переданный сигнал и со смещением фазы, и со смещением частоты, задержкой для имитации задержки канала между передатчиком и приемником и AWGN. Уровень шума AWGN приведен в дБ.
Приемник
Этот объект OFDMReceiver System восстанавливает исходное переданное сообщение полезной нагрузки. В этом порядке она разделена на четыре основные операции:
1) Восстановление синхронизации: Этот компонент отвечает за определение местоположения выборки начала заданной системы координат. Более конкретно, он использует известную последовательность преамбулы в принятой системе координат, найденном посредством перекрестной корреляции. Перекрестно коррелированные данные будут содержать конкретное расположение пиков/интервалы, которые позволяют идентифицировать. Сама преамбула предназначена для создания этой конкретной формы во временном интервале. Этот метод идентификации основан на [1]. Метод locatePreamble объекта, который отвечает за эту операцию, использует нормализованную минимальную высоту пика и минимальное количество необходимого peaks, чтобы обеспечить возможное соответствие преамбулы.
2) Восстановление частоты несущей: Оценка частоты выполняется путем вычисления различия фаз во временном интервале между половинами длинного фрагмента преамбулы 802.11a. Это различие фаз Phi затем преобразуется в смещение частоты. Это распространенный метод, первоначально опубликованный Schmidl и Cox [2]. Эта реализация измерения фазы принимает, что истинное смещение находится внутри pi или одного интервала частоты БПФ. В случае 802.11a интервал имеет 312.5kHz ширину.
3) Эквализация частотного диапазона: Поскольку оценка частоты может быть неточной, дополнительное вращение фазы будет существовать на уровне поднесущей символа OFDM. Как и повороты фазы, замирание канала также повлияет на принятый сигнал. Оба эти нарушения корректируются эквалайзером частотного диапазона. Эквалайзер имеет две стадии, используя как преамбулу, так и данные управления. Во-первых, принятая полезная нагрузка выравнивается посредством использования отводов, сгенерированных из полученных длинных выборок преамбулы. Затем пилот-поднесущие извлекают и интерполируют по частоте, чтобы обеспечить полную оценку канала. Полезная нагрузка затем выравнивается с помощью этих пилотных оценок.
4) Декодер данных: Наконец, поднесущие OFDM демодулируются, а затем PSK демодулируются в биты, из которых может быть восстановлено исходное сообщение полезной нагрузки.
Расчет BER
Этот компонент вычисляет FER и BER системы на основе исходного сообщения полезной нагрузки и декодированного потока битов из обнаруженных систем координат в приемнике. Необнаруженные системы координат не учитываются в вычислении.
Отображение восстановленного сообщения
Восстановленное сообщение в приемнике отображается для каждого обнаруженной системы координат. Поскольку исходная длина сообщения не посылается приемнику, заполненные биты в каждой системе координат также восстанавливаются в символы и отображаются. Таким образом, вы можете увидеть до 7 бессмысленных символов в конце каждого восстановленного сообщения.
Возможности
сигнальные диаграммы, показывающие принятый сигнал до и после эквализации частотного диапазона
векторный график отводов эквалайзера, используемых для заданной системы координат
спектральный анализатор, отображающий обнаруженные системы координат данных
график времени, отображающий начало обнаруженных систем координат
график времени, отображающий оценку частоты смещения несущей передатчика для обнаруженных систем координат
Большой вектор данных регенерируется для заданного EbN0 значения функцией generateOFDMSignal. Затем эти данные передаются через функцию applyOFDMChannel, которая вводит несколько общих нарушений канала. Наконец, данные передаются в приемник для восстановления. Функция receiveOFDMSignal действует путем обработки данных на покадровом базисный. Этот механизм обработки является автономным для преимуществ эффективности при использовании генерации кода и для простоты кода. Этот скрипт по умолчанию генерирует код для функций передатчика и приемника; это достигается с помощью команды codegen, обеспечиваемой MATLAB Coder™ продуктом. Команда codegen переводит функции MATLAB ® в статическую или динамическую библиотеку C++, исполняемый файл или в файл MEX, создавая код для ускоренного выполнения. Сгенерированный код C запускается в несколько раз быстрее, чем оригинальный код MATLAB.
Во время работы приемник будет отображать ряд графиков, иллюстрирующих определенные результаты синхронизации и эффекты на сигнал.
% Compile transmitter with MATLAB Coder if compileIt codegen generateOFDMSignal -args {coder.Constant(message), coder.Constant(numFrames)} end % Generate transmission signal if useCodegen [txSig, frameLen] = generateOFDMSignal_mex(message, numFrames); else [txSig, frameLen] = generateOFDMSignal(message, numFrames); end % Pass signal through channel rxSig = applyOFDMChannel(txSig, EbN0dB, delay, frequencyOffset, phaseOffset); % Compile receiver with MATLAB Coder if compileIt codegen receiveOFDMSignal -args {rxSig, coder.Constant(frameLen), coder.Constant(displayRecoveredMsg), coder.Constant(useScopes)} end % Recover signal if useCodegen [decMsgInBits, numFramesDetected] = receiveOFDMSignal_mex(rxSig, frameLen, displayRecoveredMsg, useScopes); else [decMsgInBits, numFramesDetected] = receiveOFDMSignal(rxSig, frameLen, displayRecoveredMsg, useScopes); end % Calculate average BER [FER, BER] = calculateOFDMBER(message, decMsgInBits, numFramesDetected); fprintf('\nAt EbNo = %5.2fdB, %d frames detected among the %d transmitted frames with FER = %f and BER = %f\n', ... EbN0dB, numFramesDetected, numFrames, FER, BER);
Code generation successful. Code generation successful. At EbNo = 12.00dB, 100 frames detected among the 100 transmitted frames with FER = 0.010000 and BER = 0.000098
Этот пример использует несколько объектов системы MATLAB, чтобы симулировать цифровую связь с OFDM по каналу AWGN. Это показывает, как смоделировать несколько частей системы OFDM, таких как модуляция, оценка частоты, восстановление синхронизации и эквализация. Симуляция также отображает информацию о операции алгоритмов синхронизации через ряд графиков. Этот пример также использует генерацию кода, что позволяет симуляции запускаться в несколько раз быстрее, чем оригинальный код MATLAB.
В этом примере используются следующие системные объекты:
В этом примере используются следующие вспомогательные функции:
Минн, Х.; Цзэн, М.; Bhargava, V.K., «On timing offset estimation for OFDM systems», Communications Letters, IEEE, vol.4, no.7, pp. 242 244, июль 2000 года
Шмидль, Т. М.; Кокс, округ Колумбия, «Устойчивая частота и временная синхронизация для OFDM», Communications, IEEE Transactions on, vol.45, No. 12, pp. 1613, 1621, Dec 1997
IEEE Std 802.11a, «Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications», 1999.