Синхронизация OFDM

Этот пример показывает метод для цифровой связи с синхронизацией OFDM, основанной на стандарте IEEE® 802.11a™. Система objects™ от Communications Toolbox используется, чтобы обеспечить модуляцию OFDM и демодуляцию и функциональность синхронизации справки. В частности, этот пример иллюстрирует методы, чтобы решить реальные проблемы радиосвязи как восстановление несущей частоты, синхронизируя восстановление и эквализацию частотного диапазона.

Реализации

Этот пример описывает реализацию MATLAB® синхронизации OFDM, основанной на стандарте 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. Объект преобразует сообщение полезной нагрузки в небольшой поток, который является первым модулируемым PSK, затем OFDM, модулируемый, и наконец предварительно ожидаемый преамбулой символы OFDM, чтобы сформировать отдельную систему координат. Передатчик повторяет эту систему координат numFrames \times.

2) applyOFDMChannel: моделирует канал со смещением поставщика услуг, синхронизируя смещение и аддитивный белый Гауссов шум (AWGN).

3) receiveOFDMSignal: настройте и продвиньтесь Системный объект OFDMReceiver. Объектные модели серия компонентов в получателе, включая синхронизацию восстановления, восстановления несущей частоты, эквализации канала и демодуляции. Объект может также быть сконфигурирован, чтобы показать несколько осциллографов, чтобы визуализировать обработку получателя. Выход метода шага объекта OFDMReceiver является декодируемым потоком битов от тех обнаруженных систем координат.

4) calculateOFDMBER: вычислите системный коэффициент ошибок системы координат (FER) и частоту ошибок по битам (BER) на основе исходного сообщения полезной нагрузки в каждой системе координат и битном выходе от Системного объекта OFDMReceiver.

Описание отдельных компонентов и алгоритмы

Передатчик

Системный объект OFDMTransmitter генерирует сигнал OFDM, основанный на стандарте IEEE 802.11a с предоставленной полезной нагрузкой ASCII. Каждая система координат передачи составлена из нескольких символов OFDM, включая символы данных и преамбулу. Идентичные системы координат повторяются передатчиком на основе предоставленного значения. Системы координат дополнены, чтобы заполнить сетку OFDM при необходимости.

Канал

Этот компонент симулирует эффекты беспроводной передачи. Это ухудшает переданный сигнал и с фазой и со смещением частоты, задержка, чтобы подражать задержке канала между передатчиком и получателем и AWGN. Уровень шума AWGN дан в дБ.

Получатель

Этот Системный объект OFDMReceiver восстанавливает исходное переданное сообщение полезной нагрузки. Это разделено на четыре первичных операции в этом порядке:

1) Синхронизация Восстановления: Этот компонент ответственен за определение демонстрационного местоположения запуска данной системы координат. А именно, это использует известную последовательность преамбулы в принятом кадре, найденном посредством взаимной корреляции. Перекрестные коррелированые данные будут содержать определенное пиковое расположение/интервал, которое допускает идентификацию. Сама преамбула спроектирована, чтобы произвести эту определенную форму во временном интервале. Этот метод идентификации основан на [1]. locatePreamble метод объекта, который ответственен за эту операцию, использует нормированную минимальную пиковую высоту и минимальное количество необходимого peaks, чтобы обеспечить возможное соответствие преамбулы.

2) Восстановление Несущей частоты: оценка Частоты выполняется путем вычисления разности фаз во временном интервале между половинами долгого фрагмента 802.11a преамбула. Эта разность фаз Phi затем преобразована в смещение частоты. Это - общий метод, первоначально опубликованный Schmidl и Cox [2]. Эта реализация измерения фазы принимает, что истинное смещение в пи или одном интервале частоты БПФ. В случае 802.11a интервал 312.5 кГц шириной.

3) Эквализация Частотного диапазона: Поскольку оценка частоты может быть неточной, дополнительное вращение фазы будет существовать на уровне поднесущей символа OFDM. А также вращения фазы, исчезновение канала будет также влиять на полученный сигнал. Оба из этих нарушений корректируются эквалайзером частотного диапазона. Эквалайзер имеет два этапа, используя и преамбулу и экспериментальные данные. Во-первых, полученная полезная нагрузка компенсируется с помощью касаний, сгенерированных от получаемых долгих выборок преамбулы. Затем экспериментальные поднесущие извлечены и интерполированы в частоте, чтобы обеспечить полную оценку канала. Полезная нагрузка затем компенсируется с помощью этих экспериментальных оценок.

4) Декодер данных: Наконец поднесущие OFDM демодулируются и затем, PSK, демодулируемый в биты, с которых может быть восстановлено исходное сообщение полезной нагрузки.

Вычисление BER

Этот компонент вычисляет систему FER и BER на основе исходного сообщения полезной нагрузки и декодируемого потока битов от обнаруженных систем координат в получателе. Необнаруженные системы координат не считаются в вычислении.

Отображение восстановленного сообщения

Восстановленное сообщение в получателе отображено для каждой обнаруженной системы координат. Поскольку длина исходного сообщения не отправляется в получатель, заполненные биты в каждой системе координат также восстановлены в символы и отображены. Таким образом, можно видеть до 7 бессмысленных символов в конце каждого восстановленного сообщения.

Осциллографы

  • схемы созвездия, показывающие полученный сигнал до и после эквализации частотного диапазона

  • векторный график касаний эквалайзера используется в данной системе координат

  • спектр анализатор, отображающий обнаруженные системы координат данных

  • график временной зависимости, отображающий запуск обнаруженных систем координат

  • график временной зависимости, отображающий оценку частоты поставщика услуг передатчика, возмещен для обнаруженных систем координат

Тестовый обзор синхронизации OFDM

Большой вектор данных регенерирован для данного значения 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);
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.

Приложение

Следующие Системные объекты используются в этом примере:

Следующие функции помощника используются в этом примере:

Ссылки

  1. Миннесота, Х.; Цзэн, М.; Бхаргэва, V.K., "При синхронизации оценки смещения для систем OFDM", Коммуникационные Буквы, IEEE, vol.4, № 7, pp.242,244, июль 2000

  2. Schmidl, Т.М.; Кокс, округ Колумбия, "Устойчивая частота и синхронизация синхронизации для OFDM", Коммуникации, Транзакции IEEE на, vol.45, № 12, pp.1613,1621, декабрь 1997

  3. Станд. IEEE 802.11a, "часть 11: беспроводное Среднее управление доступом (MAC) LAN и физический уровень (PHY) спецификации", 1999.