Цитата(PavPro @ Apr 24 2018, 12:16)

Касаемо Ваших вопросов, всю книгу можно не перечитывать, там есть глава посвященная моделированию и расчету
контура ФАПЧ.
Понятно. По ходу несколько моментов касательно самой цифровой ФАПЧ.
Не совсем понятен порядок расчета цифровой ФАПЧ. В разных букварях все по разному. Пока прослеживается это:
1. Определяются исходные данные для петли... тут везде по разному к примеру так
Код
Knco= 1/4096; % NCO gain (разрядность NCO)
KP= 2; % 1/cycles phase detector gain
wn = 2*pi*400; % rad/s loop natural frequency (очевидно несущая круговая частота)
fs = 25e6; % Hz sample rate (частота выборок или семплирования)
zeta = 1; % damping factor
Ts= 1/fs; % s sample time (время семплирования)
В этой части вопросы вызывают KP и zeta
2. На базе исходных данных производится расчет интегрирующего и пропорционального коэффициентов собственно для рачета
интегратора или петлевого фильтра. Похоже это одно и то же.
Код
KL= 2*zeta*wn*Ts/(KP*Knco); % loop filter proportional gain
KI= wn^2*Ts^2/(KP*Knco); % loop filter integral gain
fprintf('Пропорц. коэфф KL %d\n', KL);
fprintf('Интегр. коэфф KI %d\n', KI);
3. На базе этих расчетов рассчитываются коэффициенты петлевого фильтра a и b
Код
b0= KP*KL*Knco;
b1= KP*Knco*(KI - KL);
a1= KP*KL*Knco - 2;
a2= 1 + KP*Knco*(KI - KL);
b= [b0 b1]; % numerator coeffs
a= [1 a1 a2]; % denominator coeffs
4. Далее можно построить кривую фазовой ошибки
Код
N= 100000;
n= 1:N;
t= n*Ts;
x= ones(1,N); % step function
y= filter(b,a,x); % step response
pe = y - 1; % phase error response
plot(t*1e3,pe),grid
xlabel('ms'),ylabel('Phase Error = u/ref-phase -1'),figure %plot phase error
5. Очевидно что далее можно строить собственно цифровую ФАПЧ подключив перед петлевым фильтром фазовый детектор, а после него NCO
Понятное дело, что это все в основных чертах. Наверняка имеется еще масса всяких нюансов.
Хотелось-бы получить комментарии по этому поводу.
Что не так в представленной последовательности? Может имеются варианты, вариации?
Тут
http://www.dsplib.ru/content/dpll/dpll.html например все по другому считается
Пропорциональный и интегрирующий коэффициенты зависят от времени T = 1.0/Fs; // интервал дискретизации (сек)
Разве это правильно?