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

 
 
15 страниц V  « < 12 13 14 15 >  
Reply to this topicStart new topic
> структура модема при 8psk
fontp
сообщение Oct 17 2013, 15:04
Сообщение #196


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (Виктор39 @ Oct 16 2013, 18:27) *
получается, что к алгоритму DDE(data directed estimation) не возможно прикрутить никак непрерывную(или периодическую) частотную синхронизацию?!


Вы же говорили, что у вас есть фапч. Вот пусть узкополосный фапч с tanlock по мягким решениям и управляет входным ddc, убирая медленное вращени созвездия. А внутри петли пусть себе работает dde. Чтобы этот узкополостный фапч схватился, ему нужно подсунуть начальное значение частоты с точностью порядка его шумовой полосы. Чтобы определить их один раз ( а не непрерывно или периодически ) и нужен feedforward алгоритм по преамбуле. Если у фапч полоса достаточно узкая (фапч медленней времени замираний ) он не почувствует что там вытворяет dde или fse эквалайзер.
Стучать по петле обратной связи периодически или непрерывно, конечно, не очень
Go to the top of the page
 
+Quote Post
Виктор39
сообщение Oct 18 2013, 14:31
Сообщение #197


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 8-02-13
Из: Минск
Пользователь №: 75 542



Цитата(fontp @ Oct 17 2013, 18:04) *
Вы же говорили, что у вас есть фапч. Вот пусть узкополосный фапч с tanlock по мягким решениям и управляет входным ddc, убирая медленное вращени созвездия. А внутри петли пусть себе работает dde. Чтобы этот узкополостный фапч схватился, ему нужно подсунуть начальное значение частоты с точностью порядка его шумовой полосы. Чтобы определить их один раз ( а не непрерывно или периодически ) и нужен feedforward алгоритм по преамбуле. Если у фапч полоса достаточно узкая (фапч медленней времени замираний ) он не почувствует что там вытворяет dde или fse эквалайзер.
Стучать по петле обратной связи периодически или непрерывно, конечно, не очень

у меня фапч встроен только в схему где применяется DFE. если я правильно понимаю, то tanlock loop по несущей работает по одному отсчету на символ. а на вход DDE у меня поступает 2 отсчета на символ. пробовал сделать предварительную синхронизацию Гарднера совместно с tanlock по несущей, и на вход DDE подавать уже один отсчет на символ, но это значительно ухудшает качество работы DDE. что я не правильно делаю?


Цитата(alex_os @ Oct 17 2013, 07:36) *
Почему нельзя?? Оценка ИХ канала есть. Смещение несущей будет проявляться как вращение коэф ИХ во времени. Берете максимальный коэф. в ИХ и смотрите куда вращается. Для компенсации большой начальной расстройки не подойдет, т.к. DDE развалится, а для устранения влияния медленного ухода частоты в следствии допплера или еще чего-либо самое то.

очень интересно. у меня две ИХ для четных и нечетных отсчетов. мне нужно максимальный коэффициент с учетом двух ИХ брать для его оценки вращения (типа так max(oddWeight + evenWeight))? и еще вот такая проблемка. с течением времени степень влияния лучей изменяется. т.е. может так случиться, что в какой-то момент времени максимальный коэффициент ИХ перестанет быть максимальным. это нужно как-то учитывать?
Go to the top of the page
 
+Quote Post
Виктор39
сообщение Oct 24 2013, 14:50
Сообщение #198


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 8-02-13
Из: Минск
Пользователь №: 75 542



столкнулся со следующей проблемой: алгоритм DDE способен работать даже при небольших соотношениях сигнал/шум, в том случае, если изначально ИХ канала рассчитана более-менее хорошо. в тех случаях, когда ИХ измерена плохо, либо алгоритму DDE удается скорректировать ИХ в течение нескольких последующих кадров, либо он просто разваливается. ИХ канала при маленьком отношении сигнал/шум (2-5дБ) измеряется очень плохо. есть ли способы которые как-то уменьшают влияние шума на рассчитываемую ИХ? я имею ввиду, может быть можно рассчитывать ИХ не на N известных отсчетах(пр N известных отсчетах длинна ИХ равна M = N/2 - 1), а на большем интервале времени.? т.е. взять больше количество известных отсчетов (N) для неизменной длинны ИХ (M). преамбула позволяет это сделать.
Go to the top of the page
 
+Quote Post
Виктор39
сообщение Oct 25 2013, 12:45
Сообщение #199


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 8-02-13
Из: Минск
Пользователь №: 75 542



можете ли мне сказать, правильно ли я задаю шум в канале? в стандарте мне указан уровень шума в полосе 3 кГц. в моей модельке на выходе передатчика частота дискретизации 19,2 кГц. правильно ли будет добавить уровень шума следующим образом:
SNR = SNR - A + B;
где A = 10*log10(9600/3000);
B = 10*log10(E_full/E_3000), где E_full - мощность всего сигнала, E_3000 - мощность сигнала в полосе 3 кГц
Go to the top of the page
 
+Quote Post
Виктор39
сообщение Oct 29 2013, 11:48
Сообщение #200


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 8-02-13
Из: Минск
Пользователь №: 75 542



я никак не могу найти алгоритм, который мог бы работать с типом сигнала, где биты передаются с помощью ортогональных последовательностей Уолша(MIL-STD-188-141B, ст.284, BW0, BW1, BW3, BW4). подскажите, пожалуйста, какой алгоритм нужно использовать и/или где об этом можно почитать ?!
Go to the top of the page
 
+Quote Post
alex_os
сообщение Oct 29 2013, 15:53
Сообщение #201


Знающий
****

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



Цитата(Виктор39 @ Oct 29 2013, 15:48) *
я никак не могу найти алгоритм, который мог бы работать с типом сигнала, где биты передаются с помощью ортогональных последовательностей Уолша(MIL-STD-188-141B, ст.284, BW0, BW1, BW3, BW4). подскажите, пожалуйста, какой алгоритм нужно использовать и/или где об этом можно почитать ?!

Нужно гуглить что-то вроде "Maximum likelihood sequence estimation"


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Виктор39
сообщение Oct 30 2013, 06:33
Сообщение #202


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 8-02-13
Из: Минск
Пользователь №: 75 542



Цитата(alex_os @ Oct 3 2013, 09:40) *
Та разновидность сигнала, где Уолшем передаются биты, в эквалайзере не нуждается, там нечто-то вроде
Rake receiver нужно.

Цитата(alex_os @ Oct 29 2013, 19:53) *
Нужно гуглить что-то вроде "Maximum likelihood sequence estimation"


эти два сообщения как-то связаны между собой?
Go to the top of the page
 
+Quote Post
alex_os
сообщение Oct 30 2013, 08:00
Сообщение #203


Знающий
****

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



Цитата(Виктор39 @ Oct 30 2013, 10:33) *
эти два сообщения как-то связаны между собой?

C некоторой натяжкой можно сказать что эти оба метода позволяют найти последовательность модулированных символов, которая будучи свернутой с измеренной ИХ даст максимальную корреляцию с принятой последовательностью.
Т.е задача так ставиться - есть принятые отсчеты y, есть символы которые переносят информацию x = [x1; x2;.....xn]. Есть измеренная ИХ h, для простоты предполагаем что она не изменяется во времени. Требуется найти x. Максимально правдоподобная оценка x будет такая, которая минимизирует евклидово расстояние J = sum( abs( y - conv( x, h ) .^ 2 ) . Т.е. берете все возможные последовательности x и ищете такую , для которого J минимально. Классическое решение
The Viterbi Algorithm FORNEY .

Теперь ключевой момент. Сложность алгоритма Витерби (т.е. число состояний канала ) будет M^(L-1). M - индекс модуляции символов, L длина h в символах. Если символом считать одну из последовательностей Уолша, которыми переносится информация, то L получается не велика ( что-то около 1). Таким образом данный подход будет иметь вполне приемлемую сложность.


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Виктор39
сообщение Oct 30 2013, 11:38
Сообщение #204


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 8-02-13
Из: Минск
Пользователь №: 75 542



Цитата(alex_os @ Oct 30 2013, 12:00) *
C некоторой натяжкой можно сказать что эти оба метода позволяют найти последовательность модулированных символов, которая будучи свернутой с измеренной ИХ даст максимальную корреляцию с принятой последовательностью.
Т.е задача так ставиться - есть принятые отсчеты y, есть символы которые переносят информацию x = [x1; x2;.....xn]. Есть измеренная ИХ h, для простоты предполагаем что она не изменяется во времени. Требуется найти x. Максимально правдоподобная оценка x будет такая, которая минимизирует евклидово расстояние J = sum( abs( y - conv( x, h ) .^ 2 ) . Т.е. берете все возможные последовательности x и ищете такую , для которого J минимально. Классическое решение
The Viterbi Algorithm FORNEY .

Теперь ключевой момент. Сложность алгоритма Витерби (т.е. число состояний канала ) будет M^(L-1). M - индекс модуляции символов, L длина h в символах. Если символом считать одну из последовательностей Уолша, которыми переносится информация, то L получается не велика ( что-то около 1). Таким образом данный подход будет иметь вполне приемлемую сложность.

спасибо большое.
тогда алгоритм может выглядеть следующим образом??? :
1) по преамбуле вычисляется ИХ h с учетом принимаемых 2 отсчетов на символ(т.е. две ИХ для четных и нечетных отсчетов);
2) с учетом длины последовательностей Уолша равной 16 символов, очередных 32 принятых отсчета каким-то образом перемножаются в матричной форме с ИХ таким образом, чтобы получился вектор из 16 символьных значений R(скорее всего мне здесь нужно использовать не ИХ h, а вектор обратный ИХ h. не понимаю, как это сделать?!);
3) методом наименьшего правдоподобия для каждой из возможных последовательностей Уолша W вычисляем евклидово расстояние J = sum( abs( R - conv( W, h ) .^ 2 ). по наименьшему расстоянию J принимаем решение о переданной последовательности T = W (по сути это и есть урезанный декодер Витерби?);
4) основываясь на этих 16-ти решениях T, а также на решениях принятых на предыдущей итерации и импульсной характеристике, 16 принимаемых значений могут быть предсказаны и 16 ошибок между предсказанными и полученными значениями могут быть рассчитаны.
5) эти ошибки затем коррелируют(умножаются и усредняются) с 16-ти принятыми решениями T и с несколькими решениями принятыми на предыдущей итерации(количество определяется длинной ИХ) с соответствующими значениями импульсной характеристики.
6) ИХ обновляется с учетом этих рассчитаных ошибок
7) пункты 2-6 повторяются

Сообщение отредактировал Виктор39 - Oct 30 2013, 12:36
Go to the top of the page
 
+Quote Post
Виктор39
сообщение Oct 31 2013, 08:34
Сообщение #205


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 8-02-13
Из: Минск
Пользователь №: 75 542



не знаю или правильно составил я алгоритм, но в любом случае, по измеренной ИХ мне нужно рассчитать вектор значений обратный ИХ,(т.е. коэффициенты прямого фильтра, или трансверсального фильтра, или коррелятора). скажите, что я не правильно делаю? набросал несколько строк кода. по идее выходной сигнал sigOut должен равняться входному сигналу sigIn с учетом задержки. но что-то не получается.
CODE
function test_Estim_LSE
clear;

sigIn = [2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8];
h = [ 0, 7 , 0, 0, 0, 7, 0, 0, 0]; % ИХ канала
sigFromChannel = filter(h, 1, sigIn);

%% расчет обратных значений ИХ
Lf = 15; % количество коэффициентом
delay = 1;

H = convmtx(h, Lf-length(h)+1);

target = zeros(size(H,1), 1);
target(delay) = 1;

weights = pinv(H' * H) * (H' * target) ;

% Hf = H*f;

%%
sigOut = filter(weights, 1, sigFromChannel);

return;
Go to the top of the page
 
+Quote Post
fontp
сообщение Oct 31 2013, 15:09
Сообщение #206


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (Виктор39 @ Oct 31 2013, 12:34) *
не знаю или правильно составил я алгоритм, но в любом случае, по измеренной ИХ мне нужно рассчитать вектор значений обратный ИХ,(т.е. коэффициенты прямого фильтра, или трансверсального фильтра, или коррелятора). скажите, что я не правильно делаю? набросал несколько строк кода. по идее выходной сигнал sigOut должен равняться входному сигналу sigIn с учетом задержки. но что-то не получается.
CODE
function test_Estim_LSE
clear;

sigIn = [2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8];
h = [ 0, 7 , 0, 0, 0, 7, 0, 0, 0]; % ИХ канала
sigFromChannel = filter(h, 1, sigIn);

%% расчет обратных значений ИХ
Lf = 15; % количество коэффициентом
delay = 1;

H = convmtx(h, Lf-length(h)+1);

target = zeros(size(H,1), 1);
target(delay) = 1;

weights = pinv(H' * H) * (H' * target) ;

% Hf = H*f;

%%
sigOut = filter(weights, 1, sigFromChannel);

return;


Так обратного ИХ может и не быть - он окажется БИХ как раз вашем в случае, когда отсутствует доминирующий луч или коэффициент. Он и так всегда только приблизительный ИХ, а в этом случае даже приблизительно может не получиться
Go to the top of the page
 
+Quote Post
alex_os
сообщение Nov 1 2013, 11:32
Сообщение #207


Знающий
****

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



Цитата(Виктор39 @ Oct 31 2013, 12:34) *
не знаю или правильно составил я алгоритм, но в любом случае, по измеренной ИХ мне нужно рассчитать вектор значений обратный ИХ,(т.е.


Да не должно быть ни каких "обратных ИХ". Пусть s0, s2 ... sn будут символы Уолша длиной 16. Пусть память канала (длина h ) тоже будет 16. Допустим в i-тый момент времени мы знаем состояние канала - s0, т.е знаем какой конкретно символ Уолша передавался. На выходе канала наблюдаем величину y0 (скаляр), допустим сл. символ будет s1, т.е. при смене состояния канала s0 -> s1, будет наблюдаться последовательность Y = [y1, y2.... y16];

Код
y0 = s0.' * h;

y1   = [ s1(1);    s0(1 : end-1)].' * h;
y2   = [ s1(1:2); s0(1 : end-2)].' * h;
y3   = [ s1(1:3); s0(1 : end-3)].' * h;
....
y16 = [ s1].' * h;


Алгоритм следующий: для текущего состояния рассчитываем все возможные последовательности Y1, Y2 ... Yn. Находим последовательность которая имеет наибольшую корреляцию c принятыми отсчетами, скажем наилучший результат дает Y2, устанавливаем текущее состояние в s2 и все повторяется.





--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Corner
сообщение Nov 2 2013, 18:12
Сообщение #208


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

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Цитата(alex_os @ Nov 1 2013, 15:32) *
Да не должно быть ни каких "обратных ИХ". Пусть s0, s2 ... sn будут символы Уолша длиной 16. Пусть память канала (длина h ) тоже будет 16. Допустим в i-тый момент времени мы знаем состояние канала - s0, т.е знаем какой конкретно символ Уолша передавался. На выходе канала наблюдаем величину y0 (скаляр), допустим сл. символ будет s1, т.е. при смене состояния канала s0 -> s1, будет наблюдаться последовательность Y = [y1, y2.... y16];

Код
y0 = s0.' * h;

y1   = [ s1(1);    s0(1 : end-1)].' * h;
y2   = [ s1(1:2); s0(1 : end-2)].' * h;
y3   = [ s1(1:3); s0(1 : end-3)].' * h;
....
y16 = [ s1].' * h;


Алгоритм следующий: для текущего состояния рассчитываем все возможные последовательности Y1, Y2 ... Yn. Находим последовательность которая имеет наибольшую корреляцию c принятыми отсчетами, скажем наилучший результат дает Y2, устанавливаем текущее состояние в s2 и все повторяется.

По одной последовательности на пороге С/Ш такой алгоритм косячить будет. Надо корректировать с некоторым соотношением между старыми и новыми коэффициентами. Хотя-бы полусумма между старыми и новыми значениями.
Go to the top of the page
 
+Quote Post
alex_os
сообщение Nov 5 2013, 06:13
Сообщение #209


Знающий
****

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



Цитата(Corner @ Nov 2 2013, 22:12) *
По одной последовательности на пороге С/Ш такой алгоритм косячить будет. Надо корректировать с некоторым соотношением между старыми и новыми коэффициентами. Хотя-бы полусумма между старыми и новыми значениями.

Не понял, чего корректировать и какие коэффициенты имеются ввиду?


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Виктор39
сообщение Nov 19 2013, 12:32
Сообщение #210


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 8-02-13
Из: Минск
Пользователь №: 75 542



здравствуйте. не могу решить следующую задачку:

преамбула состоит из 15 следующих значений: 0,1,3,0,1,3,1,2,0,D1,D2,C1,C2,C3,0
каждому значению преамбулы соответсnвует скремблированная ортогональная последовательность УОлша длинной в 32 канальных символа. данная преамбула повторяется несколько раз подряд. первая часть преамбулы мне известна (0,1,3,0,1,3,1,2,0), она состоит из 288 канальных символов. вторая часть (D1,D2,C1,C2,C3) мне предварительно не известна, в ней передается информация о типе передаваемых данных. так вот, по первой части преамбулы(0,1,3,0,1,3,1,2,0), если я правильно понимаю, мне нужно обнаружить начало сигнала, рассчитать частотную ошибку (+-75Гц), а также измерить импульсную характеристику канала... никак не могу придумать как я могу использовать преамбулу максимально выгодно.

например, я пробую по первым 6 значениям преамбулы(0,1,3,0,1,3), т.е. 192-ум канальным символам, обнаружить сигнал и рассчитать его частотную ошибку следующим образом: непрерывно сворачиваю 96 канальных символа(соответствующих трем значениям преамбулы 0,1,3) с предыдущими 96-ью символами. и когда последовательности будут совпадать, пик будет максимальный. далее рассчитывая разность фаз между соответcтвующими символами сворачиваемых последовательностей, с учетом задержки, не трудно рассчитать частоту. но есть две проблемки. первая, при таком методе не учитываются ортогональные свойства преамбулы, и пик получается очень размытый. в плохих каналах, при различных замираниях, пик может быть смещен на несколько символов в одну из сторон. но все бы хорошо, ведь я могу с помощью измеренной импульсной характеристики найти потом точку синхронизации. но проблема в том, что таким методом максимальная частотная ошибка, которую я могу измерить равна +-25Гц, а мне нужно +-75Гц. с помощью fft(свернуть часть принятой преамбулы с известными передаваемыми данными, выделив таким образом частотную ошибку, затем сделать fft ) я не могу рассчитать частотную ошибку, так как точка синхронизации известна с некой погрешностью(в несколько символов).

пробовал сделать банк фильтров, с коррелирующей последовательностью равной 48 символов. проблема в том, что для этого я не могу брать символы из первой части преамбулы (0,1,3,0,1,3), так как они повторяются, и по этой причине будет находиться два пика. это не есть хорошо. так как я могу пропустить нужный пик из-за замирания, и словить ложный. если брать в качестве коррелирующей последовательности обнаружения последующие символы (1,2,0), то у меня ничего не остается на расчет частотной ошибки и на измерение ИХ канала...

больше адекватных мыслей у меня нету. может у кого-нибудь есть варианты, что можно сделать...
Go to the top of the page
 
+Quote Post

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

 


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


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