Rst7 5 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба Господа, что-то у меня совсем голова не варит, не могу сформулировать правильный вопрос для гугли. Ситуация следующая: Есть некий тракт передачи сигнала, есть его импульсный отклик. Есть ли возможность (и если есть - как это сделать) построить на основе этого отклика коэффициенты для КИХ-фильтра (для простоты - с той же частотой дискретизации, что и оцифровка самого отклика на единичный импульс), чтобы скомпенсировать этим фильтром в первом приближении неравномерность АЧХ в желаемой полосе частот, в более общем случае - убрать эффекты дисперсии и многолучевого распространения (допустим, зануление коэффициента передачи на каких-либо частотах отсутствует, нет провалов до нуля за счет интерференции, ну и вообще цифры неравномерности в канале адекватны, скажем, 10...20дБ) ? Допустим, вычислительные возможности неограниченны - расчет компенсационного фильтра нужно производить один раз в оффлайне - характеристики тракта практически неизменны. На пальцах вроде получается так - из импульсного отклика получаем амплитудно-фазовую частотную характеристику (ну на самом деле для каждой частоты получаем I и Q), затем инвертируем амплитуды относительно единичного усиления и изменяем знак фаз на противоположный. Затем - обратное преобразование. Вот момент инверсии амплитуд I=1/I, Q=1/Q в купе с изменением знака фазы вызывает сомнение. Или фазу тогда уже не требуется менять? Или надо делать операцию (1+j)/Z? Ну и такое преобразование не очень понятно с точки зрения компенсации многолучевости. Или может есть правильный способ? ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба Допустим, вычислительные возможности неограниченны - расчет компенсационного фильтра нужно производить один раз в оффлайне - характеристики тракта практически неизменны. RLS эквалайзер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба На пальцах вроде получается так - из импульсного отклика получаем амплитудно-фазовую частотную характеристику (ну на самом деле для каждой частоты получаем I и Q), затем инвертируем амплитуды относительно единичного усиления и изменяем знак фаз на противоположный. Затем - обратное преобразование. Вот момент инверсии амплитуд I=1/I, Q=1/Q в купе с изменением знака фазы вызывает сомнение. Или фазу тогда уже не требуется менять? Инвертируем модуль комплексного числа, фазу меняем на комплексно сопряжённую. Ну и такое преобразование не очень понятно с точки зрения компенсации многолучевости. Или может есть правильный способ? ;) Обычно используют MMSE эквалайзеры, т. е. учитывают не только обратную характеристику канала но и шум, чтобы его не усиливать. Тема подробно разбирается применительно к демодуляции OFDM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба Инвертируем модуль комплексного числа, фазу меняем на комплексно сопряжённую. Да, точно. Спасибо. RLS эквалайзер Обычно используют MMSE эквалайзеры А можно ссылочки на вменяемую теорию этого дела? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба А можно ссылочки на вменяемую теорию этого дела? Например у Прокиса можно почитать на тему эквалайзеров по критериям пикового искажения и минимума среднеквадратичной ошибки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба дробноинтервальные LMS/DFE или MMSE/DFE с RLS не советую связываться, он хоть и быстро сходится (гораздо быстрее двух выше), но намучаетесь с параметром "забывания" ----- добавлено ----- неравномерность 10-20 ДБ это уже немало, важно еще, сколько таких провалов в спектре будет от этого будет зависеть длина корректора т.е. простыми словами, сможет ли корректор (кусочно-непрерывная ф-ция) аппроксимировать передаточную хар-ку, обратную искажениям в канале для классических feedforward LMS, RLS, MSE длина может оказаться недопустимо большой, что скажется как на вычислительных ресурсах, так и скорости и глубине сходимости. Маленькая длина не позволит достаточно минимизировать СКО. Поэтому желательно введение решающей обратной связи в схему корректора (Decision Feedback Equalizer, DFE). Правда, в этом случае, обучать корректор следует очень аккуратно, он становится очень неусточивым к большим ошибкам(выбросам,импульсам), разнесет к чертовой бабушке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба Так, подождите, господа, не так быстро. Я так понимаю, что все предложенные эквалайзеры заточены под онлайн-обучение. У меня ситуация чуть другая - есть импульсная характеристика, снятая с хорошей точностью, практически без шумов, лишних выбросов и прочих помех. Вот на основе ее и надо построить коэффициенты. Не нужно сложностей типа адаптации на ходу, тракт у меня считается стабильный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба тогда может в лоб: задаем желаемую АЧХ сигнала Hs, из которой вычитаем измеренную Hс, получаем He делаем обратное пребразование Фурье от (Hs + He), получаем импульсную характеристику Корректора во временной обрасти вроде так навскидку, если ничего не попутал Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба тогда может в лоб Да я тоже примерно об этом речь и вел в первом посте, про "на пальцах". При размышлении стал ясен следующий момент - если дополнительные трассы укладываются в длительность импульсного отклика (понятное дело, что его длинна конечна в реальной жизни и совпадает с длинной корректирующего фильтра), то они будут скомпенсированны. Пока вроде так, опять же, если не напутал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sinc_func 0 11 мая, 2011 Опубликовано 11 мая, 2011 (изменено) · Жалоба тогда может в лоб... Непонятно - почему не опробовать такой подход Вот "ползет" по буферу задержки эта входная импульсная последовательность, выбранный фрагмент умножается на соответствующие коэффициенты FIR-фильтра, на выходе "выползает" задержанный дельта-импульс... -Но это же в Matlabe обычная переопределенная задача, когда уравнений больше чем, неизвестных коэффициентов, решается методом минимизацией квадратов отклонения... а фактически - это одна строчка записи Matlab-a x=A\b; Естественно, размерности фильтра и задержки - придется подобрать практически Изменено 11 мая, 2011 пользователем sinc_func Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба Вот "ползет" по буферу задержки эта входная импульсная последовательность, Собственно импульсная характеристика? выбранный фрагмент умножается на соответствующие коэффициенты FIR-фильтра, На какие именно коэффициенты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sinc_func 0 11 мая, 2011 Опубликовано 11 мая, 2011 (изменено) · Жалоба Собственно импульсная характеристика? Я практиковал этот способ одно время для синтеза коэффициентов нестандартных фильтров В вашем случае - запускаем дельта-импульс в ваш фильтр (канал) и из него "выползает" импульсная характиристика, далее - ее вводим в компенсирующий фильтр - и из него "выползает" задержанный дельта-импульс (в идеале) Для каждого такта мы можем представить содержимое линии задержки компенсирующего фильтра (все известно), далее это содержимое умножается на неизвестные коэффициенты и суммируется - это FIR -фильтр - Для каждого такого обсчета - на выходе - ноль, кроме места где стоит дельта-импульс (где его поставить - это вопрос творческий).. Уравнений здесь естественно много больше чем неизвестных коэффициентов фильтра, да и строгого равенства в уравнениях выше там быть не может Матлаб такие системы решает минимизацией суммы квадратов отклоненний Там уже в нем это все встроено и решается обратно-слэшовым делением И задача сводится к тому , чтобы набить матрицы A (строки - поток данных в буфере FIR фильтра) и вектора(столбец) b (выход - нули, кроме места дельта импульса) После синтеза коэффициентов: x=A\b; делается подстановка коэффициентов и смотрится, что получилось практически - как упоминалось выше - точного равенства там нет - и при необходимости меняется размер FIR фильтра и позиция выходного дельта-импульса -------------------------------------------- То есть если сделаем просто перемножение матриц обратно A*x =b2 как среднеквадратичное приближение к b (желаемому результату) - для понимания - наиболее просто именно такое представление Изменено 12 мая, 2011 пользователем sinc_func Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mad_kvmg 0 13 мая, 2011 Опубликовано 13 мая, 2011 · Жалоба Так, подождите, господа, не так быстро. Я так понимаю, что все предложенные эквалайзеры заточены под онлайн-обучение. У меня ситуация чуть другая - есть импульсная характеристика, снятая с хорошей точностью, практически без шумов, лишних выбросов и прочих помех. Вот на основе ее и надо построить коэффициенты. Не нужно сложностей типа адаптации на ходу, тракт у меня считается стабильный. Онлайн-обучение не является обязательным, если у Вас на входе известный сигнал. Например компенсационный фильтр, форма АЧХ которого выбирается в соответствие с требованиями к коррекции частотных потерь в обрабатываемом сигнале, может быть рассчитан оффлайн. Критерий расчета может быть минимум СКО. Недавно только у Васильва и Муро об этом читал. Авторы отмечают, что методика расчета ошибки при воспроизведение АЧХ достаточна сложна, но дают ссылку на Рабинер Л. Теория и применение цифровой обработки сигналов. 1978 г., там более подробна рассмотрена эта проблематика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 59 13 мая, 2011 Опубликовано 13 мая, 2011 · Жалоба Господа, что-то у меня совсем голова не варит, не могу сформулировать правильный вопрос для гугли. Ситуация следующая: Есть некий тракт передачи сигнала, есть его импульсный отклик. Есть ли возможность (и если есть - как это сделать) построить на основе этого отклика коэффициенты для КИХ-фильтра (для простоты - с той же частотой дискретизации, что и оцифровка самого отклика на единичный импульс), чтобы скомпенсировать этим фильтром в первом приближении неравномерность АЧХ в желаемой полосе частот, в более общем случае - убрать эффекты дисперсии и многолучевого распространения (допустим, зануление коэффициента передачи на каких-либо частотах отсутствует, нет провалов до нуля за счет интерференции, ну и вообще цифры неравномерности в канале адекватны, скажем, 10...20дБ) ? Есть методика построения цифрового фильтра по заданной АЧХ (графически заданной например ). Почитать можно у Айфичер Э. Джервис Б. Цифровая обработка сигналов. Практический подход. 2-е издание. 2004г. Очень доступно и ясно все излагают. http://lord-n.narod.ru/download/books/wall...vis.B.part1.rar http://lord-n.narod.ru/download/books/wall...vis.B.part2.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex_os 0 14 мая, 2011 Опубликовано 14 мая, 2011 · Жалоба Примерно то, о чем писал sinc_func. Lf = 40; % длина фильтра-корректора h = randn(5,1); % импульсная характеристика тракта H = convmtx(h, Lf); d = zeros(length(h)+Lf-1,1); d(fix(end/2)) = 1; % желаемая ИХ системы тракт-корректор f = pinv(H)*d; % ИХ фльтра-корректора % рисуем d и то что получилось фактически plot(1:length(d), d, 1:length(d), conv(f,h)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться