数字锁相环MATLAB代码

合集下载

matlab 三阶锁相环

matlab 三阶锁相环

matlab 三阶锁相环摘要:一、Matlab三阶锁相环概述1.三阶锁相环基本原理2.Matlab实现方法二、二阶锁相环与三阶锁相环的区别1.应用场景2.性能特点三、Matlab仿真及代码实现1.仿真环境搭建2.代码编写与调试四、锁相环在实际应用中的优势与局限1.电网电压不平衡情况下的表现2.响应速度与控制精度正文:一、Matlab三阶锁相环概述Matlab三阶锁相环(PLL)是一种在信号处理、通信和控制等领域广泛应用的相位锁定技术。

其基本原理是通过检测输入信号与参考信号之间的相位差,控制环路输出信号的相位,使其与输入信号保持同步。

在Matlab中,可以通过编写代码实现三阶锁相环的算法,并进行仿真验证。

1.三阶锁相环基本原理三阶锁相环主要由相位检测器、环路滤波器和压控振荡器(VCO)组成。

当输入信号与参考信号之间存在相位差时,相位检测器输出一个误差信号,该信号经过环路滤波器处理后,控制VCO的频率,从而使输出信号的相位与输入信号保持一致。

2.Matlab实现方法在Matlab中实现三阶锁相环的方法主要包括以下几个步骤:(1)创建仿真环境:搭建相应的仿真模型,包括输入信号、相位检测器、环路滤波器和VCO等模块。

(2)编写代码:根据三阶锁相环的原理,编写相位检测器、环路滤波器和VCO的Matlab代码。

(3)调试与优化:对代码进行调试,观察仿真结果,根据需要对算法进行优化。

二、二阶锁相环与三阶锁相环的区别1.应用场景:二阶锁相环主要用于载波信号的同步,而三阶锁相环适用于更广泛的信号处理、通信和控制领域。

2.性能特点:二阶锁相环具有结构简单、响应速度快的特点,但在电网电压不平衡、含有直流分量及高次谐波时,锁相结果存在较大的误差。

相比之下,三阶锁相环具有更好的抗干扰能力和更低的相位噪声,能适应更复杂的信号环境。

三、Matlab仿真及代码实现1.仿真环境搭建:搭建一个基于双二阶广义积分器的三相锁相环(DSOGI-PLL)仿真模型,包括输入信号、DSOGI模块、锁相环控制模块和VCO模块。

matlab pll锁相环原理

matlab pll锁相环原理

标题:MATLAB中的PLL锁相环原理一、介绍PLL锁相环的概念PLL(Phase-Locked Loop)锁相环是一种常用的控制系统,广泛应用于通信系统、数字信号处理和电力系统等领域。

它通过比较输入信号与本地参考信号的相位差,实现对输入信号的精确跟踪和同步。

在MATLAB中,我们可以通过编写代码来模拟PLL锁相环,并深入理解其工作原理。

二、PLL锁相环的基本结构PLL锁相环由相位比较器、低通滤波器、VCO(Voltage-Controlled Oscillator)和分频器等组成。

它的基本结构如下:1. 相位比较器:用于比较输入信号和本地参考信号的相位差,并产生控制电压。

2. 低通滤波器:将相位比较器输出的控制电压进行滤波,去除高频噪声,得到稳定的调节电压。

3. VCO:根据低通滤波器输出的调节电压,调节其输出频率,实现对输入信号的跟踪。

4. 分频器:将VCO输出的信号进行分频,得到本地参考信号,用于与输入信号进行比较。

三、PLL锁相环的工作原理PLL锁相环的工作过程可以分为锁定和跟踪两个阶段。

1. 锁定阶段:在初始时刻,输入信号的频率与VCO的输出频率不同步。

相位比较器会检测到二者之间存在相位差,产生相应的控制电压,通过低通滤波器传递给VCO。

VCO根据控制电压,调节其输出频率,使其逐渐与输入信号频率同步,最终达到锁定状态。

2. 跟踪阶段:一旦锁定完成,PLL锁相环会持续监测输入信号的频率变化,并调节VCO的输出频率,确保其始终与输入信号同步。

低通滤波器起到平稳调节的作用,使得VCO的输出频率能够迅速跟随输入信号的变化。

四、MATLAB中的PLL锁相环模拟在MATLAB中,我们可以利用Simulink工具箱来建立PLL锁相环的模型,并进行仿真分析。

我们需要使用Simulink中的基本模块,如正弦波源、相位比较器、低通滤波器、VCO和分频器等,按照PLL锁相环的基本结构进行搭建。

1. 步骤一:建立模型我们在Simulink中建立PLL锁相环的模型,将各个基本模块按照PLL 锁相环的基本结构进行连接,确保输入信号能够经过相位比较器、低通滤波器和VCO等模块,最终输出同步的信号。

数字锁相环matlab

数字锁相环matlab

数字锁相环matlab摘要:1.数字锁相环的概述2.Matlab 在数字锁相环中的应用3.数字锁相环的实现方法4.结论正文:1.数字锁相环的概述数字锁相环(Digital Phase-Locked Loop,简称DPLL)是一种数字信号处理技术,用于在数字通信系统中实现信号同步。

在数字通信系统中,信号的同步至关重要,因为只有实现信号同步,才能确保接收端正确地解调出原始信号。

数字锁相环通过比较接收信号与本地生成的信号,并根据两者之间的相位差来调整本地信号的相位,从而实现信号的同步。

2.Matlab 在数字锁相环中的应用MATLAB 是一种广泛应用于信号处理和通信系统的软件工具,它可以方便地实现数字锁相环的模型和算法。

使用MATLAB 可以搭建数字锁相环的仿真模型,对锁相环的性能进行分析和评估,以及对锁相环的算法进行优化。

此外,MATLAB 还提供了丰富的通信系统工具箱,如通信系统工具箱、信号处理工具箱等,为数字锁相环的设计和分析提供了强大的支持。

3.数字锁相环的实现方法数字锁相环的实现方法主要包括以下几种:(1)基于滤波器的实现方法:该方法通过设计一个滤波器,使得滤波器的传递函数与输入信号的相位相关,从而实现信号的同步。

(2)基于频率检测的实现方法:该方法通过检测输入信号的频率,并将其与本地信号的频率进行比较,从而实现信号的同步。

(3)基于相位检测的实现方法:该方法通过检测输入信号与本地信号之间的相位差,并根据相位差来调整本地信号的相位,从而实现信号的同步。

(4)基于最大似然估计的实现方法:该方法通过计算输入信号与本地信号之间的最大似然估计,从而实现信号的同步。

4.结论数字锁相环是一种重要的信号处理技术,广泛应用于数字通信系统中。

MATLAB 作为一种强大的信号处理工具,可以方便地实现数字锁相环的模型和算法。

数字锁相环的实现方法有多种,每种方法都有其独特的优点和适用场景。

数字锁相放大器原理及其Matlab仿真

数字锁相放大器原理及其Matlab仿真

数字锁相放大器原理及其Matlab仿真摘要:数字锁相放大器作为一种新型的放大器,其原理和应用逐渐受到人们的关注。

本文主要介绍数字锁相放大器的基本工作原理和Matlab仿真的方法。

基于数字信号处理技术,数字锁相放大器通过数字积分器和数字锁相环的组合实现了高精度的信号放大和相位锁定。

在Matlab环境下,仿真过程首先建立数字锁相放大器的模型,然后进行参数设置和仿真测试。

通过多次调整模型参数,并对仿真结果进行分析,得到最优的数字锁相放大器设计方案。

本文的研究可以为数字锁相放大器的实际应用提供参考。

关键词:数字锁相放大器、数字信号处理、数字积分器、数字锁相环、Matlab仿真正文:一、引言数字锁相放大器作为一种新型的放大器,其应用范围涉及多个领域,如精密测量、生物医学、材料科学等。

与传统的电子放大器相比,数字锁相放大器具有响应速度快、抗干扰性强、精度高等优点。

为了更好地掌握数字锁相放大器的原理和应用,本文通过Matlab仿真的方法进行研究,以期发现数字锁相放大器的最佳设计方案。

二、数字锁相放大器原理数字锁相放大器基于数字信号处理技术实现了高精度的信号放大和相位锁定。

其基本工作原理是:将待放大信号与参考信号做乘积,再将乘积信号通过数字积分器得到直流分量和交流分量。

然后将交流分量输入数字锁相环进行相位锁定,最后从数字锁相放大器的输出端可以获得相位锁定后的信号。

数字锁相放大器的电路图如下所示:图1 数字锁相放大器的电路图其中,$u_i$表示待放大信号,$u_{ref}$为参考信号,$v$为输出端信号,$n_i$,$n_{ref}$,$n$为噪声信号。

数字积分器的计算公式为:$$y(n)=y(n-1)+\frac{T}{2}\left(x(n)+x(n-1)\right)$$其中,$x(n)$为输入信号,$y(n)$为输出信号,$T$为采样周期。

数字锁相环的计算公式为:$$\theta_{n}=\theta_{n-1}+K_{p} \Delta \varphi_{n}+K_{i}\sum_{j=0}^{n} \Delta \varphi_{j}$$其中,$\theta_{n}$为相位偏差,$\Delta \varphi_{n}=2 \pif_{ref} T$为相位差,$K_{p}$和$K_{i}$为比例常数和积分常数。

锁相环设计与MATLAB仿真

锁相环设计与MATLAB仿真

锁相环设计与MATLAB仿真锁相环(Phase-Locked Loop,PLL)是一种电路设计技术,用于提取输入信号中的相位信息,并在输出信号中保持输入信号与输出信号的相位差稳定。

PLL广泛应用于通信系统、时钟生成器、频率合成器等领域。

锁相环主要由相位检测器(Phase Detector,PD)、环路滤波器(Loop Filter,LF)、振荡器(Voltage-Controlled Oscillator,VCO)和分频器(Divider)组成。

相位检测器用于比较输入信号和VCO输出信号的相位差,并产生一个低频的误差信号。

传统的相位检测器包括异或门相位检测器(XOR PD)和倍频器相位检测器(Multiplier PD)。

异或门相位检测器适用于窄带相位差测量,倍频器相位检测器适用于宽带相位差测量。

MATLAB提供了用于建模和仿真PLL的工具箱,可以方便地进行相位检测器的设计和性能分析。

环路滤波器用于滤波相位误差信号,根据滤波器的设计方法不同,可以实现不同的环路特性。

传统的环路滤波器包括积分环路滤波器和比例积分环路滤波器。

积分环路滤波器对误差信号进行积分,使得环路系统具有很高的稳定性和抗干扰能力,但响应时间较长。

比例积分环路滤波器在积分环路滤波器的基础上引入比例增益,可以更快地响应相位误差的变化。

振荡器(VCO)根据环路滤波器输出的控制电压来生成输出信号,并提供给分频器进行频率除法操作。

振荡器通常采用压控振荡器(VCO)或电流模式逻辑(Current Mode Logic,CML)结构,可以根据应用需求选择合适的振荡器设计。

分频器用于将振荡器输出的高频信号按照设定的分频比例进行分频,生成与输入信号相位对齐的输出信号。

分频器采用计数器和锁存器设计,计数器用于记录输入信号的周期数,锁存器将计数器的值锁定在一个周期,输出给相位检测器进行相位比较。

锁相环的设计和仿真可以通过MATLAB工具箱进行。

首先,设计相位检测器的传输函数和特性,选择适当的相位检测器类型和设计参数。

matlab 三阶锁相环

matlab 三阶锁相环

matlab 三阶锁相环摘要:1.Matlab 三阶锁相环概述2.Matlab 三阶锁相环的结构和原理3.Matlab 三阶锁相环的应用实例4.Matlab 三阶锁相环的优缺点5.总结正文:一、Matlab 三阶锁相环概述Matlab 三阶锁相环是一种在通信系统中广泛应用的同步技术,主要用于实现数据信号的相位同步。

锁相环(Phase-Locked Loop,简称PLL)是一种自动相位同步技术,通过比较输入信号与本地振荡器输出信号的相位差,控制本地振荡器的频率,使其与输入信号的频率保持同步。

三阶锁相环是锁相环中的一种,具有较高的同步精度和稳定性。

二、Matlab 三阶锁相环的结构和原理Matlab 三阶锁相环主要由以下几个部分组成:1.滤波器:滤波器的主要作用是去除输入信号中的高频噪声,提高锁相环的稳定性。

2.相位检测器:相位检测器用于检测输入信号与本地振荡器输出信号之间的相位差,并将相位差信号转换为电压控制信号。

3.电压控制振荡器:电压控制振荡器根据接收到的控制电压,调整其输出频率,实现与输入信号的频率同步。

4.低通滤波器:低通滤波器用于滤除控制电压中的高频噪声,提高锁相环的稳定性。

Matlab 三阶锁相环的工作原理是:输入信号经过滤波器后,进入相位检测器,相位检测器将输入信号与本地振荡器输出信号进行比较,得到相位差信号。

相位差信号经过电压控制振荡器后,调整本地振荡器的输出频率,使其与输入信号的频率保持同步。

低通滤波器用于滤除控制电压中的高频噪声,提高锁相环的稳定性。

三、Matlab 三阶锁相环的应用实例Matlab 三阶锁相环在通信系统中有广泛的应用,例如:1.数字通信系统:在数字通信系统中,数据信号需要进行相位同步,以保证数据信号的正确传输。

Matlab 三阶锁相环可以用于实现数据信号的相位同步。

2.卫星通信系统:在卫星通信系统中,由于信号传输距离较远,信号的相位同步显得尤为重要。

Matlab 三阶锁相环可以用于实现卫星通信系统中的信号相位同步。

锁相环matlab代码

锁相环matlab代码

锁相环matlab代码锁相环(Phase-Locked Loop, PLL)是一种常用的控制系统技术,用于将一个参考信号的相位与一个输出信号的相位保持在恒定的差值范围内。

在Matlab中,可以使用信号处理工具箱(Signal Processing Toolbox)来实现锁相环。

以下是一个简单的锁相环的Matlab代码示例:matlab.% 参数设置。

fs = 1000; % 采样率。

fref = 10; % 参考信号频率。

fout = 9; % 输出信号频率。

Kp = 1; % 比例增益。

Ki = 0.1; % 积分增益。

Kd = 0.01; % 微分增益。

% 生成参考信号和输出信号。

t = 0:1/fs:1; % 时间向量。

ref_signal = sin(2pifreft); % 参考信号。

out_signal = sin(2pifoutt); % 输出信号。

% 初始化锁相环参数。

phase_error = zeros(size(t)); % 相位误差。

integrated_error = 0; % 积分误差。

previous_error = 0; % 上一时刻误差。

% 锁相环控制。

for i = 2:length(t)。

% 计算相位误差。

phase_error(i) = angle(ref_signal(i) conj(out_signal(i-1)));% 比例控制。

proportional_term = Kp phase_error(i);% 积分控制。

integrated_error = integrated_error + Ki phase_error(i) (1/fs);integral_term = Ki integrated_error;% 微分控制。

derivative_term = Kd (phase_error(i) previous_error) fs;previous_error = phase_error(i);% 总控制信号。

锁相环与MATLAB仿真讲解

锁相环与MATLAB仿真讲解

目录中文摘要 (3)英文摘要 (4)前言 (6)第一章绪论 (7)1.1 锁相环的发展及国内外研究现状 (7)1.2 本文的主要内容组织 (9)第二章锁相环的基本理论 (10)2.1锁相环的工作原理 (11)2.1.1鉴相器 (11)2.1.2 低通滤波器 (13)2.1.3 压控振荡器 (15)2.2锁相环的工作状态 (15)2.3锁相环的非线性工作性能分析 (17)2.3.1跟踪性能 (18)2.3.2捕获性能 (18)2.3.3失锁状态 (19)2.4锁相环的稳定性 (20)2.5信号流程图 (21)2.6锁相环的优良特性 (21)2.7锁相环的应用 (22)2.7.1锁相环在调制和解调中的应用 (22)2.7.2锁相环在频率合成器中的应用 (23)2.8本章小结 (23)第三章锁相环的噪声分析 (24)3.1锁相环的输入噪声 (24)3.2压控振荡器的噪声 (24)3.3相位噪声的抑制 (26)3.4本章小结 (27)第四章二阶锁相环仿真及结果 (28)4.1仿真介绍 (28)4.2程序代码 (28)4.3仿真结果 (34)4.4本章小结 (36)结论 (38)致谢 (39)参考文献 (40)毕业设计小结 (41)摘要锁相环电路是使一个特殊系统跟踪另外一个系统,更确切的说是一种输出信号在频率和相位上能够与输入参考信号同步的电路,它是模拟及数模混合电路中的一个基本的而且是非常重要的模块。

由于锁相环具有捕获、跟踪和窄带滤波的作用,因此被应用在通信、微处理器、以及卫星等许多领域。

锁相环是通信电路里时钟电路的一个重要模块。

本文详细介绍了锁相环设计中所涉及的各项指标计。

论文首先对锁相环的发展历史和研究现状做了介绍,然后从其基本工作原理出发,以传统锁相环的结构为基础,得到了锁相环的数学模型,对锁相环的跟踪性能、捕获性能、稳定性以及噪声性能等各种性能进行了分析,对锁相环的各项指标参数进行了详细推导,得出了锁相环数学分析的结论。

MATLAB技术相位锁定方法

MATLAB技术相位锁定方法

MATLAB技术相位锁定方法引言:MATLAB是一款强大的数值计算软件,广泛应用于科学研究和工程领域。

相位锁定是一种重要的信号处理技术,可以用于同步和解调信号。

本文将介绍MATLAB中常用的相位锁定方法,并通过实例演示其应用。

第一部分: 相位锁定基础知识1.1 相位锁定概述相位锁定是指通过调整本地信号的相位与输入信号的相位保持一致,从而实现信号同步的过程。

它广泛应用于通信、雷达、信号处理等领域。

相位锁定的目的是把输入信号中的信息提取出来,并通过调整本地信号的相位使其与输入信号同步。

1.2 相位锁定的应用领域相位锁定在通信领域有广泛的应用,例如调制解调、时钟恢复等。

在雷达领域,相位锁定可以用于跟踪并锁定回波信号的相位,提高测距精度。

此外,相位锁定还被用于音频和视频处理、信号合成等方面。

第二部分: 常用的相位锁定方法2.1 直接数字频率合成器(DDS)DDS是一种常用的基于相位锁定的方法,用于生成连续的周期信号。

DDS通过改变本地信号的相位和频率来与输入信号同步。

2.1.1 DDS的原理DDS使用一个数值控制振荡器(NCO)来生成周期信号。

NCO包含一个相位累加器和一个查找表,通过累加相位值并查找相应的输出值,实现信号的生成。

DDS可以通过改变累加步幅和查找表的大小来调整频率和相位。

2.1.2 MATLAB中DDS的实现在MATLAB中,DDS可以通过使用phaseAccum和lookupTable函数实现。

phaseAccum函数用于累加相位值,lookupTable函数用于查找对应的输出值。

通过不断更新相位累加器的值并查找输出值,DDS可以实现相位锁定。

2.2 频率锁定环(PLL)PLL是一种广泛应用的相位锁定方法,通过比较本地信号的相位与输入信号的相位差来进行相位调整。

2.2.1 PLL的原理PLL包括相位比较器、环路滤波器、控制电压生成器和振荡器。

相位比较器用于比较输入信号与本地信号的相位差,环路滤波器用于滤除高频噪声并生成控制电压,控制电压生成器用于调整振荡器的频率和相位。

单片机锁相环代码

单片机锁相环代码

单片机锁相环代码以下是一个简单的单片机锁相环(PLL)的代码示例。

请注意,这是一个非常基本的示例,您可能需要根据您的特定硬件和需求进行修改。

这个示例假设你使用的是一种常见的微控制器,如Arduino 或STM32,并且有一个函数可以读取某种类型的时钟源(例如,石英晶体振荡器或其他时钟源)。

c#include <stdint.h>// 假设你有一个函数来读取时钟源的频率uint32_t read_clock_source() {// 在这里实现读取时钟源频率的代码// 返回值应为时钟源的频率(以Hz为单位)return 12345678; // 例如,返回12,345,678 Hz}// 假设你有一个函数来设置输出频率void set_output_frequency(uint32_t frequency) {// 在这里实现设置输出频率的代码// 参数应为所需的输出频率(以Hz为单位)}int main() {// 初始化锁相环参数uint32_t reference_frequency = read_clock_source(); // 读取参考频率uint32_t output_frequency = 1000000; // 设置输出频率为1 MHz// 锁定输出频率到参考频率while (1) {uint32_t error = reference_frequency - output_frequency; // 计算误差if (error > 1000) { // 如果误差大于1 kHzoutput_frequency += 1; // 增加输出频率} else if (error < -1000) { // 如果误差小于-1 kHzoutput_frequency -= 1; // 减少输出频率} else {break; // 如果误差在±1 kHz范围内,锁定输出频率到参考频率}set_output_frequency(output_frequency); // 设置新的输出频率}return 0;}请注意,这个示例代码非常基础,并且没有包括许多可能需要的功能,例如抗抖动、平滑的频率调整等。

matlab中pll模型中pid参数

matlab中pll模型中pid参数

一、概述在现代控制工程中,锁相环(Phase Locked Loop, PLL)是一种常用的控制系统,在信号处理、通信系统等领域都有着重要的应用。

而在matlab中,我们可以通过编写代码来构建PLL模型,进而对其pid参数进行调节,以实现对信号的锁定和跟踪调节。

本文将从PLL的基本原理入手,逐步介绍如何在matlab中建立PLL模型,以及对pid参数进行优化调节的方法。

二、PLL的基本原理1. 数字信号处理中的应用PLL是一种用于追踪和锁定参考信号相位的控制系统,通常用于数字信号处理中。

比如在数字通信中,PLL可以用于接收端对接收到的信号进行解调和时钟恢复;在通信系统中,PLL可以用于信号的调频和解调等。

2. PLL的基本结构PLL的基本结构主要包括相位比较器、环路滤波器、控制电压发生器以及VCO(Voltage Controlled Oscillator)等。

三、在matlab中建立PLL模型1. 使用Simulink进行建模我们可以利用matlab中的Simulink工具箱,通过拖拽各个组件,并连接它们来构建PLL模型。

在Simulink中,我们可以直观地建立PLL模型,并通过调节各个参数来验证其性能。

2. 设置pid参数在Simulink中,我们可以通过加入pid控制器来对PLL系统进行控制。

pid参数包括比例系数(Kp)、积分时间(Ti)、微分时间(Td)等,通过调节这些参数,可以对系统的性能进行优化。

四、pid参数优化调节方法1. 负反馈系统的稳定性分析在进行pid参数优化前,首先需要对系统的稳定性进行分析。

我们可以通过Bode图、Nyquist图等工具来分析系统的稳定边界和频率响应,从而确定pid参数的初步范围。

2. 利用matlab的优化工具进行参数调节matlab提供了各种优化工具,在进行pid参数调节时,可以利用这些工具来实现自动寻优,以尽可能地提高系统的性能。

3. 遗传算法、模糊控制等方法除了matlab自带的优化工具外,也可以通过遗传算法、模糊控制等方法对pid参数进行调节。

基于MATLAB数字锁相环仿真设计

基于MATLAB数字锁相环仿真设计

本科生毕业设计(申请学士学位)论文题目基于Matlab的数字锁相环的仿真设计作者专业名称电子信息工程指导教师2014年5月学生:(签字)学号:答辩日期:2014 年 5 月24 日指导教师:(签字)目录摘要 (1)Abstract (1)1 绪论 (2)1.1 本文研究背景 (2)1.2 本文研究意义 (2)1.3 锁相环和仿真方式 (2)1.3.1 锁相环 (2) (2)3 2 模拟锁相环Matlab仿真 (3)2.1 模拟锁相环方案 (3)2.1.1 模拟鉴相器 (3)2.1.2 模拟低通滤波器 (6)2.1.3 模拟压控振荡器 (7)2.2 模拟锁相环仿真 (8)2.3 本章小结 (9)3 数字锁相环Matlab仿真 (10)3.1 数字锁相环方案 (10)3.1.1 数字鉴相器 (10)3.1.2 数字滤波器 (12)3.1.3 数字压控振荡器 (13)3.2 数字锁相环仿真 (14)3.3 本章小结 (15)4 总结与展望 (15)参考文献 (16)致 (18)基于Matlab的数字锁相环的仿真设计摘要:锁相环是一种能够自动跟踪信号相位并达到锁频目的的闭环负反馈系统。

数字锁相环在无线电领域得到较广泛的应用和发展。

而且已经成为雷达、通信、导航等各类电子信号产品不可替代的元器件之一。

锁相环的窄带跟踪性能使其得到较广泛应用。

因为锁相技术在实际应用中较为复杂,所以锁相环的设计通常采用仿真设计这种方式。

本次设计采用Matlab这一软件进行辅助仿真设计,完全能达到设计预期的目标。

Matlab中的Simulink仿真软件,具有很强的灵活性和直观性。

本次设计所采用的方法是在simulink中搭建模拟锁相的模型,并对模拟锁相环的组成、结构、设计进行不断的分析和改进。

然后根据模拟锁相环的原理进行改进,并搭建数字锁相环。

关键词:锁相环;自动跟踪;matlab;simulinkSimulative design of digital phase-locked loop based onMatlabAbstract:PLL is the automatic tracking system of close loop atracking signal phase. It is widely used in various fields of radio. It has become an irreplaceable part of radar, communication, navigation and all kinds of electronicsignal device. PLL is able to be widely used. Because, it has unique narrow-band tracking performance. However, because of the complexity of phase lock technique, for the design of PLL have brought great difficulty. This design uses Matlab, the simulative software for design assistance, can completely meet the design expectations. Simulink simulative software on Matlab, has strong flexibility and intuitive. Methods used by this project is to build the analog phase locked in the Simulink model, and the composition, structure, design of analog phase-locked loop of continuous improvement and analysis. It improved according to the principle of analog PLL, build digital phase-locked loop in Simulink, and then reach the simulation design of digitalphase-locked loop based on Matlab the design objective .Key words: PLL, Automatic tracking, Matlab, simulink1 绪论1.1 本文研究背景19世纪30年代法国H.de Bellescize首次提出同步检波这一概念,并且设计出锁相环电路这一划时代的研究成果[1]。

锁相环路(PLL)电路设计实例

锁相环路(PLL)电路设计实例

软件实现PLL的代码示例
01
```systemverilog
02
// 定义PLL模块
03
module pll(input wire clk_in, output reg clk_out);
软件实现PLL的代码示例
01
parameter FREF = 100e3; // 参考频率
02
parameter N = 10; // 分频比
相位保持一致。
电荷泵型PLL的电路实现
电荷泵由两个开关和两个电容 组成,一个开关用于充电,另
一个用于放电。
当输入信号与VCO输出信号 的相位存在误差时,电荷泵 的开关会根据误差信号的极 性进行切换,从而在电容上
积累或释放电荷。
电容上的电荷量会转换为电压 信号,该电压信号通过低通滤 波器平滑后,用于调整VCO的
频率。
电荷泵型PLL的性能分析
01
电荷泵型PLL具有较高的带宽和较快的响应速度,因此适用于高 速数据传输和无线通信等应用。
02
由于电荷泵型PLL采用电荷传输方式,因此对电源噪声和电磁干
扰较为敏感,需要采取相应的措施进行抑制。
电荷泵型PLL的另一个优点是易于集成,因此适合于大规模生产
03
和应用。
04
软件实现PLL的代码示例
assign clk_out = div_by_n;
always @(posedge clk_in) begin phase_error <= #1 ($posedge clk_in ? 32'hFFFFFFFF : phase_error 1);
软件实现PLL的代码示例
PLL电路设计实例:模拟型 PLL

锁相环的matlab的仿真程序(PLL matlab simulation program)

锁相环的matlab的仿真程序(PLL matlab simulation program)

锁相环的matlab的仿真程序(PLL matlab simulation program)% phasell。

M%锁相环(PLL),调整一个本地振荡器的相位。

%与输入的调制信号。

这样的阶段%输入信号被锁定,信号解调。

%也用于PM和FM。

我们将使用闭环系统来实现它。

控制系统这里应用了%技术。

%*********************************************************** ***锁相环一阶闭环透过率的%阶跃响应% h(s)= 1;%系统类型号= 1;%道/ thetai(输出/输入阶段)关闭所有千伏= 1;KD=1;DT = 0.01T=0:dt:2u =(1,长度(t))G11 = [ TF([ 2 * pi *千* KD ]、[ 1 2 * pi *千* KD ])]为其传递函数在给定的讲义[ 11 ] = lsim(G11,U,T)图形情节(t,Y11)xlabel(秒的时间)ylabel(幅度标准”)标题(第一阶'step响应闭环率”)%*********************************************************** ****锁相环一阶闭环误差透过率的阶跃响应所有其他因素h(s)等在这里都一样。

%中来/ thetai(相同的解释。

如上)G12 = [([ 1,0 ],TF [ 1 2 * pi *千* KD ])]误差透过讲义中给出[ 12 ] = lsim(G12,U,T)图形情节(t,Y12)xlabel(秒的时间)ylabel(幅度标准”)标题(第一阶'step响应闭环误差率”)%*********************************************************** *****锁相环一阶闭环透过率的%阶跃响应VCO与输入信号相位之间的百分比% h(s)= 1;%系统类型号= 1;% v2 / thetaiKD=1;G13 = [ TF([ 0 ] [ 1 KD,2 * pi *千* KD ])]为压控振荡器的电压和输入信号透过率[ 13 ] = lsim(G13,U,T)图形情节(t,Y13)xlabel(秒的时间)ylabel(幅度标准”)标题(第一阶'step响应闭环透光率的B / W的VCO和输入阶段”)%*********************************************************** *********锁相环二阶闭环透射率的阶跃响应%系统类型号= 2;%道/ thetai= 3.15ζ= sqrt((π*千* KD)/(2 *))omegan = sqrt(2 * pi *伏* KD *)G21 = [([ 2 *泽塔* TF omegan omegan ^ 2 ]、[ 1 2 *泽塔* omegan omegan ^ 2 ])]【Y21 T ] = lsim(G21,U,T)图形情节(t,Y21)xlabel(秒的时间)ylabel(幅度标准”)标题(二阶锁相环的环路闭合'step响应率)%*********************************************************** **********锁相环二阶闭环误差透过率的阶跃响应%系统类型号= 2;% / thetai中来G22 = [([ 0 ] 0 TF 1,[ 1 2 *泽塔* omegan omegan ^ 2 ])]【Y22 T ] = lsim(G22,U,T)图形情节(t,Y22)xlabel(秒的时间)ylabel(幅度标准”)标题(二阶锁相环的环路闭合'step响应误差率)%*********************************************************** **********锁相环二阶闭环透射率的阶跃响应VCO与输入信号相位之间的百分比%系统类型号= 2;% v2 / thetaiG23 = [ TF(KD KD * [ 0 ]、[ 1 2 * pi *千* 2 * pi *千* KD KD ])]【Y23 T ] = lsim(G23,U,T)图形情节(t,Y23)xlabel(秒的时间)ylabel(幅度标准”)标题(二阶'step响应闭环透光率的B / W的VCO和输入阶段”)%*********************************************************** ***************%锁相环。

matlab锁相环环路滤波器计算

matlab锁相环环路滤波器计算

Matlab锁相环环路滤波器计算一、概述锁相环(PLL)是一种控制系统,通常用于追踪和锁定输入信号的相位和频率。

锁相环系统由相位比较器、环路滤波器、电压控制振荡器(VCO)和分频器组成。

其中,环路滤波器在锁相环系统中起着至关重要的作用,它用于平滑和调节VCO的控制电压,以确保锁相环系统稳定工作。

二、环路滤波器计算环路滤波器通常由一个低通滤波器构成,用于滤除VCO输出的高频噪声,并且在锁相环系统中起到提高系统稳定性和抑制震荡的作用。

在Matlab中,可以通过以下步骤进行锁相环环路滤波器的计算:1. 确定环路滤波器的类型(如一阶低通滤波器、二阶低通滤波器等)和参数(如截止频率、增益等)。

根据具体的系统要求和性能指标,选择合适的滤波器类型和参数。

2. 在Matlab中,可以使用filter函数来实现环路滤波器的计算。

可以定义滤波器的传递函数H(z),并利用filter函数对输入信号进行滤波处理。

可以利用freqz函数对滤波器的频率响应进行分析和评估。

3. 对于复杂的锁相环系统,可以考虑使用Simulink工具箱进行环路滤波器的建模和仿真。

Simulink提供了丰富的信号处理模块和仿真环境,可以方便地进行锁相环系统的设计、调试和优化。

三、环路滤波器设计注意事项在进行锁相环环路滤波器计算的过程中,需要注意以下几个方面的设计要点:1. 确定滤波器的截止频率和带宽:根据锁相环系统的频率特性和稳定性要求,选择合适的截止频率和带宽,以平衡相位延迟和抖动的性能指标。

2. 考虑滤波器的裙延迟和相位失真:在实际系统设计中,需要考虑滤波器的裙延迟和相位失真对系统稳定性的影响,尽量降低相位延迟和失真,以确保锁相环系统的性能。

3. 考虑VCO的控制电压范围:在设计环路滤波器时,需要考虑VCO的控制电压范围和动态范围,以确保滤波器对VCO控制电压的平滑调节和响应。

4. 考虑环路滤波器对系统稳定性的影响:在整个锁相环系统中,环路滤波器的稳定性和抑制震荡的能力是至关重要的,因此需要对滤波器的频率响应和动态特性进行充分的分析和评估。

锁相环设计及其MATLAB仿真

锁相环设计及其MATLAB仿真

摘要锁相环是一个能够跟踪输入信号相位变化的闭环自动跟踪系统。

它广泛应用于无线电的各个领域,并且,现在已成为通信、雷达、导航、电子仪器等设备中不可缺少的一部分。

根据虚拟无线电技术的特点和锁相环的基本原理,提出一种适于计算机软件化实现的锁相环数学模型,分析不同参数对锁相环捕获和跟踪性能的影响,得出不同情况下参数设定的基本准则。

计算机仿真结果表明,软件锁相环在加性高斯白噪声信道下具有较好的捕获与跟踪性能。

最后提出软件锁相环在测控系统中实现信号实时处理的优化方借助于MATLAB中的Simulink仿真软件,在Simulink中利用仿真模块搭建了全数字锁相环的仿真模型。

先借助模拟锁相环直观形象、易于理解的特点,通过锁相环在频率合成方面的应用,先对模拟锁相环进行了仿真,对锁相环的工作原理进行了形象的说明。

在模拟锁相环的基础上,重新利用仿真模块搭建了全数字锁相环的仿真模型,通过仿真达到了设计的目的,验证了此全数字锁相环完全能达到模拟锁相环的各项功能要求。

关键词:锁相环,压控振荡器,锁定,MATLAB,Simulink,频率合成,仿真模块ABSTRACTPhase-locked loop is a closed loop frequency control system,which functioning is based on the phase sensitive detection of phase difference between the input and output signals of the controlled oscillator.It has been widely used in all aspects in radio field and ,has becomed a indispensable part in communication、radar、nevigation and electronic equipments.But with the disign complexity of phase-locked loop in works,there will meet a lot of datas and a long simulation time if simulating the PLL with SPICE ,what is worse, which need to simulate several times to extract the disign parameters,at that way,the disign term will be extended.With the help of flexibility and palpability of Matlab’s simulink,the behavioral model of DPLL is builded using the block in simulink based on the frequency systhesis.Through the DPLL applicating in frequency systhesis,the principle of phase-locked loop and the work process is simulated. According to the characteristics of the Virtual Radio technology and the basic theory of the Phase Look Loop ( PLL) ,this paper puts forward the mathematicalmodel of the PLL which is suitable for software realization by the computer. In this paper,the influences of the parameters to the cap ture performance and the tracking performance are analyzed, and the basic p rincip le of the parameter setting in different conditions is given. The results of the simulation p rove that the cap ture performance and the tracking performance of Software PLL in AdditiveWhite Gaussian Noise are good. At the last of the paper, the op timized method of the PLL signal realtime p rocessing in the Tracking, Telemetering and Control System is p resented.KEYWORDS: MATLAB, phase-lockedloop, V oltage-controlledoscillator ,locked,simulink, frequency systhesis, simulationmodel。

matlab 锁相环传递函数 -回复

matlab 锁相环传递函数 -回复

matlab 锁相环传递函数-回复Matlab 锁相环传递函数的设计是一个重要的过程,可以用于控制和稳定信号的频率和相位。

在本文中,我们将逐步介绍如何设计和实现一个基本的锁相环传递函数。

首先,让我们来了解一下什么是锁相环传递函数。

锁相环(PLL)是一种用于从输入信号中提取频率和相位信息的控制系统。

传递函数是描述系统行为的数学模型,它通过输入输出的关系来表示系统的动态响应。

为了开始设计锁相环传递函数,我们首先需要定义系统的基本组成部分。

一个典型的锁相环系统通常包括一个相位比较器、一个低通滤波器、一个电压控制振荡器(VCO)和一个分频器。

1. 相位比较器:相位比较器是锁相环的核心部分,它比较输入信号和反馈信号的相位差,然后生成一个代表相位误差的控制信号。

常见的相位比较器有边沿触发型和采样相位比较器。

采用何种类型的相位比较器取决于具体应用的要求。

2. 低通滤波器:低通滤波器的作用是平滑相位误差的控制信号,以去除高频噪声和不稳定性。

滤波器通常是一个一阶或多阶的低通RC滤波器,其截止频率需要根据系统动态响应的要求来确定。

3. 电压控制振荡器(VCO):VCO 是锁相环的输出部分,它根据低通滤波器的输出控制信号来产生带有特定频率的输出信号。

VCO 可以是连续振荡器或数字控制振荡器,具体选择取决于应用的要求。

4. 分频器:分频器用于将VCO 的输出信号分频为参考信号,并发送到相位比较器进行比较。

分频器通常是一个可编程的计数器,根据实际需要选择不同的分频比。

现在我们可以开始进行传递函数的设计了。

传递函数是由锁相环的各个组成部分共同构成的。

1. 相位比较器传递函数:相位比较器的传递函数由具体的相位比较器类型决定。

边沿触发型相位比较器通常具有一个高增益范围,传递函数可以表示为H_cp(s) = K_cp/s,其中K_cp 是相位比较器的增益。

2. 低通滤波器传递函数:通常,锁相环的低通滤波器采用一阶RC滤波器,其传递函数可以表示为H_lp(s) = 1/(sT_lp + 1),其中T_lp 是滤波器的时间常数。

4阶锁相环matlab

4阶锁相环matlab

4阶锁相环matlab4阶锁相环是一种广泛应用于通信系统和控制系统中的控制算法,其主要用于抑制信号的相位偏移和频率误差。

本文将以回答关于4阶锁相环在Matlab中的应用为主题,一步一步地介绍相关知识和实例。

第一步:了解锁相环的基本原理要学习和应用4阶锁相环,首先需要了解锁相环的基本原理。

锁相环是一种控制系统,它通过比较输入信号和参考信号的相位差异,并根据差异调整输出信号的相位和频率,使其与参考信号同步。

在一个理想的锁相环中,输出信号的相位和频率将与参考信号完全一致。

第二步:了解4阶锁相环的结构4阶锁相环是一种具有更高精度和更快响应速度的锁相环。

它由相位解调器、低通滤波器、环路滤波器和控制电压产生器等组成。

相位解调器用于将输入信号分解为正弦和余弦分量,低通滤波器用于提取正弦分量,环路滤波器用于对正弦分量进行进一步处理,而控制电压产生器则根据环路滤波器的输出产生对输出信号的调整。

第三步:编写Matlab代码实现4阶锁相环在Matlab中实现4阶锁相环可以通过调用DSP System Toolbox 中的相位锁定环模块来完成。

以下是一个简单的示例代码:matlab设置相关参数omega_n = 2*pi*1e4; 自然频率zeta = 0.707; 阻尼系数Kp = 1; 比例增益Ki = 1; 积分增益创建4阶锁相环loop = dspPLL('PhaseDetectorGain', Kp, ...'LoopBandwidth', omega_n, ...'DampingFactor', zeta, ...'LoopFilterGain', Ki);生成输入信号fs = 1e6; 采样率t = 0:1/fs:1;fin = 1000; 输入信号频率inputSignal = cos(2*pi*fin*t);执行锁相环[outputSignal, controlVoltage] = loop(inputSignal);绘制输出信号和调整电压figure;subplot(2,1,1);plot(t, inputSignal, 'b', t, outputSignal, 'r');xlabel('Time (s)');ylabel('Amplitude');legend('Input Signal', 'Output Signal');subplot(2,1,2);plot(t, controlVoltage, 'g');xlabel('Time (s)');ylabel('Control Voltage');legend('Control Voltage');通过上述代码,可以生成一个包含输入信号、输出信号和调整电压的图形,并显示相应的波形。

锁相环matlab代码

锁相环matlab代码

锁相环matlab代码锁相环(Phase-Locked Loop,简称PLL)是一种广泛应用于通信系统、控制系统和信号处理系统中的重要电路。

它通过对输入信号的频率、相位进行调整,使得输出信号与参考信号保持同步。

在实际应用中,锁相环常常用于频率合成、时钟恢复、调制与解调等方面。

本文将介绍锁相环的原理及其在MATLAB中的实现。

一、锁相环的原理锁相环由相位比较器(Phase Detector)、低通滤波器(Low-Pass Filter)、控制电压生成器(Voltage-Controlled Oscillator,简称VCO)和反馈电路组成。

其基本原理如下:1. 相位比较器:用于比较参考信号与输出信号的相位差,并将相位差转换为电压信号输出。

2. 低通滤波器:对相位比较器输出的电压信号进行滤波处理,去除高频噪声,得到平滑的控制电压。

3. 控制电压生成器:根据低通滤波器输出的控制电压,调整VCO的频率和相位。

4. 反馈电路:将VCO的输出信号反馈给相位比较器,与参考信号进行比较,形成闭环控制。

二、MATLAB中的锁相环实现在MATLAB中,可以使用DSP System Toolbox提供的相关函数和模块来实现锁相环。

下面以一个简单的频率合成器为例,介绍MATLAB中锁相环的实现步骤:1. 设计参考信号和输入信号:可使用sine函数生成参考信号和输入信号。

2. 设计相位比较器:使用phasedetector函数创建相位比较器对象,并设置相位差量化精度。

3. 设计低通滤波器:使用lowpass函数创建低通滤波器对象,并设置截止频率和阶数。

4. 设计控制电压生成器:使用vco函数创建VCO对象,并设置控制电压范围和频率范围。

5. 设计反馈电路:将VCO的输出信号与参考信号输入相位比较器。

6. 运行锁相环:通过循环控制,不断调整VCO的频率和相位,使输出信号与参考信号同步。

三、锁相环的应用锁相环在通信系统、控制系统和信号处理系统中有着广泛的应用。

基于matlab的数字锁相环DPLL的仿真

基于matlab的数字锁相环DPLL的仿真

2、DPLL 基本模型和原理 全数字锁相环包括数字鉴相鉴频器(PFD) 、数字滤波器 (LPF) 、数字振荡器(NCO)三部分,如下图所示:
与模拟锁相环电路相比, 全数字锁相环实质上是通过将 前者替换成数字电路而得到的,所做的改变是将其中的鉴相 鉴频器(PFD)和环路低通滤波器(LPF)转换到离散系统。 环路低通滤波器(LPF)可以通过一个希望的传输函数的拉普 拉斯变换的 z 变换而得到。压控振荡器需要转换成数控振荡 器(Numerically Controlled Oscilaator) 。 锁相环闭环系统状态的变化依赖于 PFD 输出的相位误差。 相位误差输出一次, 锁相环状态改变一次; PFD 不输出相位误 差,锁相环里的所有信号均不改变状态。根据上面的分析, 可以将仿真过程分为两个过程:1)计算 PFD 输出的相位误 差;2)根据相位误差,计算锁相环里各个模块的状态。 PFD 电路用于检测参考信号和反馈信号之间的相位误差。 它的状态转换如下图所示:
Tk T0 T0 yk 1 N
式中 T0 / N 为数控振荡器周期相对于中心周期 T0 变化的最
Tk 小单位。 当无控制时,yk 1 =0, = T0 ; 有控制时周期以 T0 / N
或其倍数的量相对于 T0 作阶跃式的改变。与 T0 / N 相对应的相 位改变量为:
2 (rad ) N
所以 N 是表示 2 弧度内相位受控变化大小的一个量,也 叫模 2 内状态数。这就是说,数控振荡器输出脉冲的瞬时相 位 0 (k ) ,在 2 弧度内只能以 或其倍数离散地变化。在这时,
T0
/ N = , 为信号钟的周N
T0 Tc
三、参考代码和仿真结果
通过建立以上所介绍的全数字锁相环的仿真模型,在 matlab 中得到其仿真系统如下图所示:
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

奈奎斯特型全数字锁相环(NR-DPLL)
注:本文截取于通信原理课程综合设计,载波提取部分中的锁相环解调部分中的基础锁相环。

MATLAB编程仿真实现,想要simulink实现的同学要失望啦。

代码在本文末,抱歉未加注释。

理解本文需要的知识:信号与系统,数字信号处理,同步技术。

2.7 载波的同步提取
提取载波信息可用锁相环进行跟踪载波或调制信息。

本文采用奈奎斯特型全数字锁相环(NR -DPLL )对接收信号进行载波同步提取,并用于相干解调。

2.7.1 NR -DPLL 结构介绍
数字锁相环的基本组成如下
图2-6 数字锁相环的组成
NR -DPLL 是基于奈奎斯特采样鉴相器、数字环路滤波器、数字控制振荡器的一种数字锁相环。

下面分别对各部分作简要介绍。

2.7.2 奈奎斯特采样鉴相器
奈奎斯特采样鉴相器的组成框图如图2-7所示。

图2-7 奈奎斯特采样鉴相器的组成框图
为了表述方便,设数字控制振荡器(NCO )输出的本振数字信号为
0002()cos(())k k k u t U t t ωθ=+ (2.7-1) 输入信号
101()sin(())i u t U t t ωθ=+ (2.7-2)
其中
100()(),i i o t t t θωθωωω=∆+∆=-
输入信号经A/D 采样后,第k 个采样时刻采样量化后的数字信号为
01()sin(())i k i k k u t U t t ωθ=+ (2.7-3)
对输入信号进行A/D 变换的采样速率由带通信号奈奎斯特采样定理确定,但为防止信号频谱混叠并保证信号相位信息的有效抽取,采样速率一般选取前置带通滤波器的两倍带宽以上。

令()(),()()i k i o k o u t u k u t u k ==,即()i u k 和()o u k 相乘后,经低通滤波得到的数字误差信号
()sin ()d d e u k U k θ= (2.7-4) 式中
12()()()e k k k θθθ=- (2.7-5) 2.7.3 数字环路滤波器
数字环路滤波器与模拟环路中环路滤波器的作用是一样的,都是为了抑制高频分量及噪声,且滤波器的参数直接影响环路的性能。

在实际应用中一阶数字环路滤波器的实现形式如图2-8所示。

图2-8 一阶数字环路滤波器的实现形式
其Z 域传递函数:
2
11
()z ()1c d u k G F G u k z
-=+-()=
(2.7-6) 按照图2-8中所实现的数字滤波器,其频率特性与理想积分滤波器的频率特性一致;两种滤波器参数之间也有着一定的对应关系。

对理想积分滤波器的传递
函数式采用双线性变换,即令1
1
211s z s T z ---=+,得到
22
1
11
1121()211s s T T G F z G z z τττ---=+=+-- (2.7-7) 式中, s T 为采样周期,
211
22s
T G ττ-=
(2.7-8) 21
s
T G τ=
(2.7-9)
式(2.7-8)和式(2.7-9)表明了两种滤波器参数之间的对应关系,也可以说明图2-8所示的一阶数字滤波器就是模拟理想积分滤波器的数字化表示形式。

二阶数字滤波器可由两个一阶数字滤波器串联得到。

2.7.4 数字控制振荡器(NCO )
NCO 采用直接数字相位综合技术(DDS ),该技术主要是由时钟驱动读取三角函数表,功能框图如图2-8所示。

图2-9 基于DDS 的NCO 结构
Ok,截取结束。

接下来是编程中必须的参数计算以及思路分析。

首先是参数选择,时域响应最好取
ξ=0.707,
根据经验
12=10ττ,
令NCO 相位控制增益
0K =1
’,鉴相灵敏度d K 1=,则0K s f =,环路增益
d 0K s
K K f ==,
再由理想二阶环路中
2
2
n
τξω=

n ω=
于是,
21
1
200
S
T G τ=
=
, 221120.10.097522
S T G
G ττ-=
=-= 以上两个参数同时缩小相同的倍数,捕获带也缩小相同的倍数。

而扩
大时,最大到两倍,大于两倍时捕获带不再变化,只是捕获时间短一些。

环路的3Db 带宽
2c n ωΩ==接下来是编程思想,离散信号过系统实际是系统冲击响应与信号卷积,所谓卷积就是错位相加,于是引申出一种叫做重叠保留法的计算方法,即信号可分段计算。

鉴相器输入的两个信号每次分别都仅是一个点,相乘后进入滤波器,此处就得用到这个所谓的重叠保留法。

输入一个点输出一个点,其他点保留与下次错位相加,再输出一个点。

鉴相器输出的信号过环路滤波器,通过Z 域传递函数计算。

最后是DDS ,网上有很多相关文档,自己看看,注意输入相位要累积,所谓驱动嘛,当然每次依然是输出一个点,这个点作为下次鉴相器输入信号之一。

仿真结果如下:
上图中输入频率是27Hz,锁相环自然频率为32Hz。

搞懂了这些编程思想,以及DDS后,自然谐振频率,输入信号频率自己去做调整。

但注意锁相环的参数限制。

到这里,NR-DPLL就完成了。

在此基础上平方环,科斯塔斯环,判决反馈环等等都很容易编程仿真实现。

仿真代码:
锁相环:
% function uo=pll(ui,Fs)
clear all
clc
fo=32;
fi=27;
% fi=length(ui)*1/(n*fo);
g1=0.005*2;
g2=0.0975*2;
n=64;
t=0:1/(n*fo):0.5-1/(n*fo);
ui=sin(2*pi*fi*t);%输入信号
uo=zeros(1,length(ui));
uo(1)=dds_sin(10,n*fo,fo,0,1);%Nco输出初始信号
uo1(1)=dds_sin(10,n*fo,fo,0,1);
% erro=ph(ui(1),uo(1));%鉴相器输出
sig(1)=ui(1)*uo(1);
l=30;
hn=fir1(l,0.2*fo/(n*fo));
temp=conv(hn,sig(1));
temp1=temp(2:end);
erro(1)=temp(16);
lpu1(1)=erro(1)*(g1+g2);
lpu2(1)=lpu1(1)*(g1+g2);
m=2*pi*fo/2048*(1:length(t));
for i=1:length(ui)-1
uo(i+1)=dds_sin(10,n*fo,fo,m(i)+lpu2(i)*1,1);
uo1(i+1)=dds_sin(10,n*fo,fo,m(i)+lpu2(i)*1-m(14),1);
sig(i+1)=ui(i+1)*uo(i+1);
temp=conv(sig(i+1),hn);
temp(1:l)=temp(1:end-1)+temp1;
temp1=temp(2:end);
erro(i+1)=temp(16);
lpu1(i+1)=g1*erro(i+1)+g2*erro(i+1)+g2*erro(i);
lpu2(i+1)=g1*lpu1(i+1)+g2*lpu1(i+1)+g2*lpu1(i)+lpu2(i);
end
% end
DDS代码
function [A] = dds_sin(N,fs,f,phi0,Nig)
% % [返回参数] (传递参数)
% f=8;
% N=8; %频率信号字长N:表示频率信号样点的字长
% fs=256; % 采样频率fs:DDS内部采样频率(输出频率信号的采样频率)
% phi0=0; % 初始相位phi0:输出信号的初始相位
% % df=1; %最小频率间隔df:DDS输出信号的最小频率间隔(频谱分辨率)
% Nsig=256; %输出频率信号样点个数Nsig
% % f0 输出信号频率
Nperiod=2^N; %这么多样点表示一个周期正弦信号
n=0:(Nperiod-1);
Sroot=sin(2*pi*n/Nperiod);%*(2^(N-1)-1); Asin=Sroot;
dphi=2*pi/Nperiod;
M=floor(2^N*f/fs);
M0=floor(phi0/dphi);
% A=zeros(1,Nsig);
% A=Asin(x);
for i=1:Nig
x=mod(M0+1+(i-1)*M,Nperiod);
if x==0
x=1;
end
A(i)=Asin(x);
end
% A1=A;
end
% x=mod(M0+(i-1)*M,Nperiod);
% xA=0:1/fs:(Nsig-1)/fs;
% plot(xA,A)
% title('DDS正弦信号时域图');xlabel('t/s'); % end。

相关文档
最新文档