|
Beek algoritm |
|
|
|
Apr 12 2016, 09:40
|
Местный
  
Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640

|
Цитата(KalashKS @ Apr 12 2016, 13:04)  Смотря что считать эффективностью. Можно попрововать упростить реализацию. Спасибо за ответ! я считаю под эффективностью дисперсию оценки. Рассмотрел различные варианты: модуль разности циклического префикса (СP) и его копии, квадрат разности модулей СP и его комплексно сопряженной копии, а также корреляцию и алгоритм Beek Beek дает хороший результат, но придумали его 20 лет назад! разве более эффективного(с точки зрения точности или вычислительных затрат) за 20 лет ничего не появилось? Или эта проблема исчерпала себя и ушли в использование тренировочных последовательностей и пилотов для синхры
|
|
|
|
|
Apr 12 2016, 11:16
|
Местный
  
Группа: Участник
Сообщений: 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
|
|
|
|
|
Apr 13 2016, 18:45
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Ivan55 @ Apr 13 2016, 19:31)  andyp, спасибо за полезную информацию, кстати возник вопрос тоже рассматривал алгоритм SCA но ее метрика имеет неудобную форму, как вы по ней определяли начало полезной части символа? знаю что берут производную от метрики и там где идет плоская область производная близка к нулю, но при наличии шумов АБГШ там появляются искажения... как вы определяли? Буду благодарен за помощь в этом вопросе Я этот обнаружитель несколько не по прямому назначению использовал  - использовал с него грубую оценку частотного сдвига и собственно сам факт детекции периодического в моем случае сигнала. После него делал частотную коррекцию и искал известную преамбулу обычным согласованным фильтром вокруг позиции, найденной SCА. Плюсы этого подхода -Робастность SCA к многолучевости канала -Это позволило сузить область неопределенности и вычислительные затраты при поиске. -Улучшило статистику на выходе СФ, так как грубая оценка частотного сдвига у меня была до поиска СФ. -Метрика SC не зависит от мощности сигнала на входе, что тоже удобно. Точно оценивать временное положение сигнала с помощью SCA я бы не стал - там реально производная метрики по задержке в районе максимума маленькая, так что минимальный шум будет приводить к большой дисперсии оценки временного положения. PS Кстати, анализ показывает, что метрика Van De Beek примерно также плоха, как и SCA в случае, если мощность принимаемого сигнала постоянна - в обоих случаях задача сводится к поиску максимума модуля корреляции двух повторяющихся кусков сигнала.
Сообщение отредактировал andyp - Apr 13 2016, 18:57
|
|
|
|
|
May 5 2016, 05:37
|
Местный
  
Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640

|
Всем доброго дня! Нашел одну интересную статью
wen2008__1_.pdf ( 710.07 килобайт )
Кол-во скачиваний: 115результат впечатляет, осталось тока понять что они делали  кто может помочь? попытался реализовать не получилось, смысл понял так что они делят символ на блоки по 16 отсчетов и эти блоки коррелируют формула (7). Может в формуле чего то нехватает, например непонятно что за m=1,2,... и в знаменателе второй корень почемуто без +N
|
|
|
|
|
May 5 2016, 08:38
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Ivan55 @ May 5 2016, 08:37)  Всем доброго дня! Нашел одну интересную статью
wen2008__1_.pdf ( 710.07 килобайт )
Кол-во скачиваний: 115результат впечатляет, осталось тока понять что они делали  кто может помочь? попытался реализовать не получилось, смысл понял так что они делят символ на блоки по 16 отсчетов и эти блоки коррелируют формула (7). Может в формуле чего то нехватает, например непонятно что за m=1,2,... и в знаменателе второй корень почемуто без +N Под корнем автор N похоже забыл. С помощью m=1,2,... автор попытался математическим языком выразить, сколько блочных корреляционных коэффициентов у него получается. Ну т.е. если разбить область его область поиска на блоки размером B (пусть N, L делится на B нацело), то у него всего (2N+L)/B блоков. Автор коррелирует блок с номером m с блоком с номером m+N/B. Итого у него получится (N+L)/B корр. коэффициентов.
|
|
|
|
|
May 5 2016, 09:09
|
Местный
  
Группа: Участник
Сообщений: 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)); Правильно ли я реализовал то о чем там говорится?
|
|
|
|
|
May 5 2016, 09:19
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Ivan55 @ May 5 2016, 12:09)  Правильно ли я реализовал то о чем там говорится? Да вроде похоже на правду - короткие (длиной в guard) места с высокой корреляцией, а между ними мусор.
|
|
|
|
|
May 5 2016, 09:30
|
Местный
  
Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640

|
Цитата(andyp @ May 5 2016, 13:19)  Да вроде похоже на правду - короткие (длиной в guard) места с высокой корреляцией, а между ними мусор. тогда есть несколько вопросов: 1. почему через каждые три идет широкий пик? 2. как определять начало символьного интервала?
Сообщение отредактировал Ivan55 - May 5 2016, 09:34
|
|
|
|
|
May 5 2016, 09:48
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Ivan55 @ May 5 2016, 12:30)  тогда есть несколько вопросов: 1. почему через каждые три идет широкий пик? 2. как определять начало символьного интервала? 1. Видимо, надо блоки (те что Observation Interval называются) с перекрытием Nfft брать. 2. Сравнивать с порогом если охота с точностью до длины блока, ну или по нескольким блокам усреднять, как авторы советуют, а потом сравнивать с порогом.
|
|
|
|
|
May 5 2016, 11:16
|
Местный
  
Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640

|
Цитата(andyp @ May 5 2016, 13:48)  2. Сравнивать с порогом если охота с точностью до длины блока, ну или по нескольким блокам усреднять, как авторы советуют, а потом сравнивать с порогом. т.е. точность оценки будет равна длинне блока? если блок равен 16 то с точностью 16 отсчетов?
|
|
|
|
|
May 5 2016, 11:36
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Ivan55 @ May 5 2016, 14:16)  т.е. точность оценки будет равна длинне блока? если блок равен 16 то с точностью 16 отсчетов? Так в статье написано. Между блоками оценок корреляции нет.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|