简言MAFMoving Average Filter滑动平均滤波器基于 MAF 的 HPFHigh-Pass Filter高通滤波器2.设计目标1.抑制 dc2.抑制 极低频3.尽量不影响二次谐波分量 2fo所以窗口长度选成这意味着滑动平均窗口时间为:也就是说窗口长度刚好等于二次谐波周期。3. 两个滤波器的频率特性MAF低通滤波器MAF 的特点对 dc 增益 1对低频保留较多在某些频率点会出现陷波当窗口长度取为 1/(2fo)$时在 2fo处会出现零点或很强衰减所以它会把二次谐波滤掉。HPF 1 - MAF高通滤波器由于 MAF 在 dc 处增益为 1所以因此 HPF 可以完全去掉 dc。而当 MAF 在 2fo处接近 0 时所以 HPF 对二次谐波基本不影响。4. MATLAB 分析频率响应对比clc; clear; close all;%% 参数设置fs 10000; % 采样频率 [Hz]fo 50; % 电网基频 [Hz]f2 2fo; % 二次谐波频率 [Hz]Ts 1/fs; % 采样周期Ns round(fs/(2fo)); % 按论文设计Ns fs/(2fo)fprintf(‘fs %d Hz\n’, fs);fprintf(‘fo %d Hz\n’, fo);fprintf(‘2fo %d Hz\n’, f2);fprintf(‘Ns %d\n’, Ns);fprintf(T_MAF NsTs %.6f s\n’, NsTs);%% 构造离散域滤波器% MAF: H(z) (1/Ns)*(1-z-Ns)/(1-z-1)b_maf ones(1, Ns)/Ns;a_maf 1;% HPF 1 - MAF% 先构造统一长度b_hpf -b_maf;b_hpf(1) b_hpf(1) 1; % 对应 1 - MAFa_hpf 1;%% 频率响应nfft 8192;[H_maf, f] freqz(b_maf, a_maf, nfft, fs);[H_hpf, ~] freqz(b_hpf, a_hpf, nfft, fs);%% 幅频响应figure;subplot(2,1,1);plot(f, 20log10(abs(H_maf)1e-12), ‘b’, ‘LineWidth’, 1.5); hold on;plot(f, 20log10(abs(H_hpf)1e-12), ‘r’, ‘LineWidth’, 1.5);xline(f2, ‘–k’, ‘2f_o’);grid on;xlim([0 500]);xlabel(‘Frequency (Hz)’);ylabel(‘Magnitude (dB)’);legend(‘MAF’, ‘HPF 1 - MAF’);title(‘Magnitude Response’);%% 相频响应subplot(2,1,2);plot(f, angle(H_maf)*180/pi, ‘b’, ‘LineWidth’, 1.5); hold on;plot(f, angle(H_hpf)*180/pi, ‘r’, ‘LineWidth’, 1.5);xline(f2, ‘–k’, ‘2f_o’);grid on;xlim([0 500]);xlabel(‘Frequency (Hz)’);ylabel(‘Phase (deg)’);legend(‘MAF’, ‘HPF 1 - MAF’);title(‘Phase Response’);MAF 的特征:在 0 Hz 附近增益接近 0 dB在 100 Hz若 fo50Hz 附近会明显衰减甚至接近陷波说明它会保留 dc/低频但抑制二次谐波HPF 的特征:在 0 Hz 处增益接近负无穷 dB在低频区有抑制在 100 Hz 附近增益接近 0 dB说明它能滤除 dc/极低频同时保留二次谐波5.关键频点增益对比%% 关键频点增益freq_points [0.1 1 10 50 100 150 200]; % Hzw 2pifreq_points/fs; % 归一化频率(rad/sample)Hmaf_pts freqz(b_maf, a_maf, freq_points, fs);Hhpf_pts freqz(b_hpf, a_hpf, freq_points, fs);fprintf(‘\n频点增益对比\n’);fprintf(‘Freq(Hz)\t| MAF(dB)\t| HPF(dB)\n’);fprintf(‘--------------------------------------\n’);for k 1:length(freq_points)fprintf(‘%8.1f\t| %8.2f\t| %8.2f\n’, …freq_points(k), …20log10(abs(Hmaf_pts(k))1e-12), …20log10(abs(Hhpf_pts(k))1e-12));end频点增益对比Freq(Hz) | MAF(dB) | HPF(dB)0.1 | -0.00 | -50.14 1.0 | -0.00 | -30.15 10.0 | -0.14 | -10.24 50.0 | -3.92 | 1.42100.0 | -240.00 | 0.00150.0 | -13.46 | 0.11200.0 | -240.00 | 0.000~1 HzMAF 大HPF 很小100 HzMAF 很小HPF 接近 10 dB6.时域仿真对比下面构造一个信号代码%% 时域信号仿真t 0:Ts:0.2;x 1 0.2sin(2pi5t) 0.5sin(2pi100t);y_maf filter(b_maf, a_maf, x);y_hpf filter(b_hpf, a_hpf, x);figure;subplot(3,1,1);plot(t, x, ‘k’, ‘LineWidth’, 1.2);grid on;xlabel(‘Time (s)’);ylabel(‘x’);title(‘Input Signal: DC Low-frequency 2f_o’);subplot(3,1,2);plot(t, y_maf, ‘b’, ‘LineWidth’, 1.2);grid on;xlabel(‘Time (s)’);ylabel(‘y_{MAF}’);title(‘Output of MAF’);subplot(3,1,3);plot(t, y_hpf, ‘r’, ‘LineWidth’, 1.2);grid on;xlabel(‘Time (s)’);ylabel(‘y_{HPF}’);title(‘Output of HPF 1 - MAF’);含义1直流分量5 Hz极低频扰动100 Hz二次谐波当fo50Hzf_o50Hzfo​50Hz时看两个滤波器输出。MAF 输出:会保留平均值会平滑低频分量会显著削弱 100 Hz 二次谐波HPF 输出:直流分量基本被消除极低频扰动被削弱100 Hz 分量保留较好7.和“普通一阶高通”再比较代码%% 一阶高通滤波器用于对比fc 20; % 截止频率[b1, a1] butter(1, fc/(fs/2), ‘high’);[H1, f] freqz(b1, a1, nfft, fs);figure;plot(f, 20log10(abs(H_hpf)1e-12), ‘r’, ‘LineWidth’, 1.5); hold on;plot(f, 20log10(abs(H1)1e-12), ‘g–’, ‘LineWidth’, 1.5);xline(f2, ‘–k’, ‘2f_o’);grid on;xlim([0 500]);xlabel(‘Frequency (Hz)’);ylabel(‘Magnitude (dB)’);legend(‘MAF-based HPF’, ‘1st-order HPF’);title(‘Comparison of HPFs’);对比结果一阶高通在 100 Hz 处可能仍有幅值误差或相位偏差MAF-based HPF 在目标频率2fo2f_o2fo​处更容易做到“近似无影响”因为它是按TMAF1/(2fo)T_{MAF}1/(2f_o)TMAF​1/(2fo​)专门设计的结论基于 MATLAB 对 MAF 与 MAF-based HPF 的频域和时域分析可知MAF 本质上表现为低通滤波器在直流和低频处增益较高而在2fo2f_o2fo​处具有显著衰减。由GHPF1−GMAFG_{HPF}1-G_{MAF}GHPF​1−GMAF​构造的 MAF-based HPF 在直流处增益为零可有效抑制 dc 偏置与极低频扰动。当窗口长度设置为Nsfs2foN_s\frac{f_s}{2f_o}Ns​2fo​fs​​时MAF 在2fo2f_o2fo​处接近零因此 HPF 在2fo2f_o2fo​处增益接近 1可基本保留二次谐波分量不受影响。该特性非常适合应用于 LCFF 控制中用于消除前馈通道中的直流偏置同时避免削弱用于补偿的二次谐波信号。