des00 25 22 мая, 2011 Опубликовано 22 мая, 2011 · Жалоба При реализации алгоритма согласно "Adaptive Filter Theory. Simon Naykin": При реализации в Matlab получается, что всё расходится: у кого как, у меня все работает ;) ЗЫ. на этом форуме выкладывал разные модельки именно эквалайзеров в симулинке Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 6 22 мая, 2011 Опубликовано 22 мая, 2011 · Жалоба у кого как, у меня все работает ;) ЗЫ. на этом форуме выкладывал разные модельки именно эквалайзеров в симулинке Ну не нужно человеку рабочее, наглядное, по десятому разу перетёртое :) Wanderer.I Всё же нужно, ответил в личку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex_os 0 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба У меня работают две следующие схемы подстройки коэффициентов и дают практически одинаковый результат Это Вам повезло с каналом :). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg76 0 23 мая, 2011 Опубликовано 23 мая, 2011 (изменено) · Жалоба Это Вам повезло с каналом :). Это работает в плохих каналах АБГШ, а также в каналах для проводных модемов с плотными сигнальными созвездиями (v.32bis) :laughing: Изменено 23 мая, 2011 пользователем Serg76 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Это работает в плохих каналах АБГШ, а также в каналах для проводных модемов с плотными сигнальными созвездиями (v.32bis) :laughing: два, три луча поставьте или спектральный ноль децибел в 20 ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex_os 0 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Это работает в плохих каналах АБГШ, а также в каналах для проводных модемов с плотными сигнальными созвездиями (v.32bis) :laughing: Я бы сказал, что это хорошо работает для каналов, AЧХ которых симметрична относительно несущей и как-то работает для всех остальных каналов. Например: x - последовательность комплексных символов на выходе передатчика; y - вход корректора; h = [1, 0.1i] - ИХ канала. Тогда y_re(i) = x_re(i) - 0.1 * x_im(i-1) т.е. для приведенной ИХ, если рассматривать квадратуры не зависимо друг от друга, межсимвольная интерференция выглядит как помеха от квадратурного канала и ни какими силами ее не возможно отфильтровать . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg76 0 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба два, три луча поставьте или спектральный ноль децибел в 20 ;) На многолучевке не проверял, поэтому ничего сказать не могу, но вскоре такой шанс представится Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wanderer.I 0 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Я бы сказал, что это хорошо работает для каналов, AЧХ которых симметрична относительно несущей и как-то работает для всех остальных каналов. Например: x - последовательность комплексных символов на выходе передатчика; y - вход корректора; h = [1, 0.1i] - ИХ канала. Тогда y_re(i) = x_re(i) - 0.1 * x_im(i-1) т.е. для приведенной ИХ, если рассматривать квадратуры не зависимо друг от друга, межсимвольная интерференция выглядит как помеха от квадратурного канала и ни какими силами ее не возможно отфильтровать . Т.е. к примеру качестве модели канала, лучше использовать фильтр с комплексной импульсной характеристикой и чтобы комплексная часть и мнимые не совпадали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 6 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Т.е. к примеру качестве модели канала, лучше использовать фильтр с комплексной импульсной характеристикой и чтобы комплексная часть и мнимые не совпадали? Разумеется в реальной жизни лучи имеют произвольный сдвиг фаз друг относительно друга. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex_os 0 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Т.е. к примеру качестве модели канала, лучше использовать фильтр с комплексной импульсной характеристикой и чтобы комплексная часть и мнимые не совпадали? Конечно! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wanderer.I 0 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Вот только после изучения всего добра, всё равно не заработало ничего, всё расходится. :( Шаг я так понимаю 0.01 вполне нормальный.А вот неправильный вариант успешно работает. То ли дело в том что импульсная характеристика канала для мнимой и действительной части у меня одинаковая. Буду дальше экспериментировать с несимметричной. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 23 мая, 2011 Опубликовано 23 мая, 2011 (изменено) · Жалоба Wanderer.I: Вот только после изучения всего добра, всё равно не заработало ничего, всё расходится. sad.gif Шаг я так понимаю 0.01 вполне нормальный. Конечно, правильным является использование комплексного алгоритма. Не надо забывать, что либо e, либо u должны быть комплексно сопряженные в формуле пересчета коэффициентов. Что касается шага - он вообще говоря, зависит от длины фильтра. Советую использовать nlms, где в качестве шага используется величина = 1/(сумма квадратов значений линии задержки). Изменено 23 мая, 2011 пользователем thermit Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wanderer.I 0 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Конечно, правильным является использование комплексного алгоритма. Не надо забывать, что либо e, либо u должны быть комплексно сопряженные в формуле пересчета коэффициентов. Что касается шага - он вообще говоря, зависит от длины фильтра. Советую использовать nlms, где в качестве шага используется величина = 1/(сумма квадратов значений линии задержки). Конечно NLMS лучше, но мне нужен конкретно LMS просто. Вот что у меня получилось для BPSK: Однако стоит только помять сигнал на КАМ-4,всё сразу ломается(импульсная характеристика расходится). Смотрел я примеры, но в чём разница не пойму. Может ли проблема быть в модели канала? Что ещё может быть я не знаю. lms_test.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex_os 0 24 мая, 2011 Опубликовано 24 мая, 2011 · Жалоба To Wanderer.I Нужно сделать примерно так 1. Включить режим QAM4, h = [1, 0], w- все нули в середине единица. 2 Добиться работы в этих условиях. На начальном этапе адаптацию можно выключить и убедится что e получается равной нулю. Потом включить адаптацию и убедится что не разваливается. 3. Поставить h = [1, 0.2j] и убедится что корректор работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 24 мая, 2011 Опубликовано 24 мая, 2011 · Жалоба Что-то вроде этого должно быть: 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; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться