|
|
  |
Слепые эквалайзеры, Определение типа канала без априорной информации |
|
|
|
Oct 7 2007, 13:41
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 1-10-07
Пользователь №: 30 974

|
Цитата(petrov @ Oct 7 2007, 17:17)  В общем случае мы не можем зная только канал домножить сигнал на какую-то "обратную" характеристику и сделать возможным демодуляцию сигнала модемом без эквалайзера. В теории так должно быть - на практике естественно не обязательно. Цитата(petrov @ Oct 7 2007, 17:17)  Мы не сможем тактироваться не зная ничего о сигнале. Мы не сможем тактироваться по искажённому сигналу. Мы не сможем сделать эквалайзер незная ничего о сигнале. Такт не всегда важен можно воспользоваться дробным. Цитата(petrov @ Oct 7 2007, 17:17)  Это если сигнал/шум позволяет получать правильные решения. Однако мы стараемся как можно ближе к границе Шеннона подобраться. Это надо будет попдробнее обдумать - пока везде где про DD читал вроде бы работали только от одного символа, может я и ошибаюсь - надо будет посмотреть. Цитата(petrov @ Oct 7 2007, 17:17)  Что за EVA? DFE позволяет справится с неминимально фазовыми каналами. DFE - надо будет поднять вопросы сходимость в слепых условиях. EVA - eigenvector algorithm - лежит распечатка на буржуйском сам не знаю где именно валяется - коллега подогнал - глубинную математику этого алгоритма не знаю от куда у неё ноги растут, а на поверхности лежит "известное" матричное уравнение и от него пляшут - вот моя реализация разобрать что-то сложно но вообщем работает. Не обращай внимание много хлама в этом файле для исследования, а сейчас его править не охото.
|
|
|
|
|
Oct 7 2007, 13:46
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 1-10-07
Пользователь №: 30 974

|
% +------+ n(k) +------+ %d(k)==>| h(k) |==> + ==>v(k)==>||====>| e(k) |==>x(k) % +------+ \\ +------+ % \\ % \\ +------+ % ==>| f(k) |==>y(k) % +------+ % C - момент четвертого порядка('кросc-эксцесс'): % C = E{|y(k)|^2*V(k)*V'(k)}-E{|y(k)|^2}E{V(k)*V'(k)}-E{y(k)*V(k)}E{y'(k)*V'(k)}-E{y'(k)*V(k)}E{y(k)*V'(k)} function [oEqualizerOutput oEqualizerPulseCharacteristic] =... DK_EVA_EQ_Signal(iData,iEqualizerPulseCharacteristic,iEVAFunction,Srez,R,Iter); global Color; global QAM; global SignalBER; lCounter = length(iEqualizerPulseCharacteristic)-1; lLength = length(iEqualizerPulseCharacteristic); oEqualizerOutput = zeros(length(iData),1); oEqualizerPulseCharacteristic = iEqualizerPulseCharacteristic; CostFunction = 0; figure(10); ErrorMassive = zeros(Srez,1); Dispercion = 0; DispercionMassive = zeros(fix(length(iData)/Srez)+1,1); InverseR = R^-1; while (lCounter < length(iData))&&(lCounter < Iter) lCounter = lCounter + 1; lFIRData = iData(lCounter-lLength+1:lCounter); lCurrentEVAOutput = iEVAFunction.'*lFIRData; lCurrentEqualizerOutput = oEqualizerPulseCharacteristic.'*lFIRData; oEqualizerOutput(lCounter) = lCurrentEqualizerOutput; CrossExcess = DK_EVACurtosis(iData,iEVAFunction,R,lLength); [EvaVector d] = eig(InverseR*CrossExcess);d = diag(d); EvaVector = EvaVector(:,find(abs(d) == max(abs(d)),1)); iEVAFunction = EvaVector; oEqualizerPulseCharacteristic = EvaVector; Error = 0; ErrorMassive(mod(lCounter,Srez)+1) = Error; CostFunction=(CostFunction*(lCounter-1)+ Error.*Error)/lCounter; %Dispercion = Dispercion+abs(DKqamdemod(lCurrentEqualizerOutput,QAM)-lCurrentEqualizerOutput)^2; if (mod(lCounter,Srez) == 0 || lCounter == lLength) %figure(10); %DispercionMassive(fix(lCounter/Srez)+1) = Dispercion/(Srez-1); %Dispercion = 0; %plot(Srez:Srez:length(DispercionMassive)*Srez,DispercionMassive,'b'); %title('Dispersion'); %pause(0.01); end; end; figure(11); subplot(2,1,1); hold on; plot(Srez:Srez:length(DispercionMassive)*Srez,DispercionMassive,Color); text(length(DispercionMassive)*Srez,DispercionMassive(end),'EVA'); title('Dispersion'); hold off; subplot(2,1,2); hold on; plot(1:length(oEqualizerPulseCharacteristic),real(oEqualizerPulseCharacteristic) ,Color); text(length(oEqualizerPulseCharacteristic),oEqualizerPulseCharacteristic(end),'EVA'); title('Eq Coefficients'); hold off;
function EVACurtosis = DK_EVACurtosis(iData,iEVAFunction,R,lLength); lCounter = lLength-1; A = zeros(lLength);B = 0;C = zeros(lLength,1); D = zeros(1,lLength);E = zeros(lLength,1);F = zeros(1,lLength); while (lCounter < length(iData)) lCounter = lCounter + 1; lFIRData = iData(lCounter-lLength+1:lCounter); lCurrentEVAOutput = iEVAFunction.'*lFIRData; A = A + abs(lCurrentEVAOutput)^2*lFIRData*lFIRData'; B = B + abs(lCurrentEVAOutput)^2; C = C + lCurrentEVAOutput*lFIRData; D = D + lCurrentEVAOutput'*lFIRData'; E = E + lCurrentEVAOutput'*lFIRData; F = F + lCurrentEVAOutput*lFIRData'; end; lCounter = lCounter - lLength+1; A = A/lCounter;B = B/lCounter;C = C/lCounter;D = D/lCounter;E = E/lCounter;F = F/lCounter; EVACurtosis = A-B*R-C*D-E*F;
|
|
|
|
|
Oct 7 2007, 13:49
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 1-10-07
Пользователь №: 30 974

|
function [oEqualizerPulseCharacteristic,EvaFunction,R] = DKEVAInitialization(iEqualizerPulseLength,iData);
oEqualizerPulseCharacteristic = zeros(iEqualizerPulseLength,1); oEqualizerPulseCharacteristic(round(iEqualizerPulseLength/2)) = 1; EvaFunction = zeros(iEqualizerPulseLength,1); EvaFunction(round(iEqualizerPulseLength/2)) = 1; r = zeros(iEqualizerPulseLength); for k = 1:length(iData)-iEqualizerPulseLength r = r + iData(k:k+iEqualizerPulseLength-1)*iData(k:k+iEqualizerPulseLength-1)'; end; R = r/(length(iData)-iEqualizerPulseLength);
|
|
|
|
|
Oct 7 2007, 14:03
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(Nadir @ Oct 7 2007, 17:41)  В теории так должно быть - на практике естественно не обязательно.  Что же это за теория тогда такая? Цитата(Leshii @ Oct 7 2007, 17:47)  Мож кто-нибудь подскажет основную идею в двух словах как у DFE получается усиливать сигнал из под шума, при этом не усиливая шум? Вычитаются из сигнала предыдущие продетектированные(уже без шума соответственно) символы. Во временной области представлять, сначала как в канале два луча с задержкой складываются, затем DFE из текущего символа вычитает предыдущие сложившиеся в канале. Цитата(Leshii @ Oct 7 2007, 17:47)  В схеме GSM например, оценивание канала и последующий эквалайзер Витерби относится к схеме, способной бороться со спектральными нулями? Да. Эквалайзер витерби сильно не практичный для каналов с длинной памятью и сигналов с большим количеством точек в созвездии.
|
|
|
|
|
Oct 7 2007, 14:07
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 1-10-07
Пользователь №: 30 974

|
Цитата(petrov @ Oct 7 2007, 17:49)   Что же это за теория тогда такая? Будем исходить из того что у нас есть модель канала и принятый сигнал. Если мы инвертируем АЧХ канала, возьмем БПФ от сигнал и в спектральной области их перемножим а потом опять вернемся во временную тогда у нас получится исходный сигнал - других теорий я незнаю. Если я не прав, то где.А вообще кое-где так и поступают:"С технологией OFDMA конкурирует технология Wireless MAN-SC, которую выбрала для перспективного оборудования IEEE 802.16a российская компания НПП "Саит". В отличие от OFDM все данные передаются на одной несущей. В результате многолучевого распространения сигнал подвергается сильным искажениям, которые можно рассматривать как возникающую неравномерность частотной характеристики канала. Технология предусматривает перевод сигнала из временной в частотную область с помощью быстрого преобразования Фурье. В частотной области неравномерность характеристик канала компенсируется специальной обработкой — адаптивным цифровым эквалайзером в частотной области. Исправленный таким образом сигнал подвергается обратному преобразованию Фурье (переводится во временную область) и направляется на демодулятор. Это преобразование может выполняться непосредственно на антенне, и при использовании многоантенной системы демодулятор будет обрабатывать композитный сигнал, полученный из нескольких исправленных цифровой обработкой "плохих" сигналов."-журнал Последняя Миля- Цитата(petrov @ Oct 7 2007, 18:03)  Вычитаются из сигнала предыдущие продетектированные(уже без шума соответственно) символы. Во временной области представлять, сначала как в канале два луча с задержкой складываются, затем DFE из текущего символа вычитает предыдущие сложившиеся в канале. Давайте будем различать DFE и DD - в DFE отсчеты не поступают на решатель а сразу идут в обратную связь.
|
|
|
|
|
Oct 7 2007, 14:13
|
Частый гость
 
Группа: Новичок
Сообщений: 120
Регистрация: 28-01-05
Пользователь №: 2 256

|
Цитата(Nadir @ Oct 7 2007, 18:07)  Давайте будем различать DFE и DD - в DFE отсчеты не поступают на решатель а сразу идут в обратную связь. Ну ка поясните, по моему Вы что-то путаете.
|
|
|
|
|
Oct 7 2007, 14:17
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(Nadir @ Oct 7 2007, 18:04)  Будем исходить из того что у нас есть модель канала и принятый сигнал. Если мы инвертируем АЧХ канала, возьмем БПФ от сигнал и в спектральной области их перемножим а потом опять вернемся во временную тогда у нас получится исходный сигнал - других теорий я незнаю. Если я не прав, то где. Эта операция конечно приведёт к устранению МСИ, но при наличии провалов в АЧХ канала заполненых шумом усиленный шум ещё большую ошибку внесёт чем МСИ, кроме того чтоб ноль скомпенсировать импульсная характеристика линейного фильтра должна быть бесконечно длинной. Цитата(Nadir @ Oct 7 2007, 18:04)  А вообще кое-где так и поступают:"С технологией OFDMA конкурирует технология Wireless MAN-SC, которую выбрала для перспективного оборудования IEEE 802.16a российская компания НПП "Саит". В отличие от OFDM все данные передаются на одной несущей. В результате многолучевого распространения сигнал подвергается сильным искажениям, которые можно рассматривать как возникающую неравномерность частотной характеристики канала. Технология предусматривает перевод сигнала из временной в частотную область с помощью быстрого преобразования Фурье. В частотной области неравномерность характеристик канала компенсируется специальной обработкой — адаптивным цифровым эквалайзером в частотной области. Исправленный таким образом сигнал подвергается обратному преобразованию Фурье (переводится во временную область) и направляется на демодулятор. Это преобразование может выполняться непосредственно на антенне, и при использовании многоантенной системы демодулятор будет обрабатывать композитный сигнал, полученный из нескольких исправленных цифровой обработкой "плохих" сигналов."-журнал Последняя Миля- Тут ничего сказать нельзя, это не теория, у них там много чего может быть сделано о чём здесь не написано.
|
|
|
|
|
Oct 7 2007, 14:19
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 1-10-07
Пользователь №: 30 974

|
Цитата(Leshii @ Oct 7 2007, 18:13)  Ну ка поясните, по моему Вы что-то путаете. Извините вру - сам уже запутался
|
|
|
|
|
Oct 7 2007, 14:22
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 1-10-07
Пользователь №: 30 974

|
Цитата(petrov @ Oct 7 2007, 18:17)  Эта операция конечно приведёт к устранению МСИ, но при наличии провалов в АЧХ канала заполненых шумом усиленный шум ещё большую ошибку внесёт чем МСИ, кроме того чтоб ноль скомпенсировать импульсная характеристика линейного фильтра должна быть бесконечно длинной. Я как раз про теорию и говорил - если все бесконечно и шума нет и т.д и т.п. Было приятно пообщаться, но извините надо идти дела...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|