How to implement feedback loop for PLL in Matlab?

1.1k Views Asked by At

I am trying to implement PLL demodulator for FM signal in Matlab, without using Simulink.

(FM Signal) >----Multiply---Loop Filter------> (Demodulated signal)
                     |                    |
                     ^                    V
                     |--------VCO---------|

My plan is to use above configuration. I have filter, VCO as functions, now I should combine them in a feedback mechanism. What kind of code structure should I use for this?

2

There are 2 best solutions below

1
Rattus Ex Machina On BEST ANSWER

Assuming you have your input (FM) signal in a vector U, then something along these lines will work if your functions act on one sample at a time.

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

It won't be fast, but that may not be your concern, here.

0
Aaron On