数字锁相环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)摘要锁相环电路是使一个特殊系统跟踪另外一个系统,更确切的说是一种输出信号在频率和相位上能够与输入参考信号同步的电路,它是模拟及数模混合电路中的一个基本的而且是非常重要的模块。

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

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

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

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

  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。

相关文档
最新文档