在仿真3阶3位delta-sigma调制器时得到的SNDR和ENOB为负数?
时间:10-02
整理:3721RD
点击:
最近想根据Woogeun Rhee教授的论文"MULTI-BIT DELTA-SIGMA MODULATION TECHNIQUE FOR FRACTIONAL-N FREQUENCY SYNTHESIZERS"搭建一个3阶3位的delta-sigma调制器。下图是文章中给出的结构框图。
我利用matlab/simulink搭建了一个理想情况(不考虑各种噪声)下的模型:
其中调用了SDtoolbox中的ADC-DAC模块和PSD模块:
模型的具体参数设置如下:
BW=22000;% Base-band
OSR=256;% Oversampling rate
Fs=2*OSR*BW;% Sampling frequency
Ts=1/Fs;
N=2^14 ;% Samples number & number of FFT points
M_periods=17;% Number of periods
Fin=Fs*M_periods/N;% Input signal frequency
Ampl=1;% Input signal amplitude [V]
finrad=2*pi*Fin;% Input signal frequency in radians
Ntransient=0;
w=hann_pv(N);
f=Fin/Fs;% Normalized signal frequency
fB=N*(BW/Fs);% Base-band frequency bins
yy1=zeros(1,N);
yy1=yout(2+Ntransient:1+N+Ntransient)';
ptot=zeros(1,N);
[snr,ptot]=calcSNR(yy1(1:N),f,1,fB,w,N);
Rbit=(snr-1.76)/6.02;% Equivalent resolution in bits
仿真得到的结果图如下:
不太明白问题出在哪里?求助各位~谢谢!
同问,关注ing
首先Ntransient不要设置成0, 因为仿真结果开始的点不稳定, 不去掉会有大的dc分量
然后你输出的信号没有做fft,要先做fft然后算snr
然后嘛,simulink自带的psd不好用, 用SD工具箱比较好
非常感谢您的回复~