基于单片机和 FPGA 设计的程控滤波器
时间:2026-08-20
在当今电子技术飞速发展的时代,滤波器作为一种重要的电子器件,在信号处理、抗干扰等领域发挥着关键作用。本文详细介绍了一种以单片机和可编程逻辑器件(FPGA)为控制的程控滤波器的设计与实现。
该程控滤波器实现了小信号程控放大、程控调整滤波器截止频率和幅频特性测试等功能。其中,放大模块由可变增益放大器 AD603 实现,其增益可达 60dB,且能以 10dB 步进进行可调,增益误差小于 1%。程控滤波模块则由 MAX297 低通滤波、TLC1068 高通滤波及椭圆低通滤波器构成,滤波模式可通过模拟开关进行选择。此系统能够对有源滤波的 -3dB 截止频率进行程控调整,使其在 1~30kHz 范围内可调,误差小于 1.5%。此外,采用有效值采样芯片 AD637 及 12 位并行 A/D 转换器 MAX120 实现了对扫频信号幅度的测量。
滤波器在电子领域中占据着重要地位,广泛应用于信号处理、抗干扰处理、电力系统、抗混叠处理等方面。而该程控滤波器的特点在于其滤波模式可以程控选择,且 -3dB 截止频率程控可调,相当于一个集多功能于一体的滤波器,具有更好的应用前景。同时,系统还具备幅频特性测试功能,并可通过示波器显示频谱特性,能直观地反映滤波效果。
方案论证与选择
可变增益放大模块:有两种方案可供选择。方案一是使用数字电位器控制两级 INA129 级联,通过 FPGA 控制数字电位器 DS1267 输出不同阻值,作为高精度仪表放大器 INA129 的反馈电阻,从而改变放大倍数。方案二则采用可变增益放大器 AD603,其内部由 R - 2R 梯形电阻网络和固定增益放大器构成,衰减量由加在增益控制接口的参考电压决定,可通过单片机控制 DAC 产生参考电压来控制增益。考虑到输入正弦小信号振幅为 10mV,电压增益需 60dB,10dB 步进程控可调且电压增益误差不能大于 5%,虽然两个方案在精度上都可实现,但数字电位器内部结构复杂且存在电容影响,后级接运放可能带来不良后果,因此终选择方案二。
滤波器模块:同样有三种方案。方案一是采用数字滤波器,利用 MATLAB 设计 FIR 或者 IIR 滤波器,虽具有精度高、截止特性好等优点,但 FIR 滤波器会占用大量 FPGA 资源,IIR 滤波器设计工作量大且稳定性不高,若要使截止频率可调,软件设计量较大。方案二是采用无源 LC 滤波器,利用电感和电容搭建各种类型滤波器,参照设计手册可较容易设计出理想滤波器,但要实现截止频率可调,硬件会非常复杂。方案三是采用集成的开关电容滤波器芯片,由 MOS 开关、MOS 电容和 MOS 运算放大器构成,其开关电容组在时钟频率驱动下可等效成与时钟频率有关的等效电阻,通过改变外部时钟可改变等效电阻,进而改变滤波特性,且可直接处理模拟信号,简化了电路设计,提高了系统可靠性。综合考虑,本系统采用方案三利用集成芯片 MAX297 实现低通滤波器、LTC1068 实现高通滤波器,同时采用方案二利用无源 LC 滤波器技术实现四阶椭圆低通滤波器。
系统总体设计方案及实现方框图
系统以单片机及 FPGA 为控制,由可控增益放大模块、程控滤波模块和幅频特性测试模块构成。输入振幅为 1V 的信号经分压网络衰减后变成振幅 10mV 的小信号,经 OPA690 前级放大 2 倍,起到阻抗变换和隔离的作用。同时由 AD9851 产生一设定频率的正弦信号,通过模拟开关选择一道送到后级。信号经 AD603 进行 0~60dB 的可调增益放大后,送入滤波模块。滤波模块包括低通、高通、椭圆滤波器,低通、高通滤波器的 -3dB 截止频率可在 1~30kHz 范围内以 1kHz 步进进行程序控制,椭圆滤波器截止频率为 50kHz。再通过模拟开关选择某一特定滤波信号输出,经有效值检波和 A/D 转换后送入 FPGA 进行幅频特性的测试,用两块 DAC0800 实现幅频特性曲线的显示。
主要功能电路设计
放大模块:由分压网络、OPA690 放大电路和 AD603 可变增益放大电路组成。分压网络将输入信号衰减 100 倍,并与信号源内阻共同构成 51Ω 阻抗,后面的 51Ω 为匹配电阻。OPA690 将小信号放大 2 倍并起到阻抗变换和隔离作用。由于 AD603 输入阻抗为 100Ω,所以在后面串接一个 100Ω 的电阻进行匹配。AD603 的增益随着控制电压的增大以 dB 为单位线性增长,通过单片机运算并控制 DAC 芯片输出电压得到 1 脚的参考电压,从而实现的数控。增益 G (dB)=40VG + G0,其中 VG 为差分输入电压,范围 -500~500mV,G0 是增益起点,接不同反馈网络时也不同。在 5、7 脚间接一个 5kΩ 的电位器可改变增益。
高通滤波模块:采用 LTC1068 低噪声高精度通用滤波器,用于高通滤波时,截止频率范围为 1Hz~50kHz,直至截止频率的 200 倍都无混叠现象。其 4 个通道都是低噪声、高精度、高性能的 2 阶滤波器,每个通道外接若干电阻就可实现低通、高通、带通和带阻滤波器的功能。在电路调试中发现,A 口的 Q 值需比 B 口 Q 值大,否则信号在截止频率处幅值会有上翘。LTC1068 的时钟频率与通带之比为 200:1,由于其内部对时钟信号 CLK 二倍频,当截止频率为 1kHz 时,内部时钟频率为 400kHz,所以在 LTC1068 后面再加一个截止频率为 450kHz 的低通滤波器以滤除分频带来的噪声及高次谐波。
低通滤波模块:用 MAX297 实现低通滤波器,可设置为 8 阶低通椭圆滤波器,阻带衰减为 -80dB,时钟频率与通带频率之比为 50:1。通过改变 CLK 的频率,可满足滤波器 -3dB 截止频率在 1~20kHz 范围内以 1kHz 步进可调的要求。使用时需注意,当信号频率和采样分辨率同频或为采样频率的整数倍时,滤波器会输出直流电平,因此在其前面增加一个截止频率为 50kHz 的 MAX297 模拟低通滤波器,后面增加一个截止频率为 150kHz 的低通滤波器,以滤去高频分量,使波形更加平滑。
四阶椭圆低通模块:系统要求制作一个四阶椭圆型低通滤波器,带内起伏≤1dB, -3dB 通带为 50kHz,采用无源 LC 椭圆低通滤波器实现。先用 Filter Solution 模拟仿真滤波器,再在 Multisim 中模拟仿真并调整电容、电感的参数使其为标称值。此外,在椭圆滤波器前后接射级跟随器以避免前后级影响。
系统软件设计
系统软件设计由单片机和 FPGA 组成,用户可通过界面显示选择高通、低通和椭圆滤波器,设置截止频率,并显示幅频曲线。其中,单片机主要完成用户的输入输出处理和系统控制,FPGA 主要完成控制 AD9851 产生扫频信号、控制滤波器截止频率的时钟信号的产生以及控制两块 D/A 以显示幅频特性曲线等功能。
测试方案与测试结果
放大器测试:放大器输入端正弦信号频率为 10kHz,振幅为 10mV,设定增益分别为 10、20、30、40、50、60dB,用示波器测量实际输出幅值,计算出实际增益,误差小于 1%。同时测得放大器通频带为 1~200kHz。
低通、高通滤波器测试:将放大器增益设置为 40dB,分别测试低通和高通滤波器。预置滤波器截止频率在 1~30kHz 范围,以 1kHz 步进,用示波器测量实际截止频率,计算相对误差小于 1.5%,且 2fc 处的电压总增益小于 20dB。
椭圆滤波器测试:放大器增益设置为 40dB,用示波器测量实际 -3dB 截止频率和 200kHz 处的总电压增益。测得 fc = 50.0kHz,在 150kHz 处幅度已几乎衰减到 0。
幅频特性与相频特性测试:测量低通、高通滤波器的频率特性,在示波器上显示其幅频特性曲线,与所设置的滤波模式及截止频率相符。