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;

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

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

    随着数字电路技术的发展,数字锁相环在调制解调.频率合成.FM 立体声解码.彩色副载波同步.图象处理等各个方面得到了广泛的应用.数字锁相环不仅吸收了数字电路可靠性高.体积小.价格低等优点,还解决了模拟锁 ...

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

    所需解决的问题是,训练一个Logistic Regression系统,使之能够识别手写体数字1-10,每张图片为20px*20px的灰度图.训练样例的输入X是5000行400列的一个矩阵,每一行存储一 ...

  3. 基于模k可逆计数的数字锁相环fpga实现

    参考http://wenku.baidu.com/view/59420cb069dc5022aaea00bd.html 实现结构是参考的上边的实例,我用的全同步实现,实现过程中发现一些现象,做下记录. ...

  4. simulink pi的方法产生锁相环

    pi方法就是比例积分方法,关于pi方法介绍参考http://www.elecfans.com/dianzichangshi/20120909287851.html 锁相环pi方法原理参考http:// ...

  5. [PLL][PM]锁相环模拟相位解调

    %锁相环测试 %模拟相位解调 clear close all clc fs=1000; %采样率 tend=100; t=0:1/fs:tend; t(end)=[]; fc=1; %载波频偏 fb= ...

  6. ‘初始化锁相环INIT_PLL()’

    在XS128的SCI学习的过程中,INIT_PLL()显得很重要,初始化锁相环几乎在每个程序中都有,今天看的程序-初始化锁相环的相关代码如下: /*************************** ...

  7. C++版 - 剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题,ZOJ 1088:System Overload类似)题解

    剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题) 原书题目:0, 1, - , n-1 这n个数字排成一个圈圈,从数字0开始每次从圆圏里删除第m个数字.求出这个圈圈里剩下的最后一个数字 ...

  8. 第十四届智能车培训 PLL锁相环

    什么是锁相环? PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时脉讯号,使高频器件正常工作,如内存的存取资料等.PLL用于振荡器中的反馈技术. 许多电子设备要正常工作 ...

  9. 【iCore4 双核心板_FPGA】例程九:锁相环实验——锁相环使用

    实验现象: 利用Quartus内部组件生成锁相环,用SignalTap II进行校验. 核心代码: module pll( input clk_25m, output clk_100m, output ...

随机推荐

  1. bzoj1452 最大流

    很明显最大流.. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #defi ...

  2. oracle创建简单的包

    --规范 create or replace package test_pkg is --test_pkg为包名 procedure showMessage; --声明一个过程 function my ...

  3. 【WPF】ListView自定义分页

    XAML: <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDe ...

  4. PHP实现插入排序

    插入排序思想: 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法. 它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描, 找到相应位置并插入.插入排序 ...

  5. C++ string to char *

    半伪代码: void main { string line; getline(ifs, line); replace(line.begin(), line.end(), ',', '\n'); rep ...

  6. java 线程 wait join sleep yield notify notifyall synchronized

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 休息方法 : 在指定时间内 让该线程 暂停, 不会释放 锁标志. 等待方法: 让 该 线 ...

  7. 「NOI2017」游戏

    「NOI2017」游戏 题目描述 小 L 计划进行 \(n\) 场游戏,每场游戏使用一张地图,小 L 会选择一辆车在该地图上完成游戏. 小 L 的赛车有三辆,分别用大写字母 \(A\).\(B\).\ ...

  8. python开发_count()

    python中的count()函数,从字面上可以知道,他具有统计功能 下面来看看具体的demo: 功能:读取一个文件'c:\\test.txt',统计出该文件中出现字符'a'的次数 #python o ...

  9. sklearn中的投票法

    投票法(voting)是集成学习里面针对分类问题的一种结合策略.基本思想是选择所有机器学习算法当中输出最多的那个类. 分类的机器学习算法输出有两种类型:一种是直接输出类标签,另外一种是输出类概率,使用 ...

  10. 读书笔记_Effective_C++_条款三十:了解inline的里里外外

    学过基本程序课的同学都知道,inline是内联的关键字,它可以建议编译器将函数的每一个调用都用函数本体替换.这是一种以空间换时间的做法.把每一次调用都用本体替换,无疑会使代码膨胀,但可以节省函数调用的 ...