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

 
 
> Синхронизация методом передискретизации, Фильтры Фарроу, ФАПЧ
ToR_TDA
сообщение Jan 11 2012, 12:34
Сообщение #1


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

Группа: Свой
Сообщений: 133
Регистрация: 7-08-10
Из: Мурманск
Пользователь №: 58 796



Здравствуйте, форумчане!
Есть синусоидальный сигнал частотой 125кГц, который цифруется с частотой 2МГц. Необходимо петлей ФАПЧ засинхронизировать отсчеты при условии возможной отстройки частоты на 100Гц и случайной начальной фазе. Использую фильтр Фарроу, моделирую в Матлабе. Опираюсь на модели Petrova и ссылку Synchronization
Прикрепляю две модели: первая "farrow_2" основана на моделях Petrova и дает положительный результат, вторая "farrow_pll_2" основана на ссылке выше и отказывается работать.
В чем ошибка(и) во второй модели?
P.S. В моделях частота синусоиды 125,1 кГц. Алгоритм будет писаться для DSP.



Прикрепленные файлы
Прикрепленный файл  Farrow.rar ( 18.48 килобайт ) Кол-во скачиваний: 55
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ToR_TDA
сообщение Jan 21 2012, 08:56
Сообщение #2


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

Группа: Свой
Сообщений: 133
Регистрация: 7-08-10
Из: Мурманск
Пользователь №: 58 796



Люди добрые, посмотрите, пожалуйста, алгоритм по которому пишу ФАПЧ на DSP. Составлен по моделям товарища petrov. Может, я уже на этом этапе ошибаюсь.
Код
// N - samples/symbol
NCO = 0;
mu = 0;
v  = 0;
One_SPS = 0;
TEDBuff(3) = 0;
TEDBuff(2) = 0;
TEDBuff(1) = 0;
///////////ЦИКЛ//////////
if NCO < 0
    underflow = 1;
else
    underflow = 0;
end
if underflow == 1
    TEDBuff(3) = TEDBuff(2);
    TEDBuff(2) = TEDBuff(1);
    TEDBuff(1) = Out_Farrow;
    mu = NCO;            // for Farrow interpolator
    One_SPS = not One_SPS;

        if One_SPS == 1
            e = TEDBuff(2) * (TEDBuff(3) - TEDBuff(1));     // Gardner TED
            vp = K1*e;                     // proportional component of loop filter
            vi = vi + K2*e;                  // integrator component of loop filter
            v = vp + vi;                     // loop filter output
    end
end
// update registers
W = v + 1;
NCO = NCO mod 4 - W;
Go to the top of the page
 
+Quote Post



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

 


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


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