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

 
 
> Цифровая ФАПЧ с NCO в Симулинк
Acvarif
сообщение Apr 23 2018, 18:34
Сообщение #1


Знающий
****

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



Попытался, используя пример, разобраться как устроена цифровая ФАПЧ с NCO в Симулинк.

Прикрепленное изображение

Подключаю осциллограф к выходу NCO а там синусоида. Это как? Там же должна быть шина шириной в 16 бит.
Зачем такая абстракция?
Фазовый детектор вообще непонятно как сделан. Попытка его раскрыть заканчивается полным зависанием Матлаб.
Как устроен цифровой фильтр... Вообще не понятно. Как увидеть его АЧХ? Как вообще он составлен?
Прикрепленный файл  dpll_fixpt.rar ( 13.41 килобайт ) Кол-во скачиваний: 19

Кому не сложно подсобите пожалуйста нормальным примером цифровой ФАПЧ с NCO.

Сообщение отредактировал Acvarif - Apr 23 2018, 18:35
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
PavPro
сообщение Apr 24 2018, 06:38
Сообщение #2


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

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



Цитата(Acvarif @ Apr 23 2018, 21:34) *
Попытался, используя пример, разобраться как устроена цифровая ФАПЧ с NCO в Симулинк.

Прикрепленное изображение

Подключаю осциллограф к выходу NCO а там синусоида. Это как? Там же должна быть шина шириной в 16 бит.
Зачем такая абстракция?
Фазовый детектор вообще непонятно как сделан. Попытка его раскрыть заканчивается полным зависанием Матлаб.
Как устроен цифровой фильтр... Вообще не понятно. Как увидеть его АЧХ? Как вообще он составлен?
Прикрепленный файл  dpll_fixpt.rar ( 13.41 килобайт ) Кол-во скачиваний: 19

Кому не сложно подсобите пожалуйста нормальным примером цифровой ФАПЧ с NCO.


На сайте Mathworks есть книга в свободном доступе к скачиванию Software Defined Radio
using MATLAB® & Simulink®
and the RTL-SDR. В ней есть все ответы на Ваши вопросы с конкретными примерами.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Apr 24 2018, 07:23
Сообщение #3


Знающий
****

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



Цитата(PavPro @ Apr 24 2018, 09:38) *
На сайте Mathworks есть книга в свободном доступе к скачиванию Software Defined Radio
using MATLAB® & Simulink®
and the RTL-SDR. В ней есть все ответы на Ваши вопросы с конкретными примерами.

В свободном доступе https://www.mathworks.com/support/books/book106132.html в смысле купить на Амазоне.
Если у Вас имеется, то выложите или ссылку, буду признателен.

Go to the top of the page
 
+Quote Post
PavPro
сообщение Apr 24 2018, 07:43
Сообщение #4


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

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



Цитата(Acvarif @ Apr 24 2018, 10:23) *
В свободном доступе https://www.mathworks.com/support/books/book106132.html в смысле купить на Амазоне.
Если у Вас имеется, то выложите или ссылку, буду признателен.

Посмотрите здесь: https://sci.libgen.pw/item/detail/id/59e6ab...a04465a6adf2211
Либо укажите почту, я Вам скину, правда без примеров.

Цитата(PavPro @ Apr 24 2018, 10:34) *
Посмотрите здесь: https://sci.libgen.pw/item/detail/id/59e6ab...a04465a6adf2211
Либо укажите почту, я Вам скину, правда без примеров.

Кстати книга свободна к скачиванию, на Амазоне ее бумажный вариант.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Apr 24 2018, 08:01
Сообщение #5


Знающий
****

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



Спасибо. Нашел http://www.desktopsdr.com/download-files
Вроде там и файлы имеются.
Сомневаюсь что это выход. Читать не перечитать.
Можно-ли из матлаб кода делать компоненты для симулинк?
Go to the top of the page
 
+Quote Post
PavPro
сообщение Apr 24 2018, 09:16
Сообщение #6


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

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



Цитата(Acvarif @ Apr 24 2018, 11:01) *
Спасибо. Нашел http://www.desktopsdr.com/download-files
Вроде там и файлы имеются.
Сомневаюсь что это выход. Читать не перечитать.
Можно-ли из матлаб кода делать компоненты для симулинк?

Можно. В библиотеке симулинк есть блок с названием Matlab Function. Туда Вы можете
прописать свою функцию (предварительно определив входы и выходы), а затем вставить данный блок в свой
симулинк-дизайн.

Цитата(PavPro @ Apr 24 2018, 12:14) *
Можно. В библиотеке симулинк есть блок с названием Matlab Function. Туда Вы можете
прописать свою функцию (предварительно определив входы и выходы), а затем вставить данный блок в свой
симулинк-дизайн.

Касаемо Ваших вопросов, всю книгу можно не перечитывать, там есть глава посвященная моделированию и расчету
контура ФАПЧ.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Apr 24 2018, 10:41
Сообщение #7


Знающий
****

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



Цитата(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; // интервал дискретизации (сек)
Разве это правильно?

Сообщение отредактировал Acvarif - Apr 24 2018, 10:56
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 02:20
Рейтинг@Mail.ru


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