如何在 Matlab 中实现 PLL 的反馈回路?

How to implement feedback loop for PLL in Matlab?

我正在尝试在 Matlab 中实现 FM 信号的 PLL 解调器,而不使用 Simulink。

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

我的计划是使用上面的配置。我有 filterVCO 作为函数,现在我应该将它们组合在一个反馈机制中。我应该为此使用什么样的代码结构?

假设您的输入 (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

它不会很快,但这可能不是你关心的问题。

查看:Simulating phase locked loops (PLLs) with MATLAB