Рисунок 2 – Эквивалентность циклической и линейной сверток для случая циклического префикса
Таким образом, мы заменили линейную свертку на циклическую почти на всей длине символа, добавив циклическое расширение к символу OFDM. На приемнике нас интересует только средняя часть lin_scp_h , которая является выходом канала. Поэтому первый блок в приемнике OFDM удаляет дополнительные символы в начале и конце выходного сигнала. Итоговый вектор – это принятый символ r после удаления циклического префикса.
r = lin_scp_h(Ncp+1:N+Ncp)%cut from index Ncp+1 to N+Ncp
4. Проверка свойства DFT
Свойство DFT, указанное в уравнении (5), можно переписать как
r n IDFT R k
IDFT H k S k
(7)
IDFT DFT h n DFT s nh n s[n]
Чтобы проверить это в Matlab, возьмем N-точечное ДПФ принятого сигнала и CIR.
Тогда мы можем видеть, что ОДПФ произведения ДПФ s и h будет равняться N-точечной циклической свертке векторов s и h
R = fft(r,N); %frequency response of received signal H = fft(h,N); %frequency response of CIR
S = fft(s,N); %frequency response of OFDM signal (non CP) r1 = ifft(S.*H); %IFFT of product of individual DFTs display(['IFFT(DFT(H)*DFT(S)) : ',num2str(r1)]) display(['cconv(s,h): ', numstr(r)]
IFFT ( DFT ( H ) * DFT ( S ) ) : 0.8618 -1.4217 -4.898 -2.316 0.945 0.901 -0.446 2.993
cconv (s , h ) : 0.8618 -1.4217 -4.898 -2.316 0.945 0.901 -0.446 2.993
5. Дискретно-временная реализация CP-OF в основной полосе частот Принципиальная схема упрощенной системы передачи данных OFDM с
циклическим префиксом (CP-OFDM) показана на рисунке 3. Базовым параметром для описания системы OFDM является указание количества подканалов (N), необходимых для отправки данных. Количество подканалов обычно устанавливается равным степени 2,
например {64,256,512,1024, ...}. Размер обратного дискретного преобразования Фурье
(ОДПФ) и дискретного преобразования Фурье (ДПФ) необходимо установить соответствующим.
Передача начинается с преобразования потока исходной информации в N
параллельных подканалов. Для удобства информационный поток d уже представлен как символ из набора {1,2, ..., M}. Символ данных в каждом подканале модулируется с использованием выбранного типа модуляции, такой как BPSK, QPSK или MQAM.
Поскольку это модель с дискретным временем в основной полосе частот, где сигналы представлены в моменты выборки символов, предполагается, что информационный символ в каждом параллельном потоке модулирует единственную ортогональную несущую. На этом этапе модулированные символы X в параллельных потоках можно визуализировать как поступающие из разных ортогональных подканалов в частотной области. Компоненты ортогональных подканалов в частотной области преобразуются во временную область с использованием операции ОДПФ.
Следующая общая функция реализует отображение модуляции (отображение созвездия), показанное на рисунке 3. Функция поддерживает модуляцию MPSK для M
{2,4,8, ...} и модуляцию MQAM, которая имеет квадратное созвездие: M
{4,16,64,256,1024, ···}. Он построен на основе функций mpsk_modulator.m и mqam modulator.m, использованных в предыдущих лабораторных работах.
Рисунок 3 – Имитационная модель с дискретным временем для передачи и приема OFDM
Программа 1: modulation_mapper.m: реализация преобразователя модуляции для
MPSK и MQAM
function [X,ref]=modulation_mapper(MOD_TYPE,M,d) %Modulation mapper for OFDM transmitter
%MOD_TYPE - 'MPSK' or 'MQAM' modulation
%M - modulation order, For BPSK M=2, QPSK M=4, 256-QAM M=256 etc..,
%d - data symbols to be modulated drawn from the set {1,2,...,M} %returns
%X - modulated symbols
%ref -ideal constellation points that could be used by IQ detector if strcmpi(MOD_TYPE,'MPSK'),
[X,ref]=mpsk_modulator(M,d);%MPSK modulation else
if strcmpi(MOD_TYPE,'MQAM'), [X,ref]=mqam_modulator(M,d);%MQAM modulation else
error('Invalid Modulation specified'); end
end;end
Сигнал OFDM – это составной сигнал, который содержит информацию из подканалов. Поскольку модулированные символы X визуализируются как находящиеся в
частотной области, они преобразуются во временную область с помощью ОДПФ. В
приемнике соответствующая обратная операция выполняется блоком ДПФ. Блоки ОДПФ
иДПФ в схеме также можно менять местами, и это не влияет на передачу.
Вканале с временной дисперсией ортогональность поднесущих не может поддерживаться в идеальном состоянии из-за искажения задержки. Эта проблема решается путем добавления циклического расширения (также называемого циклическим префиксом) к символу OFDM [2]. Циклическое расширение добавляется путем
копирования последних символов Ncp из вектора x и вставки его в начало, как показано на рисунке 4. Циклическое расширение символа OFDM преобразует канал линейной свертки в канал, выполняющий циклическую свертку, и это обеспечивает ортогональность поднесущих в канале с временной дисперсией. Он также полностью устраняет помехи от поднесущих, если импульсная характеристика канала короче циклического префикса. В
приемнике добавленный циклический префикс просто удаляется из принятого символа
OFDM.
Рисунок 4 – Добавление циклического префикса в CP-OFDM
Программа 2. add_cyclic_prefix.m: функция для добавления циклического префикса длиной Ncp символов.
function s = add_cyclic_prefix(x,Ncp)
%function to add cyclic prefix to the generated OFDM symbol x that %is generated at the output of the IDFT block
%x - ofdm symbol without CP (output of IDFT block)
%Ncp-num. of samples at x's end that will copied to its beginning
%s - returns the cyclic prefixed OFDM symbol
s = [x(end-Ncp+1:end) x]; %Cyclic prefixed OFDM symbol end
Программа 3. remove_cyclic_prefix.m: функция для удаления циклического
префикса из символа OFDM.
function y = remove_cyclic_prefix(r,Ncp,N)
%function to remove cyclic prefix from the received OFDM symbol r
%r - received ofdm symbol with CP
%Ncp - num. of samples at beginning of r that need to be removed
%N - number of samples in a single OFDM symbol
%y - returns the OFDM symbol without cyclic prefix y=r(Ncp+1:N+Ncp);%cut from index Ncp+1 to N+Ncp
end
На стороне приемника устройство обратного преобразования для демодуляции
MPSK и MQAM может быть реализовано с помощью простого детектора IQ, который использует метрику минимального евклидова расстояния для демодуляции.
6. Характеристики CP-OFDM в канале с АБГШ
Соберем итоговую схему для моделирования системы с OFDM. Код поддерживает два типа базовой модуляции для OFDM – MPSK или MQAM. Он генерирует случайные символы данных, модулирует их с использованием выбранного типа модуляции,
преобразует модулированные символы в частотную область с помощью операции ОДПФ и добавляет циклический префикс для формирования символа OFDM. Затем к результирующим символам OFDM добавляется вектор, соответствующий воздействию АБГШ, который соответствует заданному значению Eb / N0 . На стороне приемника циклический префикс удаляется из принятого символа OFDM, выполняется ДПФ, а затем символы отправляются через устройство обратного преобразования для получения оценки исходных символов. Обратный преобразователь реализован с помощью простого детектора IQ, который использует метрику минимального евклидова расстояния для демодуляции. Наконец, частоты ошибок символов вычисляются и сравниваются с теоретическими кривыми частоты ошибок символов для соответствующих модуляций в условиях канала с АБГШ. На рисунке 5 показано, что моделируемые точки коэффициента ошибок символа хорошо совпадают с кривыми теоретической частоты ошибок символа.
Программа 4. ofdm_on_awgn.m: передача и прием OFDM на канале AWGN
clear all; close all;
%--------Simulation parameters----------------
nSym=10^4; %Number of OFDM Symbols to transmit EbN0dB = 0:2:20; % bit to noise ratio MOD_TYPE='MPSK'; %modulation type - 'MPSK' or 'MQAM'
M=64; %choose modulation order for the chosen MOD_TYPE
N=64; %FFT size or total number of subcarriers (used + unused) 64 Ncp= 16; %number of symbols in the cyclic prefix
%--------Derived Parameters--------------------
k=log2(M); %number of bits per modulated symbol EsN0dB=10*log10(k)+EbN0dB;%convert to symbol energy to noise ratio errors= zeros(1,length(EsN0dB)); %to store symbol errors