数字锁相环Octave仿真

clc;
clear all;

% 仿真数据长度
SimLens = 1000;

% 载波信号
Fs = 2400;
Ts = 1 / Fs;

Fsig = 60;

% 随机初相
Delta_Phase = rand(1)*2*pi;

SignalMod = exp(-1i*(Fsig/Fs * (1: SimLens) + Delta_Phase));

% 锁相环处理过程
Signal_PLL = zeros(SimLens, 1);
NCO_Phase = zeros(SimLens, 1);
nco = zeros(SimLens, 1);
Discriminator_Out = zeros(SimLens, 1);
Freq_Control = zeros(SimLens, 1);
PLL_Phase_Part = zeros(SimLens, 1);
PLL_Freq_Part = zeros(SimLens, 1);

% 环路参数
C1 = 0.012013;
C2 = 0.000247;

% 正交鉴相器
for i = 2 : SimLens
    Signal_PLL(i) = SignalMod(i) * exp(-1i * NCO_Phase(i-1));
    I_PLL(i) = real(Signal_PLL(i));
    Q_PLL(i) = imag(Signal_PLL(i));

    Discriminator_Out(i) = atan2(Q_PLL(i), I_PLL(i));

    PLL_Phase_Part(i) = Discriminator_Out(i) * C1;
    Freq_Control(i) = PLL_Phase_Part(i) + PLL_Freq_Part(i-1);

    NCO_Phase(i) = NCO_Phase(i-1) + Freq_Control(i);
    PLL_Freq_Part(i) = Discriminator_Out(i) * C2 + PLL_Freq_Part(i-1);
end

nco = cos(NCO_Phase);

figure;
plot(real(SignalMod), ‘r+‘);
hold on;
plot(nco, ‘b*‘);
hold on;
grid on;

figure
subplot(2,1,1)
plot(-PLL_Freq_Part(2: SimLens)*Fs);
grid on;
title(‘PLL频率响应曲线图‘);
axis([1 SimLens -100 100]);
subplot(2,1,2)
plot(PLL_Phase_Part(2: SimLens)*180/pi);
title(‘PLL相位响应曲线图‘);
axis([1 SimLens -2 2]);
grid on;

时间: 2024-10-06 03:39:40

数字锁相环Octave仿真的相关文章

全数字锁相环(PLL)的原理简介以及verilog设计代码

随着数字电路技术的发展,数字锁相环在调制解调.频率合成.FM 立体声解码.彩色副载波同步.图象处理等各个方面得到了广泛的应用.数字锁相环不仅吸收了数字电路可靠性高.体积小.价格低等优点,还解决了模拟锁相环的直流零点漂移.器件饱和及易受电源和环境温度变化等缺点,此外还具有对离散样值的实时处理能力,已成为锁相技术发展的方向. 所谓数字PLL,就是指应用于数字系统的PLL,也就是说数字PLL中的各个模块都是以数字器件来实现的,是一个数字的电路. 数字锁相环的优点是电路最简单有效,可采用没有压控的晶振,

使用Logistic Regression Algorithm进行多分类数字识别的Octave仿真

所需解决的问题是,训练一个Logistic Regression系统,使之能够识别手写体数字1-10,每张图片为20px*20px的灰度图.训练样例的输入X是5000行400列的一个矩阵,每一行存储一张图片(20^2=400),共5000个训练样例,而y则为手写体所表示的数字1-10. 利用Logistic Regression进行多分类应用,其基础是将问题本身化解为z个二分类问题,其中z为类别的个数.第一步,将向量m*1维y扩展为矩阵m*z维矩阵Y,向量n+1维向量theta扩展为矩阵z*(n

simulink pi的方法产生锁相环

pi方法就是比例积分方法,关于pi方法介绍参考http://www.elecfans.com/dianzichangshi/20120909287851.html 锁相环pi方法原理参考http://wenku.baidu.com/view/86b9586fa76e58fafab003b7.html 关于系数的确定方法参考http://wenku.baidu.com/view/029d23425a8102d277a22f69.html 这次设计遇到了点麻烦,原因就在于从double型往定点型数据

FPGA的PLL锁相环

PLL实际上是一负反馈系统,其作用是使得电路上的时钟和某一外部时钟的相位同步 pll锁相环有三部分组成: 鉴相器PD.环路滤波器LF和压控振荡器VCO 原理: 利用外部输入的参考信号控制环路内部振荡信号的频率和相位. PD,的作用是检测输入信号和输出信号的相位差 LF,将转换后的电压进行滤波形成控制电压. 倍频: 基准.N倍谐波.锁相. 外接晶振时钟是参照! 压控振荡器VCO产生所需要的频率! 概括 一种输出一定频率信号的振荡电路,也称为相位同步环(回路).该回路利用使外部施加的基准信号与 PL

打印数字回环

题目要求: Input a value n, then print out a n×n matrix. Example 1: Input 2, output 1 2 4 3 Example2: Input 5, output 1    2    3    4    5 16   17   18   19    6 15   24   25   20    7 14   23   22   21    8 13   12   11   10    9 思路: 把该输出划分为多个环,每个环上有4根线

锁相环倍频原理简要分析

以前学STM32的时候就知道了倍频这个概念.开发板上外接8M晶振,但是STM32主频却能跑72M,这离不开锁相环(PLL)的作用.之后在使用FPGA的时候,直接有PLL这个IP核提供给我们使用,实现自己想要的频率.但是当我们使用的时候,锁相环倍频的原理我们清楚吗?下面就来简要分析下倍频的原理. 首先,我们需要了解下锁相环的组成.锁相环是由一个鉴相器(PD).低通滤波器(LPF)和压控振荡器(VCO)组成.结构图如下: PLL需要有一个参考频率fi.输出频率为fo,参考频率与输出频率同时送入鉴相器

异常检测算法的Octave仿真

在基于高斯分布的异常检测算法一文中,详细给出了异常检测算法的原理及其公式,本文为该算法的Octave仿真.实例为,根据训练样例(一组网络服务器)的吞吐量(Throughput)和延迟时间(Latency)数据,标记出异常的服务器. 可视化的数据集如下: 我们根据数据集X,计算其二维高斯分布的数学期望mu与方差sigma2: function [mu sigma2] = estimateGaussian(X) %ESTIMATEGAUSSIAN This function estimates th

晶振、时钟信号、锁相环、分频器

作者:Andrew Huang[email protected] 驱动数字电路运转是的时钟信号,时序电路都需要一个外部时钟信号来驱动,完成计时,同步,计数,时序控制等各种功能.象CPU也是用时序信号驱动来完成各种运算的,而且象ARM带的模块绝大部分与时序都有关,因此理解时钟信号对于底层编程非常重要. 一.时钟信号的源头---------晶振---------------------------------------------------------------------------- 数字

锁相环倍频工作原理个人粗略理解

以s3c2440 clock & power management为例,2440一般可以使用外部晶振或者外部时钟作为时钟源,通过OM[3:2]来配置.外部晶振一般选用12MHZ,而2440如果工作在这个频率显然大材小用,2440正常工作频率可达400MHZ,显然从12MHZ到400MHZ需要倍频,2440通过锁相环单元来实现倍频. 上面这个框图中,PFD,PUMP,Loop Filter,VCO共同组成了锁相环. PFD(鉴相器):将2路输入Fref,Fvco的相位差转变为对应的控制信号输出.