Перейти к содержанию
    

Многолучевой канал в OFDM без Эквалайзера - какой должна быть помехоустойчивость

Вот так я симулирую канал связи в настоящее время. Может быть, сильно большие значения задаю, но если не использовать эквалайзер, то при таком канале у меня BER = 0.5. То есть, как я понимаю, с данной моделью канала без эквалайзера даже при соотношении сигнал-шум прием невозможен. Хочу узнать, действительно ли это так, или я ошибаюсь? Может быть, в программе написал что-то не так?

Заодно в алгоритмическом плане хочу спросить, правильно ли я добавляю АБГШ в матлаб? Посмотрите, там SNR_dB... Я думаю, что это и есть значение сигнал-шум. То есть отношение энергии сигнала к спектральной мощности шума. Я прав?

 

L = 200;
    tm = [0 randint(1,L-1,[0 15])]; 
    raynums = raylrnd(0.4,1,L-1);
    hmdbm = [0 20*log10(raynums)]; hm = sqrt(1*10.^(hmdbm/10));
    fim = [0 2*pi*rand(1,L-1)];
    k = 0:20; hsum = 0; 
    for i = 1:length(tm)
        del = double(kroneckerDelta(sym(k-tm(i))));
        h = hm(i)*exp(1*j*fim(i))*del;
        hsum = hsum+h;
    end
     
    OFDM_noisy = conv(hsum,OFDM_GI);
    axes(handles.axes15); stem(abs(hsum)); xlabel('n, samples');  ylabel('|hsum(n)|, units'); grid minor;       

    %Add AWGN to multibeam channel
    EBNO_dB = str2num(get(handles.edit9,'String')); SNR_dB = EBNO_dB + 10*log10(Nbps);
    set(handles.text16, 'String', ['Pseudo SNR = ' num2str(SNR_dB)]);
    OFDM_noisy = awgn(real(OFDM_noisy), SNR_dB, 'measured')+j.*awgn(imag(OFDM_noisy), SNR_dB, 'measured');

 

И еще один вопрос. Я не очень понял. Допустим, у меня есть выборки сигнала. Я хочу эти выборки конвертировать в обычный сигнал на радиочастоту. Например, есть 100000 бит, которые нужно передать. В 4-QAM используется 2 бита на символ, поэтому получается 50000 бит. Количество информационных поднесущих - 48, а вообще из 64. Тогда получается 50000/48 = 1042 ОФДМ символа. В этих 1042 символах содержатся 64 х 1042 = 66688 выборки. Но так понимаю, что все эти параметры не нужны, потому что в итоге спектр OFDM-сигнала до переноса на 5 ГГц длится 64 выборки. Шаг по частоте, как я понимаю - это величина, обратная длительности OFDM во временной области. Если брать 64 МГц спектр, то 64 МГц / 64 выб = 1 МГц. Тогда сигнал из 64 выборок длится 1 мкс. Тогда частота дискретизации = 1 мкс/64 = 0,0156 мкс ~ 1е-8. Как я понял, от радиочастоты этот параметр не зависит, я прав?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И еще один вопрос. Я не очень понял. Допустим, у меня есть выборки сигнала. Я хочу эти выборки конвертировать в обычный сигнал на радиочастоту. Например, есть 100000 бит, которые нужно передать. В 4-QAM используется 2 бита на символ, поэтому получается 50000 бит. Количество информационных поднесущих - 48, а вообще из 64. Тогда получается 50000/48 = 1042 ОФДМ символа. В этих 1042 символах содержатся 64 х 1042 = 66688 выборки. Но так понимаю, что все эти параметры не нужны, потому что в итоге спектр OFDM-сигнала до переноса на 5 ГГц длится 64 выборки. Шаг по частоте, как я понимаю - это величина, обратная длительности OFDM во временной области. Если брать 64 МГц спектр, то 64 МГц / 64 выб = 1 МГц. Тогда сигнал из 64 выборок длится 1 мкс. Тогда частота дискретизации = 1 мкс/64 = 0,0156 мкс ~ 1е-8. Как я понял, от радиочастоты этот параметр не зависит, я прав?

1. Неправильно говорить 50000 бит. Здесь также лучше говорить 50000 символов (QAM-символов).

2. По частоте всё верно. Скорость ОФДМ-символа в конечном счёте задаётся полосой 1 канала (поднесущей) и в нашем случае будет 1 МГц. Таким образом, количество и ширина ОФДМ поднесущих дают максимальный битрейт, который можно прокачать через этот канал, в нашем случае 48 поднесущих (информационных) * 1 МГц (полоса) * 2 бит (QAM-4) = 96 Мбит/сек. А сколько там бит нужно передать, - это лишь определяет время, которое передатчик будет передавать эту информацию, но не влияет на частоту дискретизации. От центральной радиочастоты это не зависит. Сначала формируется спектр на ПЧ (иногда нулевой ПЧ), потом готовый 64-МГц спектр гетеродином переносится на любую радиочастоту, хоть на 10 ГГц.

3. BER=0.5 - это, фактически, просто шум. Однозначно можно говорить, что что-то не так, потому как не работает от слова совсем.

Изменено пользователем Sajan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

    OFDM_noisy = awgn(real(OFDM_noisy), SNR_dB, 'measured')+j.*awgn(imag(OFDM_noisy), SNR_dB, 'measured');

К сожалению, полностью проверить код нет времени. Но вот эта строчка не нравится. Как-то странно добавляете шум.

Достаточно так:

OFDM_noisy = awgn(OFDM_noisy, SNR_dB, 'measured')

 

Функция awgn работает с комплексными числами прекрасно и добавляем к ним комплексный белый шум.

 

Вот здесь хороший пример, как правильно рассчитать связь между SNR и Eb/N0: http://www.dsplog.com/2008/06/10/ofdm-bpsk-bit-error/ и http://www.gaussianwaves.com/2011/07/simul...n-awgn-channel/

 

Можете еще посмотреть пример с моделированием многолучевого канала: http://www.mathworks.com/matlabcentral/fil...oor-lte-general

Изменено пользователем Grizzzly

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Неправильно говорить 50000 бит. Здесь также лучше говорить 50000 символов (QAM-символов).

Sajan, уточнили бы хоть.. потому что речь идет именно о битах. Картинку в биты перевел, получил массив 0 и единиц размерностью 50000... Но это не суть.

 

3. BER=0.5 - это, фактически, просто шум. Однозначно можно говорить, что что-то не так, потому как не работает от слова совсем.

Тогда проблема кроется где-то в глубине, потому что у меня есть возможности выборов нескольких каналов в GUI. Задаем канал АБГШ, и система работает идеально - при 8 dB появляется BER = 10-5 или ниже, в зависимости от алгоритмов, с которыми я играюсь... Я думаю, возможно, я просто параметры многолучевого канала задаю слишком жестокие, как Вы считаете? То есть проблема именно в том, что когда задаю канал, и не использую совсем эквалайзер, сигнал вот так вот жестоко расплывается, даже когда стоит BPSK.

 

Grizzzly, насчет примеров по расчету BER спасибо, но там нет привязки вообще к функции AWNG() Matlab. До меня сейчас плохо доходит, что я задаю в параметрах этой функции и что получаю вреале конкретно для OFDM с заданными параметрами. Проблема в том, что я использую и BPSK, и QPSK, и 16QAM, и еще и длина циклического префикса у меня - переменная. Поэтому Вы мне дали ссылки прямо по адресу, но я теперь, прочитав, понял, что мне надо подробнее разжевать, я не очень понимаю. Может еще что-то можете предложить по ссылкам? То есть в итоге то просто я в awgn задаю некое значение сигнал шум, и мне надо найти соответствие этого соотношения с теми значениями, которые получают другие исследователи в других статьях, чтобы время от времени сравнивать BER. Прошу подробнее. То есть в итоге то нужна всего лишь функция SNRreal = f(SNR), где SNR - то, что задал в функции AWGN

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...