arg min,arg mx

arg    是变元(即自变量argument)的英文缩写。
arg min 就是使后面这个式子达到最小值时的变量的取值
arg max 就是使后面这个式子达到最大值时的变量的取值

例如 函数F(x,y):

arg  min F(x,y)就是指当F(x,y)取得最小值时,变量x,y的取值

arg  max F(x,y)就是指当F(x,y)取得最大值时,变量x,y的取值


作者:JayMining
来源:优快云
原文:https://blog.youkuaiyun.com/JayMining/article/details/52723759
版权声明:本文为博主原创文章,转载请附上博文链接!

为了实现高精度的FFT分析,抑制频谱泄露,并准确测量基波频率(1kHz-100kHz)及其1-5次谐波(最高500kHz),采样点数为4096,采用动态调整采样率确保整周期采样。以下是优化方案: 核心原理 通过动态设置采样率 f s f s ​ ,确保4096个采样点内包含基波频率 f 0 f 0 ​ 的整数个周期(M),使基波和谐波能量集中在单个FFT bin上,消除频谱泄露,无需加窗。 动态采样率计算 对每个基波频率 f 0 f 0 ​ : 计算最小采样率 f s , min ⁡ f s,min ​ : f s , min ⁡ = max ⁡ ( 1.25 MHz , 12.5 × f 0 ) f s,min ​ =max(1.25MHz,12.5×f 0 ​ ) 1.25 MHz 1.25MHz:满足奈奎斯特准则(最高谐波500kHz的2.5倍)。 12.5 × f 0 12.5×f 0 ​ :确保采样率 > 5次谐波频率的2.5倍(抗混叠)。 计算整数周期数 M M: M = ⌊ 4096 × f 0 f s , min ⁡ ⌋ M=⌊ f s,min ​ 4096×f 0 ​ ​ ⌋ M ≥ 1 M≥1(实际计算中 M M 最小为3,无风险)。 确定实际采样率 f s f s ​ : f s = 4096 × f 0 M f s ​ = M 4096×f 0 ​ ​ 保证 f s ≥ f s , min ⁡ f s ​ ≥f s,min ​ 且采样点数为整数周期。 工作流程 粗测(估计 ( f_0 \)): 用固定采样率 f s 1 = 2.5 MHz f s1 ​ =2.5MHz 采集4096点。 执行FFT,在频谱中寻找最大幅值对应的频率作为基波估计值 f 0 , est f 0,est ​ 。 Bin 索引 k max = arg ⁡ max ⁡ k ∣ X [ k ] ∣ ( k ∈ [ 1 , 2048 ] ) Bin 索引 k max ​ =arg k max ​ ∣X[k]∣(k∈[1,2048]) f 0 , est = k max × 2.5 MHz 4096 f 0,est ​ =k max ​ × 4096 2.5MHz ​ 精测(动态采样率): 用 f 0 , est f 0,est ​ 计算 M M 和 f s f s ​ : f s = 4096 × f 0 , est M , M = ⌊ 4096 × f 0 , est max ⁡ ( 1.25 e 6 , 12.5 × f 0 , est ) ⌋ f s ​ = M 4096×f 0,est ​ ​ ,M=⌊ max(1.25e6,12.5×f 0,est ​ ) 4096×f 0,est ​ ​ ⌋ 以 f s f s ​ 采样4096点。 执行FFT,基波应位于Bin M M(频率 f 0 = M × f s 4096 f 0 ​ =M× 4096 f s ​ ​ ),谐波位于 n × M n×M( n = 2 , 3 , 4 , 5 n=2,3,4,5)。 插值修正(可选): 若 f 0 , est f 0,est ​ 有误差,基波可能不在Bin M M 中心。在Bin M M 附近 [ M − 2 , M + 2 ] [M−2,M+2] 内: 找到最大幅值Bin k 0 k 0 ​ 。 用三点幅值插值计算精确频率偏移 δ δ: δ = ∣ X [ k 0 + 1 ] ∣ − ∣ X [ k 0 − 1 ] ∣ ∣ X [ k 0 − 1 ] ∣ + ∣ X [ k 0 ] ∣ + ∣ X [ k 0 + 1 ] ∣ δ= ∣X[k 0 ​ −1]∣+∣X[k 0 ​ ]∣+∣X[k 0 ​ +1]∣ ∣X[k 0 ​ +1]∣−∣X[k 0 ​ −1]∣ ​ 真实基波频率: f 0 , true = ( k 0 + δ ) × f s 4096 f 0,true ​ =(k 0 ​ +δ)× 4096 f s ​ ​ 谐波频率: f n = n × f 0 , true f n ​ =n×f 0,true ​ ( n = 2 , 3 , 4 , 5 n=2,3,4,5)。 关键优势 频谱泄露抑制: 动态 f s f s ​ 确保整周期采样,基波和谐波能量集中于单一Bin,无旁瓣。 抗混叠保障: f s ≥ 1.25 MHz f s ​ ≥1.25MHz 避免500kHz谐波混叠。 精度最大化: 粗测提供初始估计,精测消除泄露,插值进一步修正误差。 计算效率: 仅需两次FFT(粗测+精测),实时性好。 实现注意事项 定时器配置:使用可编程定时器(如STM32的TIM)动态调整ADC触发频率。 ADC性能:确保ADC支持 f s ≥ 1.25 MHz f s ​ ≥1.25MHz(如STM32H7的ADC可达3.6MHz)。 信号稳定性:适用于稳态信号(频率变化慢于测量周期)。 抗噪处理:在FFT前可加均值滤波,但避免窗口函数。 示例计算 设粗测得 f 0 , est = 50 kHz f 0,est ​ =50kHz: f s , min ⁡ = max ⁡ ( 1.25 e 6 , 12.5 × 50 e 3 ) = max ⁡ ( 1.25 e 6 , 625 e 3 ) = 1.25 e 6 f s,min ​ =max(1.25e6,12.5×50e3)=max(1.25e6,625e3)=1.25e6 M = ⌊ 4096 × 50 e 3 1.25 e 6 ⌋ = ⌊ 163.84 ⌋ = 163 M=⌊ 1.25e6 4096×50e3 ​ ⌋=⌊163.84⌋=163 f s = 4096 × 50 e 3 163 ≈ 1.256 MHz f s ​ = 163 4096×50e3 ​ ≈1.256MHz 精测后,基波位于Bin 163,谐波位于Bins 326、489、652、815。 此方案在整周期采样和动态速率调整下,FFT频率分辨率达最高精度,显著优于固定采样率或加窗方法。 我的最高采样率不要超过2M 然后根据你上面生成的方案给我生成完整代码
最新发布
07-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值