You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab的highpass函数对应的Python等价实现是什么?

Matlab highpass函数的Python等效实现方案

存在完全匹配功能的Python实现,基于scipy信号处理模块即可完成,不需要额外依赖第三方库。

基础通用实现(覆盖90%常用场景)

Matlab的highpass函数默认输出零相位偏移的滤波结果,对应Python可以通过scipy.signal.butter设计巴特沃斯高通滤波器,再搭配零相位滤波函数scipy.signal.filtfilt实现,示例封装代码如下:

import numpy as np
from scipy.signal import butter, filtfilt

def matlab_like_highpass(input_signal, cutoff_freq, sample_freq, filter_order=5):
    # 计算奈奎斯特频率
    nyquist_freq = 0.5 * sample_freq
    # 归一化截止频率
    norm_cutoff = cutoff_freq / nyquist_freq
    # 设计高通滤波器系数
    b, a = butter(filter_order, norm_cutoff, btype='high', analog=False)
    # 零相位滤波,和Matlab highpass默认无相位偏移的输出特性一致
    filtered_signal = filtfilt(b, a, input_signal)
    return filtered_signal

参数说明:

  • input_signal:待滤波的输入信号数组
  • cutoff_freq:高通截止频率,单位与采样频率保持一致
  • sample_freq:输入信号的采样频率
  • filter_order:滤波器阶数,可根据原Matlab代码的调用参数调整,默认值可满足多数常规滤波需求

完全对齐Matlab默认逻辑的实现参考

如果需要100%匹配Matlab highpass的默认自动参数配置,可参考其公开的算法逻辑补全封装:

  • 滤波器类型默认选用椭圆滤波器,配置通带最大波纹0.1dB、阻带最小衰减60dB
  • 自动计算满足上述指标的最小滤波器阶数
  • 边缘计算阶段默认采用对称填充策略降低边界效应
  • 自带DC偏置自动校正逻辑适配带直流分量的输入信号

内容的提问来源于stack exchange,提问作者APMATH24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:30:01