问题标签 [butterworth]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 scipy 对截止频率进行建模
我正在努力为扬声器编写交叉滤波器。此函数旨在创建一个虚拟输入信号,然后可以对其进行滤波,但是当我在调用该函数时更改频率和顺序时,它将不再在图表上正确绘制滤波后的频率。
在 scipy 网站上,他们说建议在过滤时使用二阶部分格式,以避免传递函数(ba)格式出现数字错误,但我现在不确定这是最好的解决方案,或者我在这里忽略了一个简单的错误.
看:
sosfilt:https ://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.sosfilt.html#scipy.signal.sosfilt
黄油: https ://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.butter.html#scipy.signal.butter
更新 - 这似乎发生在更高的频率(我使用 3000 Hz 截止)与 .butter、.sosfilt 和 .irrfilter、.lfilter 命令
signal-processing - Scilab - 查找巴特沃斯系数并过滤模拟数据
对于带有加速度计的项目,我正在寻找一种过滤一些高频的方法。我不是信号专家,但我通常会根据需要阅读,使用巴特沃斯滤波器。
我为此目的使用 Scilab,我正在努力解释我的结果:我编写了以下代码(在底部)并比较了 Scilab 输出函数以在 Arduino中实现这个过滤方程:
我的问题是:
- cnum 函数和 filter 函数有什么区别?
- analpf(butt) 或 zpbutt 的结果系数为
“系数:Num / Den:”
1。
- 0.063662 0.0020264 0.0000323
我期望结果为规范形式 ,期望值为
b1 0.331785003 ; b2 0.99535501 ; b3 0.99535501 ; b4 0.331785003
a1 -0.965826145 ; a2 -0.582614466 ; a3 -0.106171201
从这里的外部软件(链接)计算,N=3,低通,Fc=5,Fs=15。
你能看看我的代码并给我一些建议来纠正它并有正确的系数 ai 和 bi 吗?
提前感谢您的支持!!
butterworth - 巴特沃斯函数
如何在八度音阶上实现巴特沃斯函数?
我有一个带有很多尖峰的信号响应,我想以非常低的截止频率实现该功能。我是编程新手,所以,我需要很多帮助。
python - Butterworth 内核生成
我想在图像上应用巴特沃斯滤镜以消除模糊。如何从滤波器系数(以下代码中的 a 和 b )生成巴特沃斯内核。
谢谢!
python - Python3中过滤后的wav文件的RMS值
我是 Python 新手,所以如果我需要澄清任何事情,请告诉我。我正在尝试获取过滤后的 wav 文件的 rms 值。我可以在 pyaudio 流中使用 USB 麦克风录制 wav 文件,并将数据存储在块中,获取该块的 rms 值并将其存储在一个数组中,然后在遍历所有样本后,它只需要该数组的最大 rms 值(全部在函数 mic0() 下完成)。我以可以应用于过滤信号的不同格式重复此过程(因为我正在读取 wav 文件而不是流)并获得相同的结果。
我想获取记录的 wav 文件,对其进行过滤,然后再次获取 rms 值。但是在我使用了 butter_bandpass_filter 函数之后,每当我尝试计算 rms 值时,我总是得到 18000 左右。在将数据存储到函数中之前,我对其进行了标准化,使其与原始信号匹配(我大胆地检查了它)但这并不影响最终结果,因为我尝试删除它(y / max_int16),它仍然给我 18000。我也尝试弄乱数据类型,但我尝试的几乎所有东西都不起作用或导致过滤后的信号显示为 0。
这是代码:
python - 如何在树莓派上使用 scipy 实现巴特沃斯带滤波器
您好我正在尝试运行代码来验证我在 RPI4 上的加速度传感器。似乎我的库没有采样率选项,'fs',因为我不断收到错误;
TypeError:butter() 得到了一个意外的关键字参数“fs”
有什么想法可以解决这个问题吗?
c++ - C 或 C++ 中的 Matlab 或 Scipy Filtfilt(零相位滤波器)
我想实现一个快速简单的 filtfilt 函数来放在我的嵌入式系统上。
我已经生成了系数 O 和 K。但是过滤器函数返回的结果与 MatLab 函数不同。
我被这个问题困住了,你有什么想法吗?
变量
C++ 代码
MATLAB 代码
结果
r - 巴特沃斯滤波器导致信号开始时出现极端异常值
我目前正在分析 R 中 100 名参与者的呼吸信号。为了为我的进一步分析步骤预处理数据,我正在使用巴特沃斯带通滤波器(阶数 = 4,0.2 - 5 Hz)。信号以 250Hz 采样,信号长度在 60000 到 300000 个数据点之间。
问题 = 运行巴特沃斯过滤器后,我遇到的问题是前 500 - 1000 个数据点成为极端异常值。请参阅:示例图单击此处。我该如何避免这种情况?还是仅删除前 1000 个数据点的唯一选择?
我很感激任何提示!
最好的,约翰逊
java - 如何在 Android Studio 中使用系数手动实现二阶带通滤波器?
我在 MATLAB 中创建了一个二阶部分带通巴特沃斯滤波器。我从我在 MATLAB 中创建的滤波器中得到了系数 b0、b1、b2、a1 和 a2。我现在想在 Android Studio 中实现相同的过滤器。有没有办法可以使用系数在 Android Studio 中手动创建过滤器?
我已经尝试查找过滤器计算的公式,但我没有找到任何适合我正在寻找的东西。
我正在使用的频率是 500 Hz。我想在 0.1-5 Hz 之间测量并将其余的过滤掉。
python - Scipy过滤器:强制SOS系数的最小值准备整数过滤器
我尝试使用 Scipy 设计一个低通滤波器(切割 40Hz 左右),它似乎适用于以下代码:
这个过滤器最终必须嵌入没有 FPU 的板上,所以我必须将 SOS 转换为整数数组。
但问题是:SOS 矩阵第一行的某些系数太低,无法转换为 32 位整数:
用 0 或 1 替换几乎为空的值(一旦所有其他系数按比例放大)不起作用。
你知道一个 scipy 实用程序,它强制过滤器的设计与转换为整数兼容吗?
如果没有,您知道如何更改buttord
或butter
args 以增加第一行的系数吗?(不能改变采样频率和截止频率)。
提前致谢