基于sigma-delta和MASHIII调制器的频率合成器simulink建模与仿真

1.算法运行效果图预览

其误差当系统进入稳定状态的时候,频率误差就小于1E-9,并且随着频率的增加,其稳定性将更好。

2.算法运行软件版本

matlab2022a

3.算法理论概述

频率合成器是现代无线通信系统中的关键组件,用于生成精确且可调的频率信号。基于Sigma-Delta(Σ-Δ)调制器和MASH III(Multi-stage noise shaping and High-order single-loop)调制器的频率合成器结合了两种技术的优势,提供了高分辨率和低噪声的性能。

3.1 Sigma-Delta调制器原理

Sigma-Delta调制器(Σ-Δ ADC)以其高分辨率和内在的噪声整形特性而著称。在频率合成器中,Σ-Δ调制器用于将低频的模拟信号或相位误差转换为高速的单比特数据流。

Σ-Δ调制器通常由一个差分器、一个积分器(或多个积分器)、一个量化器和一个反馈DAC(数模转换器)组成。

Σ-Delta调制器的工作原理基于过采样和噪声整形。输入信号与反馈信号之差被积分,然后量化。量化产生的误差被反馈回输入端,形成闭环系统。

3.2 数学模型

Σ-Delta调制器的数学模型可以用以下差分方程表示:

Yn = Xn + (1 - Z^-1) * En

其中,Yn是输出信号,Xn是输入信号,En是量化误差,Z^-1表示单位延迟。

3.3 噪声整形

噪声整形是Σ-Δ调制器的关键特性,它将量化噪声推向高频,从而在低频范围内实现高信噪比(SNR)。

3.4 MASH III调制器原理

MASH III调制器是一种多级噪声整形和高阶单环结构,结合了多级Σ-Δ调制器的优点。MASH III调制器由多个级联的Σ-Δ调制器组成,每一级都有自己的量化器和反馈DAC。每一级的输出都被下一级用作输入的一部分,从而形成级联结构。最后一级的输出经过一个数字误差校正滤波器(DECF),以消除前面各级产生的量化噪声。MASH III调制器的数学模型相对复杂,涉及到多级Σ-Δ调制器的联合分析和数字滤波器的设计。

通过精心设计的噪声整形和误差消除机制,MASH III调制器能够在保持高分辨率的同时,显著降低带内噪声。

3.5 基于Sigma-Delta和MASH III的频率合成器

结合Σ-Δ调制器和MASH III调制器的频率合成器,通常用于实现高分辨率的频率控制和低噪声性能。这种合成器可以用于各种应用,包括无线通信、音频处理和传感器接口。基于Σ-Δ和MASH III的频率合成器通常包括一个相位累加器、一个Σ-Δ调制器、一个MASH III调制器和一个DAC。

相位累加器根据所需的频率生成相位值,这些值被Σ-Δ调制器转换为高速数据流。然后,MASH III调制器对这些数据流进行进一步处理,以消除量化噪声并提高分辨率。最后,DAC将这些数字信号转换为模拟信号。

基于Sigma-Delta和MASH III调制器的频率合成器结合了两种先进技术的优势,提供了高分辨率和低噪声的性能。这种合成器在无线通信、音频处理和传感器接口等领域具有广泛的应用前景。通过精心设计和优化,可以实现出色的杂散性能、快速的频率切换和低功耗操作。

4.部分核心程序

`window = hann(length(yout));

Pyy,w = periodogram(yout,window,100000);

PSD2 = 1/M+1/100*(2*(w)).^4;

Len = length(PSD2);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure;

semilogx(w/pi,10log10(piPyy),'b');

hold

semilogx(w(Len/100:Len)/pi,10*log10(PSD2(Len/100:Len)),'k','linewidth',2);

grid on

xlabel('Normalized Frequency (x\pi rad/sample)')

ylabel('Power/frequency(dB/rad/sample)');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure;

plot(yout,'linewidth',2);

grid on;

xlabel('times');

ylabel('sigmadelta调制器输出');

grid on

figure;

hist(yout,5)

xlabel('output yout')

ylabel('number of occurance');

figure;

plot(yout2(1:3*Len/4),'linewidth',2);

grid on;

xlabel('times');

ylabel('V');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%分析频率稳定度

Fre = yout3;

K = 1;

t1 = yout3(1:end-K);

t2 = yout3(K+1:end);

Err = abs(t1-t2)./t1;

ttt = Err(20:end);

idx = find(ttt==0);

ttt(idx)=\[\];

figure;

loglog(ttt,'linewidth',2);

grid on;

xlabel('times');

ylabel('频率稳定度');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%最后进行杂散分析

N = 16; %累加器的位数;

K = fix((2^N)*0.2); %频率控制字,即累加的步长;

D = 8; %8bit DAC

g = gcd(K,2^N);

pe = 2^N/(g);

n = 1:pe;

pp = pe+1; %频谱分析点数

add_y = mod(n*K,2^N); %累加器的输出表达式;

%设定量化区间

pat = -1 + 1/ (2^ (D - 1) ):1/ (2^ (D - 1) ):1 - 1/ (2^ (D -1) );

%设定量化码本值

codebook = -1 + 1/ (2^D):1/ (2^(D - 1) ) :1 - 1/ (2^D);

rom_x = cos(2piadd_y/(2^N));

index,quants2 = quantiz(rom_x,pat,codebook);

Pzz,wz = periodogram(quants2,\[\],'onesided',pp);

figure;

psdplot(Pzz/max(Pzz),wz);`

相关推荐
HPtiger7 小时前
数据结构——选择排序
数据结构·算法·排序算法
康实训8 小时前
老年评估仿真实训平台架构设计与老年人能力评估实训室教学落地实践
大数据·人工智能·算法·实训室·实训室建设
DongQiShanRen8 小时前
六根硬件映射(四):归属澄清、两处不一致与卷十一总表
开发语言·人工智能·算法·rust·哈希算法·集成学习
CCblandy8 小时前
雪花 ID 四个边界实测:时钟回拨重号 500 个,前端 JSON.parse 直接丢精度
后端·python·算法·性能优化·架构
丑梨数据8 小时前
信创环境里跑文档工具:格式兼容与本地合规的几个坑
数据结构·人工智能·算法·决策树·排序算法
erzong23110 小时前
Linux操作系统:线程概念与控制
linux·算法
Nil20811 小时前
leetcode 5最长回文子串
算法·leetcode·职场和发展
xxwl58511 小时前
区域赛分类题解
c++·笔记·学习·算法
m0_6745719711 小时前
力扣 hot 100 python
python·算法·leetcode
青少儿编程课堂11 小时前
蓝桥杯+全国青少年信息素养大赛+电子学会PythonC/C++考级:最长公共子序列LCS解析
c++·python·算法·bfs·信息学竞赛