|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
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
-
1阶Sigma delta adc
-
模型设置
-
-
sd1_mod.zip
21.69 KB, 下载次数: 4
, 下载积分:
资产 -2 信元, 下载支出 2 信元
代码
|