微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > RFIC设计学习交流 > ADC SNR 仿真急!

ADC SNR 仿真急!

时间:10-02 整理:3721RD 点击:
我现在做了个14BIT delta-sigma ADC 量化器是1位,按照流程将输出直接连到一个FFT的veriloga模块中,为啥出来不是正玄波,而是方波。难道单比特量化,不能这样做仿真吗

问题描述模糊,太不清楚你到底想做什么
按照流程?你这个流程是?
FFT? 你是想看频谱图?
出来的是方波? 你是想看降采样后再滤波出来的波形?

问题描述模糊,太不清楚你到底想做什么
按照流程?你这个流程是?
FFT? 你是想看频谱图?
出来的是方波? 你是想看降采样后再滤波出来的波形?

sigma delta ADC 基本上 是 analog sigma delta ADC + digital decimation filter : 你的問題可能是輸入信號太大而造成sigma delta modulator overflow , 要經過 decimation filter 運算得到time domain 信號, 應該是analog modulator overflow 你把信號調小試看看 有問題再提出來

你说的是DS-ADC还是DSM,如果是1位量化器的输出不是方波还能是什么

嗯,就是将1位量化器出来的二进制信号,转换成十进制信号,无法转换。一直是高电平。ADC 的OSR=64,输入信号10K,VDD=0.75,所有的OTA的DC参考电压设置在750mV,共模输入和输出参考电压均在750mV
难道是我的比较器设计有问题。

将二进制转换成十进制后,将得到的波形输出到MATLAB,进行FFT变换

我输入的信号幅度在0.3V,应该不大啊

问题出在1位比较器,只有1位,要么0,要么1,怎么将这些码进行PSD分析。
我以前是按照多比特量化来做的,量化器,经过2转10进制变换后,是离散的正玄波。

哦,你是想看这个啊单比特当然看不到任何正弦波,多比特也不是正弦波,只是有一种正弦的整体上的趋势而已
你直接将其变为-1和1,原理跟多比特其实完全一样的,然后直接放到calcSNDR函数里不就行了



我现在改了下,将其变成0,1信号。为啥要变成-1,1?
这边有个现成的FFT程序,采样点的个数是不是和我的分辨率有关。

用0,1也行啦,不过出来会有个DC分量-1,1出来不会有DC量
FFT可以直接用schreier的工具啊
14bit还是才多一点吧,至少采个2^15个吧
要注意coherent sampling

fin=Nper*Fs/numpt,很多程序有这个关系式,是不是我在仿真的时候也要加这么大的频率
numpt=2^14
我在ADC输入端信号频率是11*Fs/2^14,完全不懂啊,我用的FFT就是网上通用的那种,仿真时间numpt*Ts,
一直在搞这个,每次采样的点,MATLAB总说我的点数不对。

schreier工具是SDTool ?

是啊,schreier工具多方便

哦,谢谢,我先看看,我是用这个工具做的行为级,你的意思说直接将比较器出来的信号输入到calcSNDR 那个函数吗,不需要改动?

对啊,不一样的吗,你比较器出来还不是0,1,0,1这样,你只需要一个周期采一个点,然后放到calcSNDR里面就行了啊

额,那个是函数形式,我这个一堆数据怎么放。,不是要写个调用程序,然后什么加汉明什么之类的,
能不能给我个程序。谢谢

额。很多输入就是现有的啊,唯一缺的就是输入信号,其他一些什么采样频率,窗啊,窗的大小啊,之类的,本来你就应该知道的啊

1 bit sigma delta modulator很容易 unstable, 要設計好係數, 最好做multi-bit 而且 analog sigma delta modulator 會overflow的點 不一定是quantizer 前面的點 每一級OP的輸出點都有可能 可能是你signal scaling沒做好 最好是做multi bits SDM, 再搭配 1st/2nd order dynamic element matching
幾 bits 的SDM 是看DR, PSNDR 實際測量數據, 不是嘴巴上說幾bits 就是幾bits
請問您是做discrete time SDM 還是 continuous time SDM?



DT的,现在我用matlab 程序跑,有个这个问题
index exceeds matrix dimensions,
问题是别人也跑CT,12bitADC,4位量化,就问题,为什么我的这有问题,我的得到数据比他的还少

我现在是这样想的,我先把功能实现,有可能SNR很低。因为是一位量化,我就写了个VERILOGA,将量化器输出结果,转换为二进制码。然后将得到二进制码,做FFT变换,得到SNR.
我继续一个FFT变换的程序,我手里面有一个老是说的维度超出。用别人的数据就好好的,我的就不行了。怎么弄,我先很发愁。
我打算先做1bit的,然后做多么比特量化。FFT总不对,您这样FFT程序没有。
我的ADC,信号带宽设置在10k,OSR=64,FS=1.28M,前向反馈,先做仿真出来功能是实现的,先做就是无法计算SNR。我已近有5k左右的数据了,不知道怎么测量

您要跑 time domain simulation 要記得去掉暫態 做FFT時要先取window

似乎是你做 for 迴圈時超過原先定義的陣列大小

应该没有超出吧,我的数据就那那么几个,而且,是用范围选择的,
v2=v1(Nskip+1:Nskip+numpt)
Nskip=100,numpt=4096,
5k的二进制数据足够了吧。我真不知道啥回事,而实验室的工程师也是用这个程序跑到,数据比我的还大,都没有问题

建議您用Matlab做比較好 去掉暫態 輸入信號一定要取整數周期 振福不能讓OP輸出進入線性區取window 再做FFT 要取幾個週期您自己設定就好

你说的COHERENT SAPMLING,是什么。我昨天弄好了,采了2^12个点,没有采样2^14个点,分辨率的大小和采样点有关系吗

用coherent sampling,采65536个点(保证满足你的情况),加hann-win或者Balckmanharris-win

是采样固定点吗?我想问一下,一位量化器,出来的数据,怎么保存,波形仿真出来,需要转换0,1格式吗,我转换的结果有问题,全是0,1,0,1间隔,而波形不是这样的,基本上达到了要求

low pass your 0,1 signal, you will realize what is sigma delta

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

网站地图

Top