1

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?

Oguzhan Ozel
  • 1,144
  • 11
  • 14

2 Answers2

1

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.

  • possibly helpful hint: the loop_filter function needs to make use of a persistent variable to keep the filter state at each new instance of the loop. – hiandbaii May 12 '15 at 22:58
0

Check out: Simulating phase locked loops (PLLs) with MATLAB

Aaron
  • 11