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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] 一阶SD ADC matlab仿真

[复制链接]
发表于 2021-7-6 19:07:48 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 HGL 于 2021-7-7 13:50 编辑

我用sigma delta toolbox仿真一阶的sd 调制器,它初始设置是64倍OSR,得出的SNR是对的,我把OSR改成128,频率减半,仿真出来只增加了4dB的SNR,这是为什么呢?
更新一下,这是我自己写的,写出来也不对,只有在它设置的频点上才是对的。
OSR = 64;                % Oversampling ratio used to define singal band
Fs = fb*2*OSR;           % Sampling frequency, in Hz
dc = 0;                  % dc input value
sinfreq = 21*OSR/8192*Fs/OSR;          % in Hz. NOTE IT SHOULD REALLY HIT A PSD BIN!
sinamp = 1/sqrt(2);

N_fft = 8192;
span = 2;
Data_start = 1000;
fbin = round(N_fft*sinfreq/Fs);
%----------------------------------------------
vout = mod_out(Data_startata_start+N_fft-1);
%voutw=vout.*blackman(Num_samples)';
voutw = vout.*hanning(N_fft);
FFTdata1 = fft(voutw,N_fft); %FFT
%---------------------------------------------
FFTdata = FFTdata1.*conj(FFTdata1);
FFTdata(1:2) = 0; % dc
MAX = max(FFTdata);
FFTdata = FFTdata/MAX;
PYY = 10*log10(FFTdata);
%--------------------------------------
F_fft = Fs/2*linspace(0,1,N_fft/2+1);
semilogx(F_fft,PYY(1:N_fft/2+1));
% plot(F_fft,PYY(1:N_fft/2+1));
grid on;
%---------------------------------------------------
%Start SNDR
SNDRdata = FFTdata;
sig_bin = fbin + (-span:span);
inband_bin = 1N_fft/(2*OSR)+1);
noise_bin = setdiff(inband_bin, sig_bin);
%cal SNDR
% Sig = sum(SNDRdata(M+1-span:M+1+span));
% SNDRdata(M+1-span:M+1+span) = 0;
% NoiseT = sum(SNDRdata(2:N_fft/2+1));
SNDR = 10*log10(sum(SNDRdata(sig_bin))/sum(SNDRdata(noise_bin)));
% end SINAD
%-Start SFDR
% MaxA = max(SNDRdata(2:N_fft/2+1));
% SFDR = 10*log10(Sig/MaxA);
ENOB = (SNDR-1.76)/6.02;




发表于 2021-7-6 20:17:32 | 显示全部楼层
一阶modulator的话,OSR x2是不是应该SQNR +9dB?
是不是你的code哪里错了?还是在你的模型里除了量化噪声还有其他的噪声源?
 楼主| 发表于 2021-7-7 10:00:16 | 显示全部楼层


方块forever 发表于 2021-7-6 20:17
一阶modulator的话,OSR x2是不是应该SQNR +9dB?
是不是你的code哪里错了?还是在你的模型里除了量化噪声还 ...


模型应该没错,可能是fft的问题,但是不知道是什么问题,因为对于不同频率,计算出的SNDR不同
发表于 2021-7-7 11:49:54 | 显示全部楼层
计算SNR的带宽没有跟着变吧
 楼主| 发表于 2021-7-7 14:10:59 | 显示全部楼层


kwankwaner 发表于 2021-7-7 11:49
计算SNR的带宽没有跟着变吧


情况是,我OSR 64,带宽24k,采样频率2*24k*OSR,只有在输入频率12k的情况下,SNR和计算值是一样的,其它频率输入SNR都会变小


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-5-4 09:46 , Processed in 0.025920 second(s), 6 queries , Gzip On, Redis On.

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