从工程应用的功能角度来看数字滤波器在通信和信号处理中主要扮演以下四大角色1. 频率选择与噪声抑制代表应用DDUC 中的信道选择滤波器Channel Select Filter。在空中充满了几百个基站和手机的信号频域密密麻麻滤波器就像一堵墙只把属于你这个频道的有用信号放过去把隔壁频道的干扰信号邻道干扰以及热噪声全部死死挡在外面。2. 波形重塑与规整代表应用基带脉冲成形滤波器如 Root Raised Cosine, 根升余弦滤波器。数字电路里发出的0和1是生硬的方波。如果直接打到射频天线发射出去频谱会无限延伸ACLR 爆表。通过成形滤波器把方波变成圆润的、满足特定数学规律奈奎斯特准则的波形既限制了频域带宽又在时域消除了码间串扰ISI。3. 多速率转换代表应用CIC 滤波器、半带HB滤波器。在下变频DDC时把 ADC 采集来的高速率数据比如数百兆采样率一步步把速度降下来抽取变成基带芯片跑得动的低速数据。在上变频DUC时把基带送来的低速数据一步步拉高速度插值塞满 0 再平滑最后喂给高速 DAC 发射出去。4. 信号补偿与纠偏均衡与校准代表应用信道均衡器Equalizer、数字预失真DPD中的滤波器。时域/频域补偿信号在空气中传输、或者通过电缆时某些高频成分衰减得快低频衰减得慢到达接收端时波形已经变形了。均衡滤波器本质上是个“反向滤波器”。衰减了高频滤波器就专门把高频放大把频谱“拉平”从而在时域上把变形的波形重新纠正过来。FIR 滤波器分类根据滤波器通带频率选择特性FIR 滤波器可分为四类理想低通 FIR、高通 FIR、带通 FIR 与带阻 FIR。四类滤波器的单位冲激响应均由理想矩形频域窗经逆离散傅里叶变换得到基础 sinc 序列再通过频谱搬移、全域相减完成时域系数构造。经典sinc窗函数法从滤波器设计实现方法角度划分工程上主流设计方案包含三类窗函数设计法、频率采样设计法、Parks–McClellan 最优等波纹设计法。其中窗函数法原理直观、实现简单是最常用的基础设计方式根据选用窗函数的类型又可细分为矩形窗、汉宁窗、汉明窗、布莱克曼窗、凯泽窗 FIR 滤波器。低通滤波器步骤 1先定义我们想要的滤波器频域理想矩形数字频域区间 (f∈[-0.5,0.5])对应 (0~f_s/2)理想低通频域响应理想低通频域响应我们想要只保留低频、干掉高频先确定这个矩形形状的频域。步骤 2频域逆 DTFT算出时域无限长冲激响应 sinc (h [n])离散逆傅里叶变换公式从频域求时域冲激响应(h[n]因为(|f|f_c\)时(H(f)0)积分区间缩到([-f_c,f_c])计算积分后得到sinc 公式(h[n])是滤波器自身的时域特征单位冲激响应。物理含义给滤波器输入一个瞬时脉冲滤波器输出的波形就是这个 sinc 序列。步骤 3信号系统核心定理任意输入信号 x [n]输出 y [n] x [n] * h [n]卷积线性时不变系统FIR/IIR 都满足有一条铁律输入信号 和 系统冲激响应做卷积 滤波输出拆开理解卷积含义(h[k])滤波器自身的 sinc 权重k 是抽头序号(x[n-k])把输入信号向右平移 k 个点也就是取 k 个采样点之前的历史输入每一组「历史输入 × 滤波器权重」全部相加得到当前时刻输出(y[n])步骤 4工程处理截断 右移变成有限因果 FIR得到你图里的求和公式4.1 截断无限 sinc只保留左右对称一段 \(k-M \sim M\)其余系数置 0序列变成有限长度。4.2 整体右移 M 个点消除负序号因果化新抽头序号 (k k M)原来(k-M)变成\(k0)原来(kM)变成(k2M)总抽头数量 (N2M1)所有抽头序号满足 (0 ≤k ≤ N-1)不存在负 k。4.3 替换卷积公式得到最终工程 FIR 表达式替换后求和下限从负无穷变成0上限变成(N-1)去掉未来输入项经典窗函数法的局限因为 FPGA 无法实现无限长的非因果系统窗函数法如 Kaiser 窗、汉宁窗的本质是先拿理想的无限长 sinc序列然后粗暴地用一扇“窗户”强行切断两端只留下中间有限个抽头。致命缺陷吉布斯效应这种强行斩断会在频域引发暴风骤雨般的“吉布斯振荡Gibbs Phenomenon”导致通带和阻带边缘剧烈抖动。虽然窗函数可以平滑这种抖动但代价是过渡带会被大幅度磨圆、变宽。如果想在 5G 仅 0.85MHz 的窄过渡带内硬生生压下 80dB窗函数法需要耗费恐怖的抽头数Taps在商用 FPGA 资源面前完全不可行。最小二乘法滤波器firls核心理论均方误差最小Least Squaresfirls解决的是一个全局宏观问题。它定义了一个“整体误差函数”特点通带极平阻带渐进衰减因为优化的是总面积firls的带外响应呈现“大浪淘沙”的形态。靠近有用信号边缘的第一个波纹通常比较大但越往高频远端走它的波纹会被压得越来越小、越深。商业局限在基站 DFE 的商业大厂落地中firls有一个致命软肋——局部漏气。因为它是看总分优化器为了让远端大面积的阻带都很低可能会纵容靠近过渡带的第一个波纹Spur稍微冒一点尖。但在 3GPP 严苛的杂散测试中哪怕只有一个孤立频点超了红线整台基站就会被直接一票否决。等波纹滤波器firpm/ Remez核心理论切比雪夫逼近与 Minimax 准则为了解决firls局部冒尖的问题Parks-McClellan 算法firpm横空出世。它不看总面积它只盯着“全频段内哪一个点的误差最大”。它的数学目标是交错定理Alternation Theorem交错定理指出对于一个 N$阶的最优等波纹滤波器其误差响应在指定的通带和阻带内必然会产生至少 N2个大小绝对相等、且正负交错变换的局部极值点波峰/波谷。算法在后台运行Remez 交换算法时就像是用两块刚性的硬铁板从上下两侧同时向中间对夹那些频谱波纹直到把所有的波峰和波谷整整齐齐地“拍平”在同一条高度水平线上。特点它设计出来的阻带波纹像一排站岗的哨兵高低完全一致没有任何一个波峰会无端冒尖。商业统治地位在商用 DUC 的第一个滤波器Channel FIR中firpm或其定制凸优化变种拥有绝对的统治地位。因为在相同的阶数乘法器资源下等波纹算法能把那道“带外最高的阻带防护墙”垒得比任何算法都低 它完美契合了 3GPP 这种“只要不超过特定 $\text{dBm}$ 绝对限值就算通关”的刚性法规。半带滤波器商用 DUC 中半带滤波器HB的真正灵魂在于将 Parks-McClellanfirpm等波纹算法与时-频域对称互补定理进行深度融合。其设计理念的核心在于‘指标绑架’与‘平坦度等价置换’通过向firpm算法输入严格关于 F_s/4 镜像对称的频域网格并强制通阻带逼近权重为 1:1算法在寻优时会自动收敛出偶数项系数除中心点外严格为零的 Type 1 线性相位解。传统的常规 FIR通带纹波和阻带抑制是脱钩的。我们可以为了让阻带压得很深故意给阻带分很大的权重放任通带产生一点点纹波。但是firpm的半带设计理念是不允许你这么做的因为半带的数学底层是“互补”。在频域上它要求在阻带把锯齿压得有多低你在通带内的平坦度就有多完美。用firpm设计半带时你根本不需要单独去调校通带平坦度。你只要盯着阻带把深坑压到位通带的完美镜面平坦度就会被数学定理直接打包赠送给你。CIC滤波器CIC 滤波器Cascaded Integrator-Comb的数学本质是矩形窗滑动平均滤波器Moving Average Filter。几个问题1、FIR滤波器为什么是线性相位是因为滤波器自身的抽头系数 h [n] 对称决定相位是滤波器本身属性。滤波器频率响应写成复数形式(A(f))纯实数幅度≥0只改变不同频率信号的放大 / 衰减相位项相位不管输入信号是方波、毛刺、正弦、不对称脉冲只要经过这个滤波器所有频率分量统一延迟 M 个采样周期。只有中心抽头 (h[0]) 带来唯一的全局延迟2、奈奎斯特采样定理与欧拉公式奈奎斯特采样定理要完整保留一个连续信号的信息采样率 F_s 必须大于信号最高频率 fmax 的 2 倍。为什么呢为什么要大于最高频率fmax的2倍呢在时域上用脉冲序列去“采样”一个连续的实信号在频域上对应的物理动作就是把这个实信号的原始频谱以采样率 F_s 为周期进行无限次地复制粘贴混叠搬移。实信号的频谱是关于 0 轴左右对称的实对称。也就是说如果一个实信号的最高频率是 fmax比如 20MHz那它的光谱必定同时占据了 20MHz 和 -20MHz。从 -20MHZ 到 20MHZ它在物理频谱上实际霸占的总宽度已经是 40M 了。当你在频域上把这一块跨度为 40MHZ 的光谱向右平移 F_s时为了让平移后的“负半轴边缘”不和原来主光谱的“正半轴边缘”撞车撞在一起产生混叠失真这个平移的步伐 F_s 就必须跨得足够大——必须大于整个光谱总跨度的 2 倍 fmax.如果我们用I Q信号相当于Q信号充当了实信号的负频信息为了恢复实信号负频是必要的单如果不浪费负频的带宽那我们把Q这个有效信息放在负频。那I Q共同组成了20M从-10M到10M但是采样率是30.72M就够了因为它们是分两路采相当于61.44M去采20M的数据完全满足Fs2*fmax。按照欧拉公式最后I Q信号合成的实信号如下上边带是IjQ下边带是I-jQ传输的是不一样的信息如果只有实部I那上边带跟下边带传输的都是一样的信息会浪费掉一半的频谱。3、FIR滤波器与半带滤波器在DUC与DDC中的应用在通信中的滤波器信号对于相位有严格的需求。需要用到FIR滤波器。那么下面以20M带宽的信号作为例子去设计FIR滤波器与半带滤波器。第一步计算滤波器抑制度在 5G NR 中计算 DFE数字前端滤波器的抑制度核心就是去算“为了不污染隔壁信道ACLR和信道边缘SEM滤波器在特定频点上至少需要提供多少分贝dB的衰减。”根据 3GPP TS 38.104 规范对于基站以广域宏基站为例第一邻频Adjacent Channel的 ACLR 门限要求为ACLR3GPP 45dBc第二步 计算关键频点卡位对于 20M 带宽的 5G 信号子载波间隔 SCS 30kHz主信道中心频率f0 0MHz基带视角。主信道测量带宽19.08MHz配置了 51 * 12 612 个子载波612*30kHz 18.36MHz加上两侧保护带3GPP 规定的通道积分测量带宽 Bw_main 19.08MHz。第一邻频中心频率f1 20MHz信道间隔刚好是 20MHz。第一邻频测量带宽Bw_adj 19.08MHz。因此邻频的积分考核范围是第三步 算出滤波器的带外抑制度主信道的信号是有功率密度的而邻频的噪声是靠主信道带外能量“积分”积出来的。假设滤波器的阻带是一条平线衰减量为 Astop单位dB那么漏过去的邻频总功率就是最终 ACLR 抑制度结论为了给 DPD 和功放留足空间数字前端滤波器的阻带截止频率从 10.46MHz 开始的抑制度在工程设计时标准要求卡在 -80dB ~-85dB。第四步 算出SEM模板下的滤波器的带外抑制度场景大前提基站单通道额定总功率 Ptotal 40W46dBm。5G 20M 信号的有效积分带宽 Bw_main 19.08MHz。指标 A在 10.0 ~10.5MHz处要求衰减 25dB。指标 B在 10.5 ~15.0MHz处要求衰减 46.2dB。两者的斜率要求34.2dB/MHzvs 29.4dB/MHz在几何上极其接近firpmordfirpm是 MATLAB 用来设计Parks–McClellan FIR 滤波器等波纹最优 FIR线性相位 的组合也就是常说的最优等波纹 FIR。firpmord —— 滤波器阶数预估函数作用根据滤波器频域指标通带、阻带频率、纹波、衰减自动估算 所需最小滤波器阶数N、归一化频点、幅度目标、频段权重输出直接喂给firpm。[N, F, A, W] firpmord(f, a, dev, fs)dev不能直接传入 dB 纹波 Rp/Rs必须手动转换成线性 delta也就是代码里delta_p (10^(Rp/20)-1)/(10^(Rp/20)1); %通带最大偏差delta_s 10^(-Rs/20); %阻带最大偏差输出参数[N,F,A,W]N预估滤波器阶数滤波器抽头数量 N1F归一化后的频点向量范围 0~11 对应 Fs/2 奈奎斯特A各频段理想幅度和输入a对应W各频段权重向量W [Wp Ws]Parks–McClellan 算法利用权重控制通带波纹、阻带波纹相对大小 波纹满足通带波纹/δp ≈ 阻带波纹/δsfirpmord 内部做了两件关键事1、根据过渡带宽、估算满足指标最低阶数 N2、自动计算频段权重3、firpm 是如何利用权重实现波纹控制firpm —— Parks–McClellan 滤波器设计主函数作用输入阶数、频点、幅度、权重迭代求解等波纹最优 FIR 系数满足切比雪夫最优准则给定阶数下波纹峰值最小。h firpm(N, F, A, W)输入参数N滤波器阶数抽头长度L N 1线性相位 FIR 常用约定N 偶数 → L 奇数 → Type1 FIR支持 0Hz、Nyquist 频率响应低通首选F归一化频率向量0 ≤ F ≤ 11 代表 Fs/2 格式成对出现[f1 f2 f3 f4 ...]区间0~f1, f2~f3...为通 / 阻带f1~f2,f3~f4...是过渡带A每个频带对应的理想幅度长度 length (F)/2W可选每个频带权重长度 length (A)权重越大该频段波纹控制越严格输出hFIR 滤波器系数向量长度N1阶数 vs 抽头数N阶FIR → 抽头数量 N 1 例N120阶 → 121个系数firpm 设计出来默认是零相位线性相位 FIR群延迟恒定N/2 采样点firpmord 算出的 N是理论最小阶数实际仿真偶尔会指标略不达标 工程稳妥做法可手动N N_auto 2留余量权重理解 Parks-McClellan 迭代目标问题1怎么通过带内纹波与带外抑制度计算dev?现在还有一个问题如果从30.72M插值到245.76M应该如何去做在通信中应该如何去做呢是先FIR滤波器再三级HB插值到245.76M还是第一级FIR就是插值滤波器再经过两级HB到245.76M呢先解释第一种方案为什么不合适阶段 130.72M 经过 FIR 之后频谱存在三块0~9.15M有用信号大功率9.15~10.5M过渡带10.5 ~15.36MFIR 阻带残余杂散小功率但客观存在阶段 2时域插零 2 倍升采样 → Fs61.44M时域插零操作规则完整复制原 [-15.36,15.36] 全部频谱镜像搬移到 [15.36,30.72] 镜像对称中心15.36MHz 频率映射公式现在 61.44MHz 完整频谱里包含两类不需要的分量 ① 镜像 A15.36 ~ 20.22 MHz来自 10.5~15.36MHz 阻带残余 ② 镜像 B21.57 ~ 30.72 MHz来自 0~9.15MHz 有用信号阶段 3送入 HB161.44MHz 半带滤波器HB 硬性对称约束为了滤除 21.57MHz 开始的镜像 BHB 必须设置HB1 区间划分0~9.15M通带21.57M阻带现在灾难出现 杂散区间 15.36 ~20.22MHz 完整落在 HB1 的【过渡带】里面 半带滤波器过渡带滚降缓慢达不到很高抑制。 也就是说由 10.5~15.36MHz 残余生成的 15.36~20.22MHz 镜像杂散HB1 拦不住直观汇总方案 A 致命缺陷 原始 FIR 留下的 10.5~15.36MHz 残余插值后变成 15.36~20.22MHz 杂散 这个频段在 HB 过渡带内部不在 HB 阻带无法有效滤除。 后续再经过 HB2、HB3 逐级升采样这部分杂散会持续镜像搬移最终 SEM 杂散超标。方案二30.72M 数据直接插零升到 61.44M在 61.44M 速率下使用通用 firpm 常规 FIR替代原本 HB0 的位置 Fp9.15Fs10.5MHz插值 261.44M→122.88MHB1运行时钟 122.88M过渡带 9.15~52.29M插值 3122.88M→245.76MHB2方案二的firpm会把10.5~30.72M的杂散抑制的很干净再经过插值滤波器后产生的抑制带的镜像会离主信号很远并且有后面的射频滤波所以没有问题。