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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Beek algoritm
Ivan55
сообщение Apr 11 2016, 17:52
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640



Есть вопрос к знатокам

Кто нибудь находил более эффективные методы синхронизации по циклическому префиксу, чем ML алгоритм?

Заранее спасибо
Go to the top of the page
 
+Quote Post
KalashKS
сообщение Apr 12 2016, 09:04
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 7-02-11
Пользователь №: 62 755



Смотря что считать эффективностью. Можно попрововать упростить реализацию.
В исходном варианте алгоритм требует знания ОСШ. Его мы, как правило, на этапе синхронизации знать не будем. Интересны два варианта: принять его равным бесконечности или нулю. В первом случае энергия сигнала входит в расчет метрики с единичным весом, во втором - с нулевым, то есть остается только коррелятор. Коррелятор сам по себе оказывется проще, но дает плохую точность временной синхронизации из-за непостоянства мощности сигнала, которая искажает форму корреляционного пика. Спастись от этого можно либо учетом измеренной энергии (в варианте с бесконечным ОСШ), либо применением знакового коррелятора, но только для временной синхронизации. Для частотной знаковый коррелятор неприменим.
Go to the top of the page
 
+Quote Post
Ivan55
сообщение Apr 12 2016, 09:40
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640



Цитата(KalashKS @ Apr 12 2016, 13:04) *
Смотря что считать эффективностью. Можно попрововать упростить реализацию.


Спасибо за ответ!
я считаю под эффективностью дисперсию оценки. Рассмотрел различные варианты: модуль разности циклического префикса (СP) и его копии, квадрат разности модулей СP и его комплексно сопряженной копии, а также корреляцию и алгоритм Beek

Beek дает хороший результат, но придумали его 20 лет назад! разве более эффективного(с точки зрения точности или вычислительных затрат) за 20 лет ничего не появилось? Или эта проблема исчерпала себя и ушли в использование тренировочных последовательностей и пилотов для синхры
Go to the top of the page
 
+Quote Post
andyp
сообщение Apr 12 2016, 11:16
Сообщение #4


Местный
***

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



Цитата(Ivan55 @ Apr 12 2016, 12:40) *
Beek дает хороший результат, но придумали его 20 лет назад! разве более эффективного(с точки зрения точности или вычислительных затрат) за 20 лет ничего не появилось? Или эта проблема исчерпала себя и ушли в использование тренировочных последовательностей и пилотов для синхры



Еще один 20-ти летний алгоритм, основанный на автокорреляции, который можно рассмотреть - метрика Schmidl-Cox:
Robust frequency and timing synchronization for OFDM
http://ieeexplore.ieee.org/xpl/articleDeta...arnumber=650240

Я ее использовал для быстрого грубого детектирования наличия сигнала.

Методы Van De Beek до сих пор продолжают развивать трудолюбивые корейцы:
http://ieeexplore.ieee.org/xpl/abstractCit...mp;navigation=1

Например, одна их относительно свежих (2008) статей
http://ieeexplore.ieee.org/xpl/articleDeta...rnumber=4678083

Сообщение отредактировал andyp - Apr 12 2016, 14:03
Go to the top of the page
 
+Quote Post
KalashKS
сообщение Apr 13 2016, 13:22
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 7-02-11
Пользователь №: 62 755



Аннотация в последней ссылке напомнила, что при работе с сигналом DVB-t увеличивал точность в том числе фильтрацией оценок, полученных одной из вариаций на тему алгоритма Beek - знаковый коррелятор и стробирование накопления КФ для оценки частоты. Усреднять корреляционные отклики не стал, так как не хватало памяти в тогдашней ПЛИС.
В целом алгоритм Beek оптимален для поиска одного повтора на двух символьных интервалах в гауссовском канале. Вот и пишут, что для увеличения точности нужно увеличивать время наблюдения. Можно фильтрацией одиночных оценок, можно усреднением корреляционных откликов, можно оптимальной обработкой сигнала на большом интервале (статью не читал, не знаю во что такая обработка выльется).

Сообщение отредактировал KalashKS - Apr 13 2016, 13:22
Go to the top of the page
 
+Quote Post
Ivan55
сообщение Apr 13 2016, 16:31
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640



andyp, спасибо за полезную информацию, кстати возник вопрос тоже рассматривал алгоритм SCA но ее метрика имеет неудобную форму, как вы по ней определяли начало полезной части символа? знаю что берут производную от метрики и там где идет плоская область производная близка к нулю, но при наличии шумов АБГШ там появляются искажения... как вы определяли? Буду благодарен за помощь в этом вопросе

Сообщение отредактировал Ivan55 - Apr 13 2016, 16:32
Go to the top of the page
 
+Quote Post
andyp
сообщение Apr 13 2016, 18:45
Сообщение #7


Местный
***

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



Цитата(Ivan55 @ Apr 13 2016, 19:31) *
andyp, спасибо за полезную информацию, кстати возник вопрос тоже рассматривал алгоритм SCA но ее метрика имеет неудобную форму, как вы по ней определяли начало полезной части символа? знаю что берут производную от метрики и там где идет плоская область производная близка к нулю, но при наличии шумов АБГШ там появляются искажения... как вы определяли? Буду благодарен за помощь в этом вопросе


Я этот обнаружитель несколько не по прямому назначению использовал wink.gif - использовал с него грубую оценку частотного сдвига и собственно сам факт детекции периодического в моем случае сигнала. После него делал частотную коррекцию и искал известную преамбулу обычным согласованным фильтром вокруг позиции, найденной SCА.
Плюсы этого подхода
-Робастность SCA к многолучевости канала
-Это позволило сузить область неопределенности и вычислительные затраты при поиске.
-Улучшило статистику на выходе СФ, так как грубая оценка частотного сдвига у меня была до поиска СФ.
-Метрика SC не зависит от мощности сигнала на входе, что тоже удобно.

Точно оценивать временное положение сигнала с помощью SCA я бы не стал - там реально производная метрики по задержке в районе максимума маленькая, так что минимальный шум будет приводить к большой дисперсии оценки временного положения.

PS Кстати, анализ показывает, что метрика Van De Beek примерно также плоха, как и SCA в случае, если мощность принимаемого сигнала постоянна - в обоих случаях задача сводится к поиску максимума модуля корреляции двух повторяющихся кусков сигнала.

Сообщение отредактировал andyp - Apr 13 2016, 18:57
Go to the top of the page
 
+Quote Post
Ivan55
сообщение May 5 2016, 05:37
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640



Всем доброго дня!
Нашел одну интересную статью Прикрепленный файл  wen2008__1_.pdf ( 710.07 килобайт ) Кол-во скачиваний: 115

результат впечатляет, осталось тока понять что они делалиsm.gif кто может помочь?
попытался реализовать не получилось, смысл понял так что они делят символ на блоки по 16 отсчетов
и эти блоки коррелируют формула (7). Может в формуле чего то нехватает, например непонятно что за m=1,2,...
и в знаменателе второй корень почемуто без +N
Go to the top of the page
 
+Quote Post
andyp
сообщение May 5 2016, 08:38
Сообщение #9


Местный
***

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



Цитата(Ivan55 @ May 5 2016, 08:37) *
Всем доброго дня!
Нашел одну интересную статью Прикрепленный файл  wen2008__1_.pdf ( 710.07 килобайт ) Кол-во скачиваний: 115

результат впечатляет, осталось тока понять что они делалиsm.gif кто может помочь?
попытался реализовать не получилось, смысл понял так что они делят символ на блоки по 16 отсчетов
и эти блоки коррелируют формула (7). Может в формуле чего то нехватает, например непонятно что за m=1,2,...
и в знаменателе второй корень почемуто без +N


Под корнем автор N похоже забыл. С помощью m=1,2,... автор попытался математическим языком выразить, сколько блочных корреляционных коэффициентов у него получается. Ну т.е. если разбить область его область поиска на блоки размером B (пусть N, L делится на B нацело), то у него всего (2N+L)/B блоков. Автор коррелирует блок с номером m с блоком с номером m+N/B. Итого у него получится (N+L)/B корр. коэффициентов.
Go to the top of the page
 
+Quote Post
Ivan55
сообщение May 5 2016, 09:09
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640



Цитата(andyp @ May 5 2016, 12:38) *
Под корнем автор N похоже забыл. С помощью m=1,2,... автор попытался математическим языком выразить, сколько блочных корреляционных коэффициентов у него получается. Ну т.е. если разбить область его область поиска на блоки размером B (пусть N, L делится на B нацело), то у него всего (2N+L)/B блоков. Автор коррелирует блок с номером m с блоком с номером m+N/B. Итого у него получится (N+L)/B корр. коэффициентов.

Ну вот смотрите я тут накидал код
Код
clear all; close all; clc;

%% Параметры модели
B = 16;
Nfft = 1024; Ng = Nfft/4; Nofdm = Ng+Nfft; % Параметры OFDM сигнала
nCar = 312;
Nbps = 4; M = 2^Nbps;
Nsym = 30;                % Колличество генерируемых OFDM символов
H_QAM4=modem.qammod('M',M,'PhaseOffset', 0, 'SymbolOrder',...
    'binary', 'InputType', 'bit');
Es = 1; A = (3/2/(M-1)*Es);

%% Формируем N символов OFDM сигнала
tx = [];

fft_in = complex(zeros(Nfft,Nsym),zeros(Nfft,Nsym));
QAM = zeros(Nsym,nCar);
In_Data = randi([0 1],Nsym,nCar*log2(M));
QAM = A*modulate(H_QAM4, In_Data');
fft_in(1:nCar/2,:) = QAM(1:nCar/2,:);
fft_in(end-nCar/2+1:end,:) = QAM(nCar/2+1:end,:);
fft_out = ifft(fft_in);
tx = [fft_out(end-Ng+1:end,:); fft_out]';
tx = reshape(tx', 1, Nsym*Nofdm);


sig=awgn(tx, 20, 'measured', 'dB');
BuffObserv = zeros(1, 2*Nfft+Ng);

buff1 = zeros(1,length(sig)-Nofdm);
P = [];
for num = 1:floor(length(sig)/(2*Nfft+Ng))
    BuffObserv = sig(1, (num-1)*(2*Nfft+Ng)+1:num*(2*Nfft+Ng));
    
    for d = 0:(Nfft+Ng)/B-1
        corr(d+1) = sum(BuffObserv(d*B+(1:B)).*conj(BuffObserv(d*B+(1:B)+Nfft)));
        energ(d+1) = sqrt(sum(abs(BuffObserv(d*B+(1:B)).^2))).*sqrt(sum(abs(BuffObserv(d*B+(1:B)+Nfft).^2)));
    end
    P = [P abs(corr./energ)];
    
end

plot(abs(P));

Правильно ли я реализовал то о чем там говорится?
Go to the top of the page
 
+Quote Post
andyp
сообщение May 5 2016, 09:19
Сообщение #11


Местный
***

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



Цитата(Ivan55 @ May 5 2016, 12:09) *
Правильно ли я реализовал то о чем там говорится?


Да вроде похоже на правду - короткие (длиной в guard) места с высокой корреляцией, а между ними мусор.
Go to the top of the page
 
+Quote Post
Ivan55
сообщение May 5 2016, 09:30
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640



Цитата(andyp @ May 5 2016, 13:19) *
Да вроде похоже на правду - короткие (длиной в guard) места с высокой корреляцией, а между ними мусор.


тогда есть несколько вопросов:
1. почему через каждые три идет широкий пик?
2. как определять начало символьного интервала?

Сообщение отредактировал Ivan55 - May 5 2016, 09:34
Go to the top of the page
 
+Quote Post
andyp
сообщение May 5 2016, 09:48
Сообщение #13


Местный
***

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



Цитата(Ivan55 @ May 5 2016, 12:30) *
тогда есть несколько вопросов:
1. почему через каждые три идет широкий пик?
2. как определять начало символьного интервала?



1. Видимо, надо блоки (те что Observation Interval называются) с перекрытием Nfft брать.
2. Сравнивать с порогом если охота с точностью до длины блока, ну или по нескольким блокам усреднять, как авторы советуют, а потом сравнивать с порогом.
Go to the top of the page
 
+Quote Post
Ivan55
сообщение May 5 2016, 11:16
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640



Цитата(andyp @ May 5 2016, 13:48) *
2. Сравнивать с порогом если охота с точностью до длины блока, ну или по нескольким блокам усреднять, как авторы советуют, а потом сравнивать с порогом.

т.е. точность оценки будет равна длинне блока? если блок равен 16 то с точностью 16 отсчетов?
Go to the top of the page
 
+Quote Post
andyp
сообщение May 5 2016, 11:36
Сообщение #15


Местный
***

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



Цитата(Ivan55 @ May 5 2016, 14:16) *
т.е. точность оценки будет равна длинне блока? если блок равен 16 то с точностью 16 отсчетов?


Так в статье написано. Между блоками оценок корреляции нет.
Go to the top of the page
 
+Quote Post

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

 


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


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