news 2026/3/29 20:54:50

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/3/27 1:20:28

零基础创业首选!AI一键抠图换底的全自动证件照系统源码

温馨提示:文末有资源获取方式一套功能完备的AI智能证件照在线制作系统源码,正是这样一个“拎包入住”式的创业解决方案。它省去了复杂的研发过程,直接将经过市场验证的“赚钱机器”交到你手中。源码获取方式在源码闪购网。系统提供的完整功能…

作者头像 李华
网站建设 2026/3/24 8:52:47

Docker 网络管理深度解析与实践指南

1. 容器网络管理的必要性与核心挑战 在容器化技术体系中,网络管理是维持系统稳定性与安全性的基石。默认情况下,Docker 容器与宿主机、以及容器之间处于高度隔离的状态。这种隔离性虽然保障了安全性,但在实际应用场景中,孤立的容器…

作者头像 李华
网站建设 2026/3/22 17:08:12

37、函数式输入输出与Actor模型:实现安全高效编程

函数式输入输出与Actor模型:实现安全高效编程 函数式输入输出的栈安全处理 在函数式编程里,使用IO类型处理输入输出是常见操作。不过,有些IO方法在使用栈时和递归方法类似,像 repeat 方法,若重复次数过多,就会导致栈溢出。具体溢出的“过多”数值,取决于栈大小以及方…

作者头像 李华
网站建设 2026/3/22 3:05:19

PhantomCaptcha鱼叉攻击的技术机理与防御策略研究

一、引言2025年10月8日,网络安全公司SentinelOne披露了一起针对乌克兰人道主义援助组织及地方政府机构的高精度鱼叉式网络钓鱼行动,代号“PhantomCaptcha”。该行动在单日内完成部署、投递与初步感染,目标涵盖国际红十字会、挪威难民理事会、…

作者头像 李华
网站建设 2026/3/28 8:25:45

跨境语音钓鱼犯罪的组织形态与综合治理路径研究

摘要近年来,以东南亚国家为据点、针对韩国等高收入经济体实施大规模电信诈骗的“企业化”语音钓鱼团伙日益猖獗。2025年10月,韩国首尔东部地方法院对一个以柬埔寨为基地的语音钓鱼组织成员作出一审判决,主犯获刑6年,其余成员判处3…

作者头像 李华
网站建设 2026/3/29 3:22:14

18、探索Azure事件网格与存储服务的使用

探索Azure事件网格与存储服务的使用 1. 本地测试Azure事件网格与Azure函数 在本地测试Azure事件网格和Azure函数,目前有两种方法: - 捕获并重新发送事件到应用程序。 - 使用ngrok(可从https://ngrok.com/ 获取)将请求转发到本地计算机。 选择哪种方法取决于个人能力,…

作者头像 李华