news 2026/4/18 13:04:31

ADC的采样频率对于信号检测的影响

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ADC的采样频率对于信号检测的影响

简 介:本文探讨了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分频系数信号幅度最小方差归一化频率
0323.0980.58422.4128
1353.880.32042.0603
2406.30.27260.17564
3421.10.277141.5589
4425.780.289492.7636
5409.280.21710.8030
6406.131.40830.8065
7419.510.20322.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对应的采样数据
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:25:09

安捷伦N4691B微波电子校准件/Agilent N4691B

安捷伦Agilent N4691B分子量电子校准(ECal)模块校准矢量网络分析仪快速,方便,准确。射频电子校准系统现在可以轻松地根据网络分析仪的两种方法之一来控制。安捷伦的PNA和ENA系列网络分析仪通过USB接口直接控制模块。该模块也可以通…

作者头像 李华
网站建设 2026/4/18 2:23:54

38、构建与应用Actor框架

构建与应用Actor框架 1. 并行计算中的Actor框架引入 在处理大量数据计算时,我们常常会遇到需要将一个大任务拆分成多个子任务并行处理的情况。例如,有一个数据列表需要经过大量计算才能得到结果列表,这本质上是一个映射操作。我们可以将列表拆分成多个子列表,让多个工作者…

作者头像 李华
网站建设 2026/4/18 10:49:22

基于VUE的学生党建系统[VUE]-计算机毕业设计源码+LW文档

摘要:学生党建工作是高校思想政治教育的重要组成部分。随着高校学生数量的增加和信息化的快速发展,传统的学生党建管理方式已难以满足工作需求。本文设计并实现了基于VUE的学生党建系统,旨在提高学生党建工作的效率和管理水平。系统具备用户管…

作者头像 李华
网站建设 2026/4/18 12:53:17

六顶思考帽:创意激发新利器

创意是推动创新的源泉,但在实际工作和生活中,我们常常会遇到创意枯竭的情况。六顶思考帽方法不仅能帮助我们系统思考,还蕴含着许多激发创意的实用技巧。今天就来分享一些使用六顶思考帽快速激发创意的技巧,同时展示如何利用英飞思想家让这些技巧发挥更大作用。 技巧一:巧用绿色…

作者头像 李华
网站建设 2026/4/18 5:39:04

Dify企业级实战深度解析 (7)

一、学习目标作为企业级实战系列的场景化案例进阶篇,本集聚焦 “旅游出行” 高频需求,核心目标是掌握旅游场景 AI 应用的需求拆解、多模块联动开发、实时数据对接与个性化适配:基于 DifyDeepseek 打造集 “智能推荐、行程规划、实用信息查询”…

作者头像 李华
网站建设 2026/4/18 8:30:58

11、使用kubectl在Kubernetes中部署应用

使用kubectl在Kubernetes中部署应用 1. kubectl简介 KubeCTL(Kube Control)是Kubernetes API服务器和Kubernetes控制平面的官方命令行接口。借助kubectl工具,你能够查看Pod的状态、访问集群资源,甚至可以进入正在运行的Pod进行故障排查。下面介绍一些使用kubectl时常见的…

作者头像 李华