目录文档-技术白皮书08-EFT.WP.Core.Sea v1.0

附录C 滤波与窗函数库


I. 目标与适用范围


II. 窗函数共性指标与缩放口径

  1. 相干增益与幅度校正
    • CG = ( ∑_{n=0}^{N-1} w[n] ) / N
    • C_amp = 1 / CG(幅度校正因子)
  2. 等效噪声带宽(以频点宽度为单位)
    • ENBW_bins = N * ( ∑ w[n]^2 ) / ( ∑ w[n] )^2
    • ENBW_Hz = ( fs / N ) * ENBW_bins
  3. 主瓣宽度近似(零交界到零交界)
    Delta_f_main approx K_main * ( fs / N ),其中 K_main 由窗类型给出。
  4. 起伏与走样
    首旁瓣抑制 A_s_db;栅瓣走样损失 SL_db(频率落在栅格中点的最大幅度损失)。
  5. PSD 标定缩放(单侧谱)
    S_xx(f) = ( 2 / ( fs * U_w ) ) * |X_w(f)|^2,其中 U_w = (1/N) * ∑ w[n]^2,X_w 为加窗后 DFT。

III. 窗函数条目(属性库 v1.0)

  1. Rectangular
    • K_main = 2.00;A_s_db approx 13;ENBW_bins = 1.00;SL_db approx 3.92。
    • 适用:线谱幅值保真、泄漏容忍场景。
  2. Hann(raised cosine)
    • K_main = 4.00;A_s_db approx 31.5;ENBW_bins approx 1.50;SL_db approx 1.42。
    • 适用:通用频谱、较低泄漏。
  3. Hamming
    • K_main = 4.00;A_s_db approx 41;ENBW_bins approx 1.36;SL_db approx 1.78。
    • 适用:旁瓣要求更严、分辨率与泄漏折中。
  4. Blackman(3-term)
    • K_main = 6.00;A_s_db approx 58;ENBW_bins approx 1.73;SL_db approx 1.1。
    • 适用:高旁瓣抑制、适中分辨率。
  5. Blackman–Harris(4-term)
    • K_main = 8.00;A_s_db approx 92;ENBW_bins approx 2.00;SL_db approx 0.9。
    • 适用:弱信号埋噪下的谱线检测。
  6. Nuttall(4-term)
    • K_main = 8.00;A_s_db approx 93;ENBW_bins approx 2.02;SL_db approx 0.9。
    • 适用:与 Blackman–Harris 类似的宽旁瓣抑制。
  7. Flat-top(5-term)
    • K_main approx 10.0;A_s_db approx 93;ENBW_bins approx 3.77;SL_db approx 0.01。
    • 适用:幅值测量型 PSD,频率分辨率非关键。
  8. Kaiser(参数 beta)
    • A_s_db 与 beta 关系(设计口径):
      1. beta = 0 对应 Rectangular;
      2. beta approx 0.1102 * ( A_s_db - 8.7 )(当 A_s_db > 50);
      3. beta approx 0.5842 * ( A_s_db - 21 )^{0.4} + 0.07886 * ( A_s_db - 21 )(当 21 <= A_s_db <= 50)。
    • K_main 随 beta 增大而增大,ENBW_bins 同增。
    • 适用:在给定 A_s_db 与过渡带宽下自适应设计 FIR。
  9. Dolph–Chebyshev(参数 A_s_db)
    • 等波纹旁瓣,最小主瓣宽度(在既定 A_s_db 下)。
    • 适用:极限旁瓣控制与最小主瓣。

IV. FIR 滤波器库与设计配方

  1. 统一规格与命名
    FIR.lp.<window|remez>.<N>.<f_p>.<f_s>;FIR.hp.*;FIR.bp.*;FIR.bs.*,频率以 f_hat = f / fs 记录。
  2. Kaiser 窗口法(低通为例)
    • 规格:f_p、f_s、A_s_db、A_p_db。令 Delta_ω = 2 * pi * ( f_s - f_p )。
    • 阶数估计:N_min approx ceil( ( A_s_db - 8 ) / ( 2.285 * Delta_ω ) ) + 1。
    • 生成系数:h[n] = sinc( 2 * f_c * ( n - (N-1)/2 ) ) * kaiser(n, N, beta),f_c 可取 ( f_p + f_s ) / 2。
    • 线性相位群时延:tau_g(H) = ( N - 1 ) / ( 2 * fs )。
  3. Remez(Parks–McClellan)等波纹 FIR
    • 输入通带/阻带权重 W_p、W_s,输出 A_p_db 与 A_s_db 等波纹。
    • 适用:紧凑阶数、对过渡带最苛刻场景。
  4. 多段带通与陷波
    组合法:FIR.bp = LP(f_hi) - LP(f_lo);陷波 FIR.bs = 1 - FIR.bp,归一化并做幅度匹配。
  5. 验收
    max_pass_ripple <= A_p_db;min_stop_atten >= A_s_db;E_alias 评估见第4章 Mx-C2。

V. IIR 原型与双二阶实现(Biquad)

  1. 命名与实现
    • IIR.bw.lp.<n>.<f_c>(Butterworth)、IIR.ch1.lp.<n>.<f_p,A_p_db>(Chebyshev I)、IIR.ch2.lp.<n>.<f_s,A_s_db>(Chebyshev II)、IIR.ell.lp.<n>.<f_p,f_s,A_p_db,A_s_db>(Elliptic)。
    • 数字化采用双线性变换,预失真 Omega = tan( pi * f_hat )。
  2. 阶数估计(示例:Butterworth 低通)
    n_min = ceil( log10( (10^{0.1*A_s_db} - 1) / (10^{0.1*A_p_db} - 1) ) / ( 2 * log10( Omega_s / Omega_p ) ) )。
  3. 双二阶节系数(低通,RBJ 口径,Q 可由极点分配给出)
    • omega0 = 2 * pi * f_c / fs,alpha = sin(omega0) / ( 2 * Q )。
    • b0 = (1 - cos(omega0)) / 2,b1 = 1 - cos(omega0),b2 = (1 - cos(omega0)) / 2;
    • a0 = 1 + alpha,a1 = -2 * cos(omega0),a2 = 1 - alpha;
    • 归一化:b* /= a0,a1 /= a0,a2 /= a0。
  4. 二阶陷波(notch)
    • omega0 = 2 * pi * f0 / fs,r = exp( - pi * BW / fs )。
    • H(z) = ( 1 - 2 * cos(omega0) * z^{-1} + z^{-2} ) / ( 1 - 2 * r * cos(omega0) * z^{-1} + r^2 * z^{-2} )。
  5. 群时延
    IIR tau_g(H) 随频率变化;到达时估计须以 tau_mono 标定并用 trace 记录补偿(见第8章)。

VI. 多速率滤波与 CIC 管线

  1. CIC N 阶 R 倍抽 decimator
    • H_cic(z) = ( ( 1 - z^{-R} ) / ( 1 - z^{-1} ) )^N。
    • 通带下坠近似:|H_cic(f)| approx | sin(pi * f * R / fs) / ( R * sin(pi * f / fs) ) |^N。
    • 典型流程:[CIC] -> [FIR.compensation] -> [IIR.smoothing]。
  2. 参数建议
    大倍率下优先 CIC;用短 FIR 补偿通带起伏、设置 A_s_db。

VII. 群时延、相位与到达时影响


VIII. 泄漏、混叠与谱精度提示

  1. 抗混叠(见第4章)
    模拟 H(f) 先行,数字 filt.chain 次之;窗口仅减泄漏,不能抑制超奈奎斯特混叠。
  2. 线谱测量三件套
    选窗看三指标:A_s_db、ENBW_bins、SL_db;幅值型优先 Flat-top,检测型优先 Blackman–Harris/Nuttall,定位型优先 Hann/Hamming。
  3. 频率与幅值不确定度
    • 频率分辨率:Delta_f = fs / N;主瓣限制:Delta_f_main。
    • 幅值不确定度:U_amp approx f( SL_db, SNR, ENBW_bins ),在报告中并入 U = k * u_c。

IX. 选择建议(场景化)


X. I80 绑定与用法片段

  1. 设计与应用
    • fref = design_filter(kind="fir_lp", params={"f_p":0.18,"f_s":0.22,"A_s_db":80,"method":"kaiser"})
    • sig_f = filter_apply(sig=block, filt=fref)
    • S = psd(sig=sig_f, method="welch", seg=8, overlap=0.5, window="hann")
  2. 重采样与抗混叠
    sig_ds = resample(sig=sig_f, fs_target=fs/4, mode="polyphase")(预置 filt.chain 含抗混叠 LP)。

XI. 验收与记录模板


XII. 版本与命名规范


XIII. 速查(常用窗的典型数值,约定口径)

速查项

XIV. 跨卷锚点与引用


XV. 结语

本库以统一符号与纯文本公式固化了窗函数与滤波器的设计、标定与记录口径,支撑 S_xx(f) 的可比性、T_arr 的时间一致性与跨场景可复现实验。

版权与许可(CC BY 4.0)

版权声明:除另有说明外,《能量丝理论》(含文本、图表、插图、符号与公式)的著作权由作者(“屠广林”先生)享有。
许可方式:本作品采用 Creative Commons 署名 4.0 国际许可协议(CC BY 4.0)进行许可;在注明作者与来源的前提下,允许为商业或非商业目的进行复制、转载、节选、改编与再分发。
署名格式(建议):作者:“屠广林”;作品:《能量丝理论》;来源:energyfilament.org;许可证:CC BY 4.0。

首次发布: 2025-11-11|当前版本:v5.1
协议链接:https://creativecommons.org/licenses/by/4.0/