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

 
 
> Реализация LMS для QAM-4
Wanderer.I
сообщение May 18 2011, 10:56
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 23-10-07
Пользователь №: 31 658



Добрый день! Мне нужно реализовать модель приёмника с LMS эквалайзером при КАМ модуляции. Проблема состоит в следующем, мне не совсем понятно как быть в данном случае с квадратурной и синфазной составляющей, должно ли в данном случае присутствовать два эквалайзера один для квадратурной, а другой для синфазной составляющей ( т.е. для каждой составляющей импульсная характеристика будет линейной) или же данный алгоритм должен работать в комплексном виде( импульсная характеристика комплексная)? Дело в том, что все найденные мной описания оперирует с действительными числами.
Go to the top of the page
 
+Quote Post
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 45)
petrov
сообщение May 18 2011, 11:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



В комплексном виде должно работать, на форуме модели в симулинке выкладывались.
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 18 2011, 11:34
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Wanderer.I @ May 18 2011, 13:56) *
Добрый день! Мне нужно реализовать модель приёмника с LMS эквалайзером при КАМ модуляции. Проблема состоит в следующем, мне не совсем понятно как быть в данном случае с квадратурной и синфазной составляющей, должно ли в данном случае присутствовать два эквалайзера один для квадратурной, а другой для синфазной составляющей ( т.е. для каждой составляющей импульсная характеристика будет линейной) или же данный алгоритм должен работать в комплексном виде( импульсная характеристика комплексная)? Дело в том, что все найденные мной описания оперирует с действительными числами.

Делайте для каждого канала свой эквалайзер, в этом случае можно избежать проблемы разбаланса между квадратурами, но больше вычислительных затрат
Go to the top of the page
 
+Quote Post
Wanderer.I
сообщение May 18 2011, 11:47
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 23-10-07
Пользователь №: 31 658



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

Т.е. если я сделаю скажем для каждой компоненты I и Q свой эквалайзер всё должно работать?
Цитата
В комплексном виде должно работать, на форуме модели в симулинке выкладывались.

Мне нужно это реализовать на C( а конвертация из симулинка в C не годится). Первоначально планирую в Matlab написать в виде m файла. А где можно прочесть про реализацию в комплексном виде?

Сообщение отредактировал Wanderer.I - May 18 2011, 11:52
Go to the top of the page
 
+Quote Post
petrov
сообщение May 18 2011, 11:57
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Wanderer.I @ May 18 2011, 15:47) *
Мне нужно это реализовать на C( а конвертация из симулинка в C не годится). Первоначально планирую в Matlab написать в виде m файла. А где можно прочесть про реализацию в комплексном виде?


Ну а мне на VHDL, модели симуликовские они для понимания исключительно, почитать можно у Прокиса.
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 18 2011, 12:00
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Wanderer.I @ May 18 2011, 14:47) *
Т.е. если я сделаю скажем для каждой компоненты I и Q свой эквалайзер всё должно работать?

Естественно, если, конечно,все правильно реализовать
Go to the top of the page
 
+Quote Post
petrov
сообщение May 18 2011, 12:07
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Serg76 @ May 18 2011, 16:00) *
Естественно, если, конечно,все правильно реализовать


Можно поподробнее, не понятно о какой схеме речь, что за разбаланс и т. п.?
Go to the top of the page
 
+Quote Post
Wanderer.I
сообщение May 18 2011, 12:25
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 23-10-07
Пользователь №: 31 658



Цитата
Ну а мне на VHDL, модели симуликовские они для понимания исключительно

В чём их наглядность интересно? Если это чёрный ящик по сути?
Go to the top of the page
 
+Quote Post
petrov
сообщение May 18 2011, 12:30
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Wanderer.I @ May 18 2011, 16:25) *
Если это чёрный ящик по сути?


С чего вы взяли?
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 18 2011, 12:37
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(petrov @ May 18 2011, 15:07) *
Можно поподробнее, не понятно о какой схеме речь, что за разбаланс и т. п.?

Схема квадратурной дискретизации, когда в аналоговом виде осуществляется гетеродинирование и НЧ фильтрация в каждом из подканалов и затем уже независимая оцифровка каждой из компонент. Разбаланс возникает из-за неидеальности характеристик двух плеч. Но, правда, такая схема уже не находит применения, сейчас сигнал дискретизируется непосредственно уже по ПЧ, с последующей обработкой в цифре.
Go to the top of the page
 
+Quote Post
Wanderer.I
сообщение May 18 2011, 12:47
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 23-10-07
Пользователь №: 31 658



Цитата(petrov @ May 18 2011, 15:30) *
С чего вы взяли?

Каким образом можно посмотреть каким образом работает данный блок более детально? Ведь максимум можно увидеть пару кирпичиков, достаточно много функциональных
Go to the top of the page
 
+Quote Post
petrov
сообщение May 18 2011, 13:02
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Serg76 @ May 18 2011, 16:37) *
Схема квадратурной дискретизации, когда в аналоговом виде осуществляется гетеродинирование и НЧ фильтрация в каждом из подканалов и затем уже независимая оцифровка каждой из компонент. Разбаланс возникает из-за неидеальности характеристик двух плеч. Но, правда, такая схема уже не находит применения, сейчас сигнал дискретизируется непосредственно уже по ПЧ, с последующей обработкой в цифре.

У автора топика не об этом вопрос был.

Цитата(Wanderer.I @ May 18 2011, 16:47) *
Каким образом можно посмотреть каким образом работает данный блок более детально? Ведь максимум можно увидеть пару кирпичиков, достаточно много функциональных

Вы слишком предвзято относитесь, на C вы можете пользоваться дллками скрытыми, можете руками делать, и в симулинке так же.
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 18 2011, 13:06
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(petrov @ May 18 2011, 15:57) *
У автора топика не об этом вопрос был.

Понятно, что не об этом. Это Вы меня об этом спрашиваете. Просто я ему посоветовал делать двухканальный эквалайзер, в этом случае, у меня, пок крайней мере, в демодуляторе наблюдался незначительный, но все-таки выигрыш, поэтому я оставил этот вариант.
Go to the top of the page
 
+Quote Post
Wanderer.I
сообщение May 18 2011, 13:10
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 23-10-07
Пользователь №: 31 658



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

Т.е. если я сделаю скажем для каждой компоненты I и Q свой эквалайзер всё должно работать?
Цитата
В комплексном виде должно работать, на форуме модели в симулинке выкладывались.

Мне нужно это реализовать на C( а конвертация из симулинка в C не годится). Первоначально планирую в Matlab написать в виде m файла. А где можно прочесть про реализацию в комплексном виде?

Я видимо немного не так понял тебя, я думал речь идёт о готовых блоках. Теперь всё ясно. Сейчас поиском займусь тогда, спасибо!

Просто всё это дело надо ещё в фикспоинт уложить, поэтому вариант с двумя каналами будет проще.

Сообщение отредактировал Wanderer.I - May 18 2011, 13:20
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 18 2011, 13:33
Сообщение #15


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Wanderer.I @ May 18 2011, 16:10) *
поэтому вариант с двумя каналами будет проще.

Так проще как раз вариант с комплексным корректором, с точки зрения реализации
Go to the top of the page
 
+Quote Post
Wanderer.I
сообщение May 18 2011, 13:36
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 23-10-07
Пользователь №: 31 658



Вычисления все сложнее становятся, так как C в отличие от Matlab комплексные переменные не поддерживает.
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 18 2011, 15:23
Сообщение #17


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Wanderer.I @ May 18 2011, 14:47) *
Мне нужно это реализовать на C( а конвертация из симулинка в C не годится). Первоначально планирую в Matlab написать в виде m файла. А где можно прочесть про реализацию в комплексном виде?

Если нужна скорость обработки, то попробуйте использовать примитивы от Intel + Си компилятор от того же Intel, все это вместе даст СУЩЕСТВЕННЫЙ прирост производительности
Go to the top of the page
 
+Quote Post
alex_os
сообщение May 18 2011, 15:56
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



To Serg76.

Корректор с двумя раздельными каналами для re, im.
И в каждом из каналов коэффициенты корректора вещественные ??


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 18 2011, 16:01
Сообщение #19


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(alex_os @ May 18 2011, 18:56) *
To Serg76.

Корректор с двумя раздельными каналами для re, im.
И в каждом из каналов коэффициенты корректора вещественные ??

да
Go to the top of the page
 
+Quote Post
petrov
сообщение May 18 2011, 16:07
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Serg76 @ May 18 2011, 20:01) *
да


Может чего-то не понимаю, но ИМХО неправильно это, поэтому и вопрос был по конкретной схеме эквалайзера.
Go to the top of the page
 
+Quote Post
alex_os
сообщение May 18 2011, 16:17
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(petrov @ May 18 2011, 20:07) *
Может чего-то не понимаю, но ИМХО неправильно это, поэтому и вопрос был по конкретной схеме эквалайзера.

Присоединяюсь!
Например, ИХ канала h = [1, 0+0.5i] как можно вещественными коэффициентами это скорректировать ?!


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 18 2011, 16:21
Сообщение #22


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(petrov @ May 18 2011, 19:07) *
Может чего-то не понимаю, но ИМХО неправильно это, поэтому и вопрос был по конкретной схеме эквалайзера.

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

Цитата(alex_os @ May 18 2011, 19:17) *
Присоединяюсь!
Например, ИХ канала h = [1, 0+0.5i] как можно вещественными коэффициентами это скорректировать ?!

Отдельно корректировать мнимую и вещественную часть h
Go to the top of the page
 
+Quote Post
petrov
сообщение May 18 2011, 16:38
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Serg76 @ May 18 2011, 20:21) *
Почему неправильно? При подстройке к-ов корректора для каждого из каналов участвует только одна, соответствующая данному квадратурному каналу, проекция вектора ошибки, а если использовать в корректоре для обоих каналов одну и ту же импульсную характеристику (ИХ), то тогда при расчете к-ов ИХ необходимо учитывать общий вклад проекций ошибок обоих каналов. Вроде так где-то, у меня работали оба варианта


Пусть нам даже известна обратная комплексная ИХ канала, соответственно сворачиваем с ней входной сигнал, не существует таких действительных коэффициентов чтобы при умножении отдельно мнимой и действительной части входного сигнала получить аналогичный результат.
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 18 2011, 16:55
Сообщение #24


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(petrov @ May 18 2011, 19:38) *
Пусть нам даже известна обратная комплексная ИХ канала, соответственно сворачиваем с ней входной сигнал, не существует таких действительных коэффициентов чтобы при умножении отдельно мнимой и действительной части входного сигнала получить аналогичный результат.

Может не так объясняю, попробую еще раз. Демодулятор построен по квадратурной схеме, в котором для коррекции МСИ используются 2 корректора, один для коррекции в синфазном канале, другой в квадратурном. Подстройка ИХ каждого из каналов осуществляется независимо, по соответствующим проекциям вектора ошибки. Обе эти ИХ в итоге и будут давать общую комплексную ИХ канала. Или я в чем-то неправ?
Go to the top of the page
 
+Quote Post
petrov
сообщение May 18 2011, 17:41
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Serg76 @ May 18 2011, 20:55) *
Может не так объясняю, попробую еще раз. Демодулятор построен по квадратурной схеме, в котором для коррекции МСИ используются 2 корректора, один для коррекции в синфазном канале, другой в квадратурном. Подстройка ИХ каждого из каналов осуществляется независимо, по соответствующим проекциям вектора ошибки. Обе эти ИХ в итоге и будут давать общую комплексную ИХ канала. Или я в чем-то неправ?


Сигнал комплексный, ИХ эквалайхера комплексная, умножаем (a+bi)*(c+di)=(ac-bd)+(bc+ad)i, очевидно что в действительную часть выходного сигнала входит как действительная так и мнимая часть входного, так и в мнимую часть выходного входит как действительная так и мнимая часть входного сигнала, если у вас так значит у вас комплексный эквалайзер.
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 18 2011, 17:56
Сообщение #26


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(petrov @ May 18 2011, 20:41) *
Сигнал комплексный, ИХ эквалайхера комплексная, умножаем (a+bi)*(c+di)=(ac-bd)+(bc+ad)i, очевидно что в действительную часть выходного сигнала входит как действительная так и мнимая часть входного, так и в мнимую часть выходного входит как действительная так и мнимая часть входного сигнала, если у вас так значит у вас комплексный эквалайзер.

нет, у меня реализовано как описывает автор топика
Go to the top of the page
 
+Quote Post
Wanderer.I
сообщение May 19 2011, 13:56
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 23-10-07
Пользователь №: 31 658



Вот у меня тоже возникли подозрения, что обработка по отдельности квадратур - это неправильно. Так как банальная операция умножения двух комплексных чисел( которая используется в LMS) не равна произведению мнимой и действительной части в отдельности.
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 19 2011, 17:26
Сообщение #28


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Вот работа демодулятора без корректора (слева) и с "неправильным" корректором (справа) laughing.gif



А вот вариант, когда подстройка осуществляется отдельно по синфазному (слева) и квадратурному каналам (справа)

Go to the top of the page
 
+Quote Post
Wanderer.I
сообщение May 22 2011, 10:37
Сообщение #29


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 23-10-07
Пользователь №: 31 658



При реализации алгоритма согласно "Adaptive Filter Theory. Simon Naykin":

Данные формулы получены из комплексного представления сигнала.
При реализации в Matlab получается, что всё расходится:
Код
b = [ 0.00001   0.0004    0.0002   -0.0010    0.0010        0.0039      -0.0120 ...
     -0.0300    -0.1800  -0.1000   -0.0300    0.0020        0.0200       0.0500 ...
      0.0950    -0.0200  -0.3500   -0.3000   -0.1000        0.3970       0.3500 ...
     -0.0300    -0.1800  -0.0223   -0.0100    0.0000205     -0.00000039 -0.000000017...
      0.000001   0.00000008];

x = randint(10000,1,4);
y = modmap(x,1,1,'qask',4);

TXI = y(:,1);
TXQ = y(:,2);

I = conv(TXI, b);
Q = conv(TXQ, b);

%scatterplot(TXI(15:end)+j*TXQ(15:end));

%I = awgn(I,10,'measured');
%Q = awgn(Q,10,'measured');

%scatterplot(I(15:end)+j*Q(15:end));

WI=zeros(55,1);
WQ=zeros(55,1);

mu=0.01;

RX_EQ_I=zeros(1,1);
RX_EQ_Q=zeros(1,1);

RXI = vertcat( zeros(55,1), I(1:end));
RXQ = vertcat( zeros(55,1), Q(1:end));

%компенсация задержки в канале
TXI_D = vertcat( zeros(45,1), TXI );
TXQ_D = vertcat( zeros(45,1), TXQ );

for n=1:5000
    YI=WI'*RXI(n:n+55-1)-WQ'*RXQ(n:n+55-1);
    YQ=WI'*RXQ(n:n+55-1)+WQ'*RXI(n:n+55-1);
    
    
    EI=TXI_D(n)-YI;
    EQ=TXQ_D(n)-YQ;
    
    WI=WI+mu*( EI*RXI(n:n+55-1)-EQ*RXQ(n:n+55-1));
    WQ=WQ+mu*( EI*RXQ(n:n+55-1)+EQ*RXI(n:n+55-1));
    
    RX_EQ_I=[RX_EQ_I YI];
    RX_EQ_Q=[RX_EQ_Q YQ];
    
end

scatterplot(RX_EQ_I(4000:end)+j*RX_EQ_Q(4000:end));


Может я чего-то не так понял?
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 22 2011, 12:51
Сообщение #30


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



У меня работают две следующие схемы подстройки коэффициентов и дают практически одинаковый результат

Go to the top of the page
 
+Quote Post
des00
сообщение May 22 2011, 13:34
Сообщение #31


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

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



Цитата(Wanderer.I @ May 22 2011, 04:37) *
При реализации алгоритма согласно "Adaptive Filter Theory. Simon Naykin":
При реализации в Matlab получается, что всё расходится:

у кого как, у меня все работает wink.gif

ЗЫ. на этом форуме выкладывал разные модельки именно эквалайзеров в симулинке


--------------------
Go to the top of the page
 
+Quote Post
petrov
сообщение May 22 2011, 15:49
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(des00 @ May 22 2011, 17:34) *
у кого как, у меня все работает ;)

ЗЫ. на этом форуме выкладывал разные модельки именно эквалайзеров в симулинке


Ну не нужно человеку рабочее, наглядное, по десятому разу перетёртое :)

Wanderer.I

Всё же нужно, ответил в личку.
Go to the top of the page
 
+Quote Post
alex_os
сообщение May 23 2011, 04:45
Сообщение #33


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(Serg76 @ May 22 2011, 16:51) *
У меня работают две следующие схемы подстройки коэффициентов и дают практически одинаковый результат


Это Вам повезло с каналом sm.gif.


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 23 2011, 05:44
Сообщение #34


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(alex_os @ May 23 2011, 07:45) *
Это Вам повезло с каналом sm.gif.

Это работает в плохих каналах АБГШ, а также в каналах для проводных модемов с плотными сигнальными созвездиями (v.32bis) laughing.gif

Сообщение отредактировал Serg76 - May 23 2011, 05:48
Go to the top of the page
 
+Quote Post
des00
сообщение May 23 2011, 06:02
Сообщение #35


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

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



Цитата(Serg76 @ May 22 2011, 23:44) *
Это работает в плохих каналах АБГШ, а также в каналах для проводных модемов с плотными сигнальными созвездиями (v.32bis) laughing.gif

два, три луча поставьте или спектральный ноль децибел в 20 wink.gif


--------------------
Go to the top of the page
 
+Quote Post
alex_os
сообщение May 23 2011, 06:10
Сообщение #36


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(Serg76 @ May 23 2011, 09:44) *
Это работает в плохих каналах АБГШ, а также в каналах для проводных модемов с плотными сигнальными созвездиями (v.32bis) laughing.gif

Я бы сказал, что это хорошо работает для каналов, AЧХ которых симметрична относительно несущей и
как-то работает для всех остальных каналов.
Например:
x - последовательность комплексных символов на выходе передатчика;
y - вход корректора;
h = [1, 0.1i] - ИХ канала.
Тогда
y_re(i) = x_re(i) - 0.1 * x_im(i-1)

т.е. для приведенной ИХ, если рассматривать квадратуры не зависимо друг от друга,
межсимвольная интерференция выглядит как помеха от квадратурного канала и
ни какими силами ее не возможно отфильтровать .







--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 23 2011, 06:36
Сообщение #37


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(des00 @ May 23 2011, 09:02) *
два, три луча поставьте или спектральный ноль децибел в 20 wink.gif

На многолучевке не проверял, поэтому ничего сказать не могу, но вскоре такой шанс представится
Go to the top of the page
 
+Quote Post
Wanderer.I
сообщение May 23 2011, 07:51
Сообщение #38


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 23-10-07
Пользователь №: 31 658



Цитата(alex_os @ May 23 2011, 10:10) *
Я бы сказал, что это хорошо работает для каналов, AЧХ которых симметрична относительно несущей и
как-то работает для всех остальных каналов.
Например:
x - последовательность комплексных символов на выходе передатчика;
y - вход корректора;
h = [1, 0.1i] - ИХ канала.
Тогда
y_re(i) = x_re(i) - 0.1 * x_im(i-1)

т.е. для приведенной ИХ, если рассматривать квадратуры не зависимо друг от друга,
межсимвольная интерференция выглядит как помеха от квадратурного канала и
ни какими силами ее не возможно отфильтровать .

Т.е. к примеру качестве модели канала, лучше использовать фильтр с комплексной импульсной характеристикой и чтобы комплексная часть и мнимые не совпадали?
Go to the top of the page
 
+Quote Post
petrov
сообщение May 23 2011, 08:22
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Wanderer.I @ May 23 2011, 11:51) *
Т.е. к примеру качестве модели канала, лучше использовать фильтр с комплексной импульсной характеристикой и чтобы комплексная часть и мнимые не совпадали?


Разумеется в реальной жизни лучи имеют произвольный сдвиг фаз друг относительно друга.
Go to the top of the page
 
+Quote Post
alex_os
сообщение May 23 2011, 08:22
Сообщение #40


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(Wanderer.I @ May 23 2011, 11:51) *
Т.е. к примеру качестве модели канала, лучше использовать фильтр с комплексной импульсной характеристикой и чтобы комплексная часть и мнимые не совпадали?

Конечно!


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Wanderer.I
сообщение May 23 2011, 08:35
Сообщение #41


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 23-10-07
Пользователь №: 31 658



Вот только после изучения всего добра, всё равно не заработало ничего, всё расходится. sad.gif Шаг я так понимаю 0.01 вполне нормальный.А вот неправильный вариант успешно работает. То ли дело в том что импульсная характеристика канала для мнимой и действительной части у меня одинаковая. Буду дальше экспериментировать с несимметричной.
Go to the top of the page
 
+Quote Post
thermit
сообщение May 23 2011, 10:25
Сообщение #42


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
Wanderer.I:
Вот только после изучения всего добра, всё равно не заработало ничего, всё расходится. sad.gif Шаг я так понимаю 0.01 вполне нормальный.


Конечно, правильным является использование комплексного алгоритма.
Не надо забывать, что либо e, либо u должны быть комплексно сопряженные в формуле пересчета коэффициентов.
Что касается шага - он вообще говоря, зависит от длины фильтра. Советую использовать nlms, где в качестве шага используется величина = 1/(сумма квадратов значений линии задержки).

Сообщение отредактировал thermit - May 23 2011, 10:27
Go to the top of the page
 
+Quote Post
Wanderer.I
сообщение May 23 2011, 20:44
Сообщение #43


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 23-10-07
Пользователь №: 31 658



Цитата(thermit @ May 23 2011, 14:25) *
Конечно, правильным является использование комплексного алгоритма.
Не надо забывать, что либо e, либо u должны быть комплексно сопряженные в формуле пересчета коэффициентов.
Что касается шага - он вообще говоря, зависит от длины фильтра. Советую использовать nlms, где в качестве шага используется величина = 1/(сумма квадратов значений линии задержки).

Конечно NLMS лучше, но мне нужен конкретно LMS просто. Вот что у меня получилось для BPSK:

Однако стоит только помять сигнал на КАМ-4,всё сразу ломается(импульсная характеристика расходится). Смотрел я примеры, но в чём разница не пойму. Может ли проблема быть в модели канала? Что ещё может быть я не знаю. wacko.gif
Прикрепленный файл  lms_test.rar ( 1000 байт ) Кол-во скачиваний: 89
Go to the top of the page
 
+Quote Post
alex_os
сообщение May 24 2011, 06:43
Сообщение #44


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



To Wanderer.I
Нужно сделать примерно так
1. Включить режим QAM4, h = [1, 0], w- все нули в середине единица.
2 Добиться работы в этих условиях. На начальном этапе адаптацию можно выключить
и убедится что e получается равной нулю. Потом включить адаптацию и убедится
что не разваливается.
3. Поставить h = [1, 0.2j] и убедится что корректор работает.


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
thermit
сообщение May 24 2011, 10:24
Сообщение #45


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Что-то вроде этого должно быть:

Код
clear all;
c4=[1+j -1+j 1-j -1-j];
HI = [ 0.00001   0.0004    0.0002   -0.0010    0.0010        0.0039      -0.0120 ...
      -0.0300    -0.1800  -0.1000   -0.0300    0.0020        0.0200       0.0500 ...
       0.0950    -0.0200  -0.3500   -0.3000   -0.1000        0.3970       0.3500 ...
      -0.0300    -0.1800  -0.0223   -0.0100    0.0000205     -0.00000039 -0.000000017...
       0.000001   0.00000008];
  
HR = [ 0.00001   0.0008    0.0002   -0.0010    0.0010        0.0039      -0.0120 ...
      -0.0300    -0.1900   0.1000   -0.0300    0.0020        0.0200       0.0500 ...
       0.0950    -0.0200  -0.3500   -0.3400   -0.1000        0.470       0.3500 ...
      -0.0300    -0.1800  -0.0223   -0.0100    0.000205      0.00000039  -0.000000117...
       0.000001   0.00000008];

EL=60;
NP=4;
tx=c4(randint(1,10000,NP)+1);

h=complex(HR,HI);


rx=filter(h,1,tx);

u=0.5/(EL*std(rx)^2);
y=lms([zeros(1,(length(h)/2)+EL/2) tx],rx,EL,u);

plot(y(5000:end),'.');




lms.m
Код
function cs = lms(r,t,N,mu)

mem=zeros(1,N);
coeff=zeros(N,1);
cs=[];
for i=1:length(t)
    mem=[t(i) mem(1:end-1)];
    ms=mem*coeff;
    e=r(i)-ms;
    cs=[cs ms];
    coeff=coeff+mem'*mu*e;
end;

return;
Go to the top of the page
 
+Quote Post
Wanderer.I
сообщение May 24 2011, 11:29
Сообщение #46


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 23-10-07
Пользователь №: 31 658



Спасибо большое! Всё заработало. biggrin.gif Я понял в чём ошибка, при выполнение свёртки я брал импульсную характеристику,транспонировал затем брал комплексно-сопряжённую( эрмитово преобразование), а нужно только транспонировать было.

Сообщение отредактировал Wanderer.I - May 24 2011, 17:31
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 05:31
Рейтинг@Mail.ru


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