简 介:本文探讨了ADC采样频率对150kHz信号幅度测量的影响。实验使用STC32G微控制器,通过改变ADC时钟分频系数(0-7)获得不同采样频率下的数据。研究发现:1)ADC采样频率较高时,输入阻抗较低导致信号幅度减小;2)分频系数为7时(最低采样频率)信号估计方差最小(0.2032);3)分频系数为6时出现异常,方差最大(1.4083)。实验采用三角窗函数处理256点采样数据,通过FFT分析获得信号归一化频率和幅度。结果表明ADC采样频率的选择会显著影响信号测量精度,最佳采样频率需根据具体应用场景确定。
关键词:ADC,采样频率,估计方差不同ADC频率对于测量结果的影响
- 通过采样256数据计算单个频率交流信号有效值
- STC32G12 使用外部晶振
- STC32G 采集150kHz 信号并测量幅度
01ADC采样频率对于信号检测影响
一、背景介绍
昨天,使用带有外部晶体的STC32G电路板, 采集了 150kHz 信号的多组ADC数据。 分别对应 ADC 不同的时钟频率下采集到的数据。 有的数据是在欠采样频率下获得的。 下面通过数据进行交流频率幅度检测, 查看一下哪一种 ADC 采样频率所获得的信号幅度更为精确。 刚才通过实验发现, 选择对采集数据进行三角加窗, 采用正确的数据长度, 便可以获得非常好的信号检测数值。
▲ 图1.1.1 ADC分频系数为0对应的采样数据fromheadmimport*ddim=tspload('sample0','ddim')forid,dinenumerate(ddim):plt.clf()plt.plot(d,lw=3)plt.xlabel("N",color="steelblue",fontsize=24)plt.ylabel("ADC",color="steelblue",fontsize=24)plt.grid(True,which='both',linestyle='--',alpha=0.7)plt.tight_layout()plt.draw()plt.pause(0.001)pltgif.append(plt)ifid>=11:breakpltgif.save()▲ 图1.1.2 ADC分频系数1对应的采集数据▲ 图1.1.3 ADC分频系数2对应的采集数据▲ 图1.1.4 ADC分频系数3对应的采样数据▲ 图1.1.5 ADC 分频系数5对应的采样数据▲ 图1.1.6 ADC分频系数为6 对应的采集数据▲ 图1.1.7 ADC分频系数为7对应的采样数据二、分频系数0
针对 ADC 分频系数为0, 对应的时钟信号最高, 计算它内部交流信号的系数。 使用三角窗口对数据进行加窗。 首先对数据通过补零, 或者长度为 128倍的数据, 选择频谱最高点, 最终可以获得数据归一化频率为 2.41276 。
计算不同数据长度对应的最小方差, 在长度最长的时候, 最小信号幅度方差为 0.5842。
- 信号幅度平均值:323.098。
- 归一化频率:2.41276
- 最小方差:0.5842(N=256)
三、分频系数1
采用同样的方式处理 ADC 分频系数为1 , 它对应的归一化频率为 2.06033。 在这个归一化频率下, 计算信号中的幅度以及对应的方差。 幅度的平均值为 324.1, 最小方差为 0.3204。
- 信号幅度平均值:323.098。
- 归一化频率:2.06034
- 最小方差:0.3204(N=256)
四、其它分频系数
下面, 分别对于分频系数从2 变化到7, 计算各自的信号的幅度, 幅度对应的方差, 希望方差越小越好。 这些不同ADC分频系数, 对应不同的采样频率。 将八种不同的采样频率所获得的数据对照一下。 可以看到所得到的信号幅度大都在 400以上。 但是对于采样频率比较高的时候, 计算所得到的信号幅度减小了。 对此,所做的解释是, 在ADC频率比较高的时候, ADC 通道输入阻抗比较小。 影响了 前面 LC 信号接收谐振回路的 Q 值, 使得输入信号降低了。 后面随着ADC采样频率降低。 ADC 输入通道的电阻增加了, 对应的 信号幅度也增加了。 当分频系数达到7 的时候, 也就是ADC采样频率最低, 所得到的 信号估计方差达到了最小。 其次是分频系数为 5 。 很奇怪, 对于分频系数为 6 的时候所造成的信号估计方差最大。 对此现象现在还无法进行解释。
| ADC分频系数 | 信号幅度 | 最小方差 | 归一化频率 |
|---|---|---|---|
| 0 | 323.098 | 0.5842 | 2.4128 |
| 1 | 353.88 | 0.3204 | 2.0603 |
| 2 | 406.3 | 0.2726 | 0.17564 |
| 3 | 421.1 | 0.27714 | 1.5589 |
| 4 | 425.78 | 0.28949 | 2.7636 |
| 5 | 409.28 | 0.2171 | 0.8030 |
| 6 | 406.13 | 1.4083 | 0.8065 |
| 7 | 419.51 | 0.2032 | 2.51496 |
fromheadmimport*ddim=tspload('sample7','ddim')d=ddim[0]-mean(ddim[0])d0=[0]*len(d)d=list(d)for_inrange(127):d.extend(d0)dfft=abs(fft.fft(d))dfft2=dfft[:len(dfft)//2]maxid=where(dfft2==max(dfft2))[0][0]omiga=maxid/128*2*pi/256printf(omiga)''' plt.plot(dfft, lw=3) plt.xlabel("N", color="steelblue", fontsize=24) plt.ylabel("FFT", color="steelblue", fontsize=24) plt.grid(True, which='both', linestyle='--', alpha=0.7) plt.tight_layout() plt.show() '''N=len(ddim[0])deftriangleW(n):n2=n//2nn1=list(range(n2))nn1r=nn1[::-1]na=[n2-1]*(n-len(nn1)-len(nn1r))returnarray(nn1+na+nn1r)/(n2-1)defcosineW(n):o=2*pi/(n-1)w=(1-cos(o*array(range(n))))/2returnw''' d1 = ddim[0]-mean(ddim[0]) w = triangleW(len(d1)) d1w = d1*w plt.plot(d1, lw=1, label='Origin') plt.plot(d1w, lw=3, label='Windowed Data') plt.xlabel("N", color="steelblue", fontsize=24) plt.ylabel("ADC", color="steelblue", fontsize=24) plt.grid(True, which='both', linestyle='--', alpha=0.7) plt.tight_layout() plt.show() '''Adim=[]cdim=array([cos(omiga*n)forninrange(N)])sdim=array([sin(omiga*n)forninrange(N)])defAmplitudeN(n):globalddim,N Adim=[]stddim=[]fordinddim:ddd=d-mean(d)dd=ddd[N-n-1:]ddn=len(dd)w=triangleW(ddn)dd=dd*w a=sum(dd*sdim[:n+1])b=sum(dd*cdim[:n+1])c=sqrt(a**2+b**2)/(ddn)Adim.append(c)v=std(Adim),mean(Adim)returnv nn=list(range(128,256))printf(nn)vdim=[]adim=[]forninrange(128,256):v,a=AmplitudeN(n)vdim.append(v)adim.append(a)printf(min(vdim))printf(mean(adim))plt.plot(nn,vdim,lw=3)plt.xlabel("NN",color="steelblue",fontsize=24)plt.ylabel("std(N)",color="steelblue",fontsize=24)plt.grid(True,which='both',linestyle='--',alpha=0.7)plt.tight_layout()plt.show()※总结 ※
本文对于不同的ADC采样频率下, 所得到的信号幅度估计进行测评估。 发现,当采样频率降低之后, 所得到的信号的幅度最为精确。 不过对于这个方面的分析, 应该是降低ADC频率下, 对应的输入阻抗提升, 降低了对于前面信号放大电路的影响造成的。 总的来说, 所有频率下, 除了分频系数为 6的时候, 所产生的信号幅度估计方差较大之外, 其它对应的信号幅度估计方差都相差不太多。
■ 相关文献链接:
- 通过采样256数据计算单个频率交流信号有效值-CSDN博客
- STC32G12 使用外部晶振-CSDN博客
- STC32G 采集150kHz 信号并测量幅度-CSDN博客
● 相关图表链接:
- 图1.1.1 ADC分频系数为0对应的采样数据
- 图1.1.2 ADC分频系数1对应的采集数据
- 图1.1.3 ADC分频系数2对应的采集数据
- 图1.1.4 ADC分频系数3对应的采样数据
- 图1.1.5 ADC 分频系数5对应的采样数据
- 图1.1.6 ADC分频系数为6 对应的采集数据
- 图1.1.7 ADC分频系数为7对应的采样数据