微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > RFIC设计学习交流 > 求问sigma delta ADC的频谱分析

求问sigma delta ADC的频谱分析

时间:10-02 整理:3721RD 点击:
请问从cadence中导出了仿真数据,在matlab中进行fft变换时的matlab程序该怎么写呀?是不是与一般的数据做fft变换不同,要考虑到OSR的问题,要把过采样频率转换为奈奎斯特频率呢?具体应该怎么呢?多谢

补充一下
我的SDM的量化器输出是三位数据,我把它们从cadence中导入matlab,利用如下程序:
vd0=round(vd0);%先取整
vd1=round(vd1);
vd2=round(vd2);
for i=1:8000%在将三位数据转化成一位的数据流
if (vd2(i)==3)&(vd1(i)==0)&(vd0(i)==0)
vd(i)=1;
else if (vd2(i)==0)&(vd1(i==3))&(vd0(i)==0)
vd(i)=0;
else if (vd2(i)==0)&(vd1(i)==0)&(vd0(i)==3)
vd(i)=-1;
end
end
end
end
Fs=32000000;%进行FFT仿真
N=8000;
z=fft(vd);
f=(0:N-1)*Fs/N;
Mag=2*abs(z)/N;
plot(log10(f(1:N/2)),20*log10(abs(Mag(1:N/2))),'-');
这样得到的结果是不对的,我的程序应该是有问题的,请大神指教~

自己顶一个

matlab网页上有个SDtoolbox,里面有的?
做sigmadelta ADC都用过这个toolbox吧?

我是把cadence中的数据导入matlab中进行处理,SDtoolbox是用在建simulink模型时候用的吧,这里能用上吗?

我又找到了一个FFT程序如下,vd是一位的数据流,
ntot=length(vd);
osr=32;
N=8192;
fsignal=476562.5;
fs=32000000;
fbin=N*fsignal/fs;
w=hann(N);
nb=3;
w1=norm(w,1);
w2=norm(w,2);
NBW=(w2/w1)^2;
V=fft(w.*vd)/(w1/2);
signal_bins=fbin+[-(nb-1)/2nb-1)/2];
inband_bins=0:N/(2*osr);
noise_bins=setdiff(inband_bins,signal_bins);
snr=dbp(sum(abs(V(signal_bins+1)).^2)/sum(abs(V(noise_bins+1)).^2));
figure(1);
clf;
semilogx([1:N/2]/N,dbv(V(2:N/2+1)),'b','Linewidth',1);
hold on
[f p]=logsmooth(V,fbin,2,nb);
plot(f,p,'m','linewidth',1.5);
s=sprintf('SNR= %4.1fdB\n',snr);
text(0.1,-120,s);
figureMagic([1/N 0.5],[],[],[-140 0],10,2);
但得到的SNR只有-3.5,是怎么回事呀?请指教

同问,求解答,有没有这方面的讲解

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top