在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 446|回复: 4

[求助] 仿真sigma delta adc 直流输入的问题

[复制链接]
发表于 2024-8-25 00:44:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 cykcbs 于 2024-8-25 00:44 编辑

最近在学习直流输入情况下,sigma delta adc 的变化,想在matlab中复现这张图。
1.我想知道:直流的带内噪声该如何计算,在文章提到得到的结果是带内噪声的均方根值,我尝试使用过0.1Hz输入正弦波或者直流输入,但是同样的遇到一个问题,我不知道如何得到带内噪声的结果,对于直流信号,我完全不知道如何区分信号本身和带内噪声,而0.1Hz的交流信号,虽然我用SD toolbox里面的函数得到了带内噪声,但结果似乎也不对
2.我不太理解的是:不同直流输出的波形比如1 0 1 0 1 0 ,如何像论文中的图,造成不同的影响。

很抱歉,我不太清楚怎么设置免费附件,这里是我的代码和仿真模型
clear
t0=clock;
%Global Variable
OSR=128;
N=8192*4;      %Sample number
bw=20e3;    %base band
R=128;      %OSR
Fs=2*bw*R;
Ts=1/Fs;
Fin=0.1;
fin=2*pi*Fin;
Ntransient=10;
Amax=135;      %amp saturate value
dc=3/5;
open_system('sd1_mod')
options=simset('InitialState', zeros(1,2), 'RelTol', 1e-3, 'MaxStep', 1/Fs);
sim('sd1_mod', (N+Ntransient)/Fs, options);        % Starts Simulink simulation
w=ds_hann(N);
fn=Fin/Fs;                        % Normalized signal frequency
fB=N*(bw/Fs);                % Base-band frequency bins
yy1=zeros(1,N);
yy1=yout(2+Ntransient:1+N+Ntransient)';
fBL=1;
fBH=fB;
%SNR 的计算函数
signal=(N/sum(w))*sinusx(yy1(1:N).*w,fn,N);        % Extracts sinusoidal signal
noise=yy1(1:N)-signal;                                    % Extracts noise components
stot=((abs(fft((yy1(1:N).*w)'))).^2);                % Bitstream PSD
ssignal=(abs(fft((signal(1:N).*w)'))).^2;        % Signal PSD
snoise=(abs(fft((noise(1:N).*w)'))).^2;                % Noise PSD
pwsignal=sum(ssignal(fBL:fBH));                    % Signal power
pwnoise=sum(snoise(fBL:fBH));                        % Noise power
snr=pwsignal/pwnoise;
snrdB=dbp(snr);
norm=sum(stot(1:N/2))/sum(yy1(1:N).^2)*N;        % PSD normalization
pnoise=snoise/norm;
pnoisedB=dbp(pnoise);
MSE=mag2db(rms(pnoise(1:128)));

The Structure of Quantization Noise from Sigma-Delta Modulation

The Structure of Quantization Noise from Sigma-Delta Modulation

1阶Sigma delta adc

1阶Sigma delta adc

模型设置

模型设置

sd1_mod.zip

21.69 KB, 下载次数: 3 , 下载积分: 资产 -2 信元, 下载支出 2 信元

代码

发表于 2024-8-25 21:21:57 | 显示全部楼层
参阅书籍:
Design of Sigma-Delta Converters in MATLAB®_Simulink® (2019, Springer International Publishing)
chapter:2.2.3 Tonal Behavior and DC Input Sweep
你这个只是看一阶的SDM吧。先把PSD搞对,然后做一个DC sweep就可以画出来了。
 楼主| 发表于 2024-8-25 23:49:25 | 显示全部楼层


满嘴谗言 发表于 2024-8-25 21:21
参阅书籍:
Design of Sigma-Delta Converters in MATLAB®_Simulink® (2019, Springer International Pub ...


感谢回复,我去看一下
 楼主| 发表于 2024-8-26 17:05:03 | 显示全部楼层
感谢指点,通过给的代码文件跑出来结果了,具体代码细节还没看,不过有一点是baseband.power.m 文件会出问题,原因在于psd这个函数不能使用了,要改成pwelch。
%% COMPUTE PSD:

psddata = spectrum.welch(psdset.win, psdset.framesize);
dspdata = pwelch(mod_out,hanning(8192),50,8192,Fs);
这是我修改的代码,hanning(8192)代表之前Window ,50是non-overlapping rate ,8192是NC:\Users\86150\Desktop\8I917Y3(T)`BQ256F_9%5DZL9.png
8I917Y3(T)`BQ256F_9]ZL9.png
发表于 2024-8-28 10:51:43 | 显示全部楼层
正常,PSD函数被遗弃了,旧版本的matlab可以用,我试过Matlab2020b可以跑
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 19:43 , Processed in 0.019311 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表