реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Выравнивание канала для QAM16
tim_s80
сообщение Dec 26 2011, 12:09
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-08-10
Пользователь №: 58 866



Цитата(des00 @ Dec 26 2011, 14:34) *
боюсь вас увести не в ту область, т.к. вплотную занимался сим вопросом года полтора назад. поищите документы на тему Transfom Domain Equalizers, сейчас глянул свою библиотеку, по диагонали не нашел нужную доку. Насчет Frequency Domain неплохо у хайкина написано.


Например дискретное преобразование Адамара. На этом форуме есть тема, где уважаемый petrov выкладывал модель такого эквалайзера. Делал эквалайзер с адамаром, сходится быстрее чем классический.


Пощупаю по данным ключевым словам.

Но позвольте еще один вопрос задать. Чуть выше Вы приводили связку SMMA и DD. Но в
y_re*(y_re^2 - a_re^c*R_re) + j*y_im*(y_im^2 - a_im^c*cR_im), где а - это оценки по квадратурам текущего символа. Разве это не есть по сути единение MMA и DD, какой смысл еще раз DD на выходе включать?
Далее, если у меня в начале квадрат стоит с неким наклоном, то применение оценок сигнала можно применять или надо правдами неправдами квадрат в начале выравнивать?
Ну и -с- из каких соображений выбирается?
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 26 2011, 12:23
Сообщение #17


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(tim_s80 @ Dec 26 2011, 06:09) *
Но позвольте еще один вопрос задать. Чуть выше Вы приводили связку SMMA и DD. Но в
y_re*(y_re^2 - a_re^c*R_re) + j*y_im*(y_im^2 - a_im^c*cR_im), где а - это оценки по квадратурам текущего символа. Разве это не есть по сути единение MMA и DD, какой смысл еще раз DD на выходе включать?

Вы правы, я делал для ПЛИС и дело было в ресурсе, при ограниченной разрядности вычислений, в установившемся режиме DD дает лучший результат чем SMMA (думаю что это очевидно %)).
Цитата
Далее, если у меня в начале квадрат стоит с неким наклоном, то применение оценок сигнала можно применять или надо правдами неправдами квадрат в начале выравнивать?

про наклон ничего не понял. вы имеете в виду перекос спектра ? Короткие линейные эквалайзеры ИМХО плохо его компенсируют (а TSE тем более).
Цитата
Ну и -с- из каких соображений выбирается?

хмм, поднял свои наработки, я использовал c = 0.5. Если мне память не изменяет выбирал ее исходя из ошибки в установившемся режиме/скорости схождения.


--------------------
Go to the top of the page
 
+Quote Post
tim_s80
сообщение Dec 26 2011, 12:41
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-08-10
Пользователь №: 58 866



Цитата(des00 @ Dec 26 2011, 15:23) *
про наклон ничего не понял. вы имеете в виду перекос спектра ?


Не совсем точно выразился. Речь идет о квадрате созвездия, который на начальном этапе повернут, т.е. стороны квадрата созвездия не параллельны сторонам опорного созвездия.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 26 2011, 13:03
Сообщение #19


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(tim_s80 @ Dec 26 2011, 06:41) *
Не совсем точно выразился. Речь идет о квадрате созвездия, который на начальном этапе повернут, т.е. стороны квадрата созвездия не параллельны сторонам опорного созвездия.

т.е., как я понимаю, у вас есть нескомпенсированный фазовый сдвиг созвездия. Для настройки эквалайзера это не принципиально(особенно для слепых методов основанных на статистиках высоких порядков).

Даже скажу больше, чисто в экспирементальных целях делал демодулятор на хороших генераторах, без отдельной петли по несушке. Петлей был TSE эквалайзер, его быстродействия хватало что бы держать созвездие (восстановление тактовой не зависело от фазового сдвига) %)

И экспиремента ради делал FSE эквалайзер, который работал интерплятором Фэрроу в петле по тактовой %)


--------------------
Go to the top of the page
 
+Quote Post
tim_s80
сообщение Dec 28 2011, 06:40
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-08-10
Пользователь №: 58 866



При рассмотрении варианта DD-LMS встретился такой подход

...
if (abs(e(k)) < 0.5)
w(k+1,sm.gif = w(k,sm.gif + 2*mu * abs(e(k))^2 * e(k)' * X(k,sm.gif;
else
w(k+1,sm.gif = w(k,sm.gif + 2*mu * e(k)' * X(k,sm.gif;
end
...

т.е. в зависимости от величины текущей ошибки используется либо
abs(e(k))^2 * e(k)'
либо
просто e(k)'

Прояснмие кто могкт в чем суть данного явления?
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 28 2011, 08:03
Сообщение #21


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(tim_s80 @ Dec 28 2011, 00:40) *
Прояснмие кто могкт в чем суть данного явления?

Динамически изменяемый mu. Быстрый вход в захват и маленькая СКО в стационарном режиме. ИМХО в данном случае что-то вида шаманства, лучше тогда уж лучше NLMS реализовать.

ЗЫ. Вы если что интересное, по этой теме, нароете выкладывайте сюда. Если вам не затруднит конечно.

ЗЗЫ. для FPGA не самый хороший вариант, т.к.
1. раздувается разрядность квадрата, так что выхлоп в mu от нее маленький будет.
2. для mu требуется умножитель, что при паралельном обновлении даст увеличение кол-ва умножителей на два порядка фильтра.


--------------------
Go to the top of the page
 
+Quote Post
tim_s80
сообщение Jan 2 2012, 21:10
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-08-10
Пользователь №: 58 866



Всех с наступившим!

Появились следующие вопросы.

1. Предположим на неком фрагменте сигнала был прогнан СМА. На выходе сформировался фильтр W, через который прогнав исходный сигнал получаем некое созвездие, но не совсем идеальное. Насколько я понял из источников, для QAM СМА поверхность является мултимодальной и в этом случае на конечный результат очень большую роль может играть начальная установка эквалайзера. Насколько имеет смысл с точки зрения улучшения качества выхода те же данные еще раз прогнать через СМА, но с начальной установкой эквалайзера коэффициентами, полученными на первой иттерации?

2. Есть рекомендации применения связки СМА-DDLMS.
Первый подвопрос. Если СМА реализован при Т/2, то DDLMS тоже должен быть Т/2 или имеет смысл перейти на Т?
Второй подвопрос. При включении DDLMS имеет смысл начально фильтр устанавливать в выходное состояние СМА или опять ...00100...?

3. После применения Т/2 СМА (мультимодуль) выходное созвездие получается так, что внешние точки сведены хуже чем внутренние. И исли по внутренним точкам вроде бы допустимо включать DDLMS, то по внешним точкам опасно. Что может быть причиной, сущность СМА или по тем или иным причинам (времени не хватило на схождение, шаг неправильно выбран, ...) алгоритм не в полную силу отработал?

4. Встретил такое понятие "tap-leakage". Это реально полезная штука или что то из серии высокой теории, которая на практике редко нужна?
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 2 2012, 21:24
Сообщение #23


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(tim_s80 @ Jan 2 2012, 16:10) *
Насколько имеет смысл с точки зрения улучшения качества выхода те же данные еще раз прогнать через СМА, но с начальной установкой эквалайзера коэффициентами, полученными на первой иттерации?

если вы работаете в офлайне, то почему бы нет.
Цитата
Первый подвопрос. Если СМА реализован при Т/2, то DDLMS тоже должен быть Т/2 или имеет смысл перейти на Т?

на лету будете местоположение фильтра изменять ? sm.gif FSE/TSE эквалайзеры описывают частотный домен работы фильтра, а не то, откуда беруться отчеты для адаптации. Отчеты нужно брать после решающей функции (восстановления тактовой частоты) иначе будет бред.
Цитата
Второй подвопрос. При включении DDLMS имеет смысл начально фильтр устанавливать в выходное состояние СМА или опять ...00100...?

если устанавливать в исходное тогда смысл CMA? wink.gif
Цитата
3. После применения Т/2 СМА (мультимодуль) выходное созвездие получается так, что внешние точки сведены хуже чем внутренние.

хмм, как я понимаю речь о КАМ16. не встречал такого. модельку в матлабе можете привезти ?
Цитата
4. Встретил такое понятие "tap-leakage". Это реально полезная штука или что то из серии высокой теории, которая на практике редко нужна?

это великое, но иногда полезное шаманство в LMS алгоритмах. В FSE эквалайзерах я такое использовал, в TSE не приходилось. Фактически это добавление шума к сигналу, для адаптации. Помогает избежать гуляния эквалайзера по траектории равной СКО и предотвратить уход в разнос, при работе с сигналом с разряженой корреляционной матрицей.


--------------------
Go to the top of the page
 
+Quote Post
tim_s80
сообщение Jan 2 2012, 21:47
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-08-10
Пользователь №: 58 866



Цитата
на лету будете местоположение фильтра изменять ? sm.gif FSE/TSE эквалайзеры описывают частотный домен работы фильтра, а не то, откуда беруться отчеты для адаптации. Отчеты нужно брать после решающей функции (восстановления тактовой частоты) иначе будет бред.

Т.е. фильтр один, Т/2, а корректируется он с разных алгоритмов?

Цитата
если устанавливать в исходное тогда смысл CMA? wink.gif

С учетом того,что я сейчас работаю чисто в оффлайне, возможно и вопросы специфические. Подразумевается, что на вход DDLMS не исходный сигнал подается, а после предварительного исправления СМА.

Цитата
хмм, как я понимаю речь о КАМ16. не встречал такого. модельку в матлабе можете привезти ?

Это я заметил не по модели, а потем данным, которые я давалл ссылки в первых постах темы
http://electronix.ru/forum/index.php?act=a...st&id=64055

Цитата
гуляния эквалайзера по траектории равной СКО.

Что означает траектория СКО?

Сообщение отредактировал tim_s80 - Jan 2 2012, 21:49
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 2 2012, 22:08
Сообщение #25


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(tim_s80 @ Jan 2 2012, 16:47) *
Т.е. фильтр один, Т/2, а корректируется он с разных алгоритмов?

если TSE эквалайзер то T/2 T, если FSE то в другом домене фильтр стоит %)
Цитата
Это я заметил не по модели, а потем данным, которые я давалл ссылки в первых постах темы

смотреть надо, может быть эквалайзер построен не правильно или настроен не верно. мне сырые данные ни о чем не говорят по сути вопроса.
Цитата
Что означает траектория СКО?

в книгах вы же видели поверхности СКО, которыми оперируют при обсуждении сходимости эквалайзеров? там есть линии, двигаясь по которым коэффициенты фильтра будут изменяться, а значение СКО нет.


--------------------
Go to the top of the page
 
+Quote Post
tim_s80
сообщение Jan 2 2012, 22:20
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-08-10
Пользователь №: 58 866



Цитата(des00 @ Jan 3 2012, 01:08) *
если TSE эквалайзер то T/2, если FSE то в другом домене фильтр стоит %)

Мож наоборот?
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 2 2012, 22:23
Сообщение #27


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(tim_s80 @ Jan 2 2012, 17:20) *
Мож наоборот?

а ну да, глючу уже под утро %)


--------------------
Go to the top of the page
 
+Quote Post
tim_s80
сообщение Jan 2 2012, 23:12
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-08-10
Пользователь №: 58 866



При SNR=15 и M=16 вроде бы работает.
При SNR=35 и М=64 (и при 256) уходит в разнос.
В чем причина может быть?


Код
clear;
SNR = 15;
M = 16;  %
%---Формирование опорного созвездия----------------

k = log2(M);
alphaRe = [-(2*sqrt(M)/2-1):2:-1 1:2:2*sqrt(M)/2-1];
alphaIm = [-(2*sqrt(M)/2-1):2:-1 1:2:2*sqrt(M)/2-1];
%
ip = [0:M-1];
ipBin = dec2bin(ip.');
%
ipDecRe = bin2dec(ipBin(:,[1:k/2]));
ipGrayDecRe = bitxor(ipDecRe,floor(ipDecRe/2));
%
ipDecIm = bin2dec(ipBin(:,[k/2+1:k]));
ipGrayDecIm = bitxor(ipDecIm,floor(ipDecIm/2));
%
modRe = alphaRe(ipGrayDecRe+1);
modIm = alphaIm(ipGrayDecIm+1);
% опорное созвездие
QAMmod = modRe + j*modIm;
%--------------------------------------------------
L = 9; % Длина эквалайзера
u_cma = 1e-4;
u_lms = 2e-3;

W = 3.2;% Свойства канала

N = 10000; %размер сигнала

% Радиус для СМА
qaml=(abs(QAMmod)).^4;
qam2=(abs(QAMmod)).^2;
R2=qaml/qam2;


a = zeros(N,1); % Исходна последовательность
x = zeros(N,1); % Последовательность после канала
y = zeros(N-(L-1),1);
y1 = zeros(N-(L-1),1);


% ------Формирование потока данных-------

Ind_d=randsrc(1,N,1:M);
a=QAMmod(Ind_d);

%-------------------------------------------------------
h = zeros(1,3); % ИХ канала
for n =1:3,
    h(n) = 0.5*(1 + cos(2*pi*(n-2)/W));
end

x=filter(h,1,a); %прохождение через канал
x = awgn(x,SNR);
%-------------------------------------------------------


%------Обработка данных--------------------
for k=1:N-L+1,
    X(k,:) = x(k:k+L-1); % Преобразование входного потока в матричное представление относительно тапов эквалайзера
end

w(1,1:L) = 0; % Подготовка эквалайзера
w(1,(L+1)/2) = 1; % Начальная установка эквалайзера

for k = 1:N-(L-1),
    y(k) = X(k,:) * w(k,:)';
    e(k) = y(k)*(R2 - abs(y(k))^2);
    w(k+1,:) = w(k,:) + u_cma * e(k)' * X(k,:); % Формирование новой оценки эквалайзера
    
% Нахождение ближайшей опорной точки для дальнейшего применения DD-LMS
raz=QAMmod-y(k);
min_raz=find(raz==min(raz));
y1(k)=QAMmod(min_raz(1));

%------------------------------------------------------------
    %DD-LMS
    if (abs(y1(k) - y(k)) < 0.75) % Запуск DD-LMS при определенном пороге
        e(k) = y1(k) - y(k);
        if (abs(e(k)) < 0.5)
            w(k+1,:) = w(k,:) + 2*u_lms * abs(e(k))^2 * e(k)' * X(k,:);
        else
            w(k+1,:) = w(k,:) + 2*u_lms * e(k)' * X(k,:);
        end
    end
end

%--Вспомогательные операции-------------------------------------


figure(1);
subplot(2,2,1),plot(x(fix(N/2):N-(L-1)),'*');
subplot(2,2,2),plot(y(fix(N/2):N-(L-1)),'*');

elog = 10*log(abs(e).*abs(e))/log(10);
subplot(2,2,3:4),plot(elog);


Сообщение отредактировал tim_s80 - Jan 3 2012, 11:52
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 3 2012, 09:37
Сообщение #29


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(tim_s80 @ Jan 2 2012, 18:12) *
В чем причина может быть?

код посмотрю.

Начал запускать скрипт, смотрю цифры очень странные. У вас пороги по годдарду неправильно посчитанны %)

считать пороги надо так
Код
qaml=sum((abs(QAMmod)).^4);
qam2=sum((abs(QAMmod)).^2);
R2=qaml/qam2;


Дальше пока не смотрел.

ЗЫ. свой код в теги оформите или модератора раздела попросите.

UPD. SNR в каких то странных у вас попугаях.
сам виноват, забыл что скрипт не пересчитвается при запуске по частям %)

UPD2
нормировал созвездие, отключил обновление коэффициенов эквалайзера, убрал искажения, убрал шум. добавил расчет СКО

mse(k) = abs(y(k) - y1(k)).^2;

результат в приложении. Очень странно что по мере расчета, ошибка по точке становится не нулевой. как это возможно, если коэффициенты эквалайзера не изменяются, не понятно. Ошибки в реализации фира у вас точно нет ?
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Go to the top of the page
 
+Quote Post
tim_s80
сообщение Jan 3 2012, 11:46
Сообщение #30


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-08-10
Пользователь №: 58 866



По поводу R2 разница между "моим" подходом и вашим вроде бы не существенная и я пока не заметил ее влияния на качество обработки.

После коррекции кода типа

u_cma=1/(1000*L*mean(abs(QAMmod).^2));
u_lms=u_cma*50;

Получилось

SNR=15 M=16
Прикрепленное изображение


SNR=35 M=64

Прикрепленное изображение


но для М=256 даже и близко не получается (ни при увеличении SNR, ни при увеличении числа итераций N).

О какой потенциальной ошибке реализации фира идет речь, вроде бы просто матричное умножение, где там намудрить можно?

Прикрепленное изображение



В общем получилось, но не более чем методом научного тыка.
И не совсем понятна зависимость - u_lms почему то должно быть больше чем u_cma, хотя логичнее предположить, что в конце для уменьшения остаточной ошибки шаг адаптации должен быть меньше.

Сообщение отредактировал tim_s80 - Jan 3 2012, 18:30
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 08:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01512 секунд с 7
ELECTRONIX ©2004-2016