簡體   English   中英

在 Python scipy 中創建自定義信號濾波器

[英]Create a custom signal filter in Python scipy

我正在嘗試使用 python 和 scipy 實現以下過濾器。 我已經知道如何實現這樣的“基本”過濾器:

cut_freq = 0.05
b, a = scipy.signal.butter(1, cut_freq/(fs/2), 'high')
output_signal = scipy.signal.filtfilt(b, a, flicker) # flicker is just a random signal in numpy

然而,手頭的過濾器要復雜得多,我不知道如何解決這個問題。 謝謝 !

在此處輸入圖像描述

如果你想堅持使用 scipy filtfilt function 那么你需要在 b 和 a 中傳遞分子和分子系數,這會有點混亂(我寧願對信號進行 fft 然后乘以評估的頻率響應) .

擴展表達式並獲得 b 和 a 的一種好方法是使用sympy ,將其寫為文本

sympy.sympify('expression')

並評估在除 s 之外的所有其他變量上獲得的表達式(使用expr.subs ),然后使用cancel on 's' 作為要取消的變量進行簡化,只剩下 b 和 a。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM