Синхронизация 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.

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.

Для просмотра документации необходимо авторизоваться на сайте