Подскажите- как вычислить Периодическую акф для кода(gps) ?

Форум, посвященный общим вопросам, связанным с MATLAB

Модератор: Admin

Lirika
Пользователь
Сообщения: 40
Зарегистрирован: Пн окт 25, 2010 6:24 pm

Подскажите- как вычислить Периодическую акф для кода(gps) ?

Сообщение Lirika » Вт ноя 02, 2010 2:37 pm

Необходимо построить именно ПЕРИОДИЧЕСКУЮ
акф-
так что функция xcorr
CorA=xcorr(L1_TM1)
не подойдет.
Может есть специальная команда для периодической АКФ
или может кто-то знает как создать м файл для её вычисления
{код L1_TM_11(1,245520)}.
Заранее спасибо за помощь

sandy
Эксперт
Сообщения: 5589
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Сообщение sandy » Ср ноя 03, 2010 9:43 am

Варианты:
1. Через БПФ согласно свойствам периодической АКФ.
2. Взять два периода сигнала, вычислить xcorr с одним периодом этого же сигнала, из результата вырезать нужный кусок.
3. Тупо написать цикл с циклическим сдвигом сигнала
С уважением

Александр Сергиенко

Lirika
Пользователь
Сообщения: 40
Зарегистрирован: Пн окт 25, 2010 6:24 pm

Сообщение Lirika » Чт ноя 04, 2010 4:54 pm

я правильно понимаю
что если использовать ДПФ-
если я хочу построить (например)- 4 периода Период.АКФ моего кода L1_TM_11
то код д.б.:
N=4;%количество периодов
h=ones(1,N);
Pcor=real(ifft(abs(fft(L1_TM_11)).^2));
t=kron(h,Pcor);
z=0:1:length(t)-1;
plot(z,t)
grid on

Если я не права, буду рада выслушать замечания(тк ещё очень слабо ориентируюсь в матлабе :oops: )
Заранее спасибо за помощь

sandy
Эксперт
Сообщения: 5589
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Сообщение sandy » Вс ноя 07, 2010 9:10 pm

Вроде все нормально, только использовать kron для того, чтобы повторить вектор четыре раза - это, пожалуй, перебор. Есть средства попроще, например repmat.
С уважением



Александр Сергиенко

Lirika
Пользователь
Сообщения: 40
Зарегистрирован: Пн окт 25, 2010 6:24 pm

Сообщение Lirika » Пн ноя 08, 2010 5:39 pm

спасибо.
появился еще 1 вопрос
можно ли
Pcor=ifft(abs(fft(L1_TM_11)).^2);
так использовать...
т.е. без real?
там же вроде и так мнимости нет, или я что-то путаю?
Заранее спасибо за помощь

sandy
Эксперт
Сообщения: 5589
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Сообщение sandy » Пн ноя 08, 2010 8:09 pm

Как говорится, можно, только осторожно... При точных вычислениях вы должны получить вещественный результат, но из-за погрешностей численных расчетов он вполне может содержать микроскопическую мнимую часть (как правило, на уровне 10^-15...10^-13). Поэтому real стоит оставить.
С уважением



Александр Сергиенко

Lirika
Пользователь
Сообщения: 40
Зарегистрирован: Пн окт 25, 2010 6:24 pm

Сообщение Lirika » Чт ноя 11, 2010 6:29 pm

Понятно.
а не подскажите как сделать(код) для вычисления этой же самой ПАКФ, но без ОДПФ, а просто через циклический сдвиг сигнала?
Заранее спасибо за помощь

sandy
Эксперт
Сообщения: 5589
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Сообщение sandy » Чт ноя 11, 2010 10:28 pm

цикл, а в цикле circshift, перемножение и суммирование. Только зачем?
С уважением



Александр Сергиенко

Lirika
Пользователь
Сообщения: 40
Зарегистрирован: Пн окт 25, 2010 6:24 pm

Сообщение Lirika » Чт ноя 11, 2010 10:36 pm

а это не уменьшит время обработки?
если нет то и вправду незачем))
Заранее спасибо за помощь

sandy
Эксперт
Сообщения: 5589
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Сообщение sandy » Чт ноя 11, 2010 10:59 pm

Уменьшит время обработки как раз расчет в частотной области - благодаря БПФ.
С уважением



Александр Сергиенко