Как реализовать цикл обратной связи для PLL в Matlab?

Я пытаюсь реализовать PLL демодулятор для FM-сигнала в Matlab, без использования Simulink.

(FM-сигнал) >----Multiply---Loop Filter------> (Демодулированный сигнал)
                     |                    |
                     ^                    V
                     |--------VCO---------|

Мой план заключается в использовании вышеуказанной конфигурации. я имею filter, VCO как функции, теперь я должен объединить их в механизм обратной связи. Какую структуру кода я должен использовать для этого?

2 ответа

Решение

Предполагая, что у вас есть входной (FM) сигнал в векторе U, тогда что-то в этом направлении будет работать, если ваши функции будут воздействовать на один сэмпл за раз.

N = length(U);
v = 0; % initial value for v

for n = 1:N

    x = U(n) * v;
    y = loop_filter(x);
    v = vco(y);

    % store output
    Y(n) = y;

end

Это не будет быстрым, но это не может быть вашей заботой, здесь.

Другие вопросы по тегам