问题标签 [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.

0 投票
2 回答
695 浏览

r - 为什么这个巴特沃斯滤波器在 R 和 Matlab 中呈现不同的结果?

我正在尝试对 R 中的数据使用 20Hz 低通滤波器,但是当我使用 filtfilt 函数时,绘图与 matlab 不同。

我在 R 中使用以下代码:

matlab代码为:

matlab中的情节是:

matlab绘图

R一:

R图

为什么 R 会在图表的开头和结尾呈现这些变化?

数据可以产生如下:

0 投票
1 回答
99 浏览

matlab - MATLAB 黄油的问题

我正在使用 MATLAB R2015 并且无法实现“黄油”而不会收到与polyfit脚本部分输出参数过多相关的错误。多年来,我在其他版本的 MATLAB 中一直使用相同的实现。

例子:

poly
使用太多输出参数时出错。

错误zp2ss(第 127 行)
den = real(poly(p(i:i+1)));

错误butter(第 97 行)
[a,b,c,d] = zp2ss(z,p,k);

实施帮助文档中的示例时,我遇到了同样的错误。

0 投票
1 回答
1422 浏览

python - 如何使用 python 设计一个巴特沃斯滤波器,指定我的截止频率为 0.1 Hz?

在这里,我试图创建一个截止频率为 0.1 Hz 的高通巴特沃斯数字滤波器。我已经实现了以下代码,但我不确定它是否属实

我的困惑是关于这里的截止频率,我将它乘以 2*pi,因为据我了解 scipy.signal.butter 的 cutoff_frequency 对应于以 rad/s 为单位的角频率。

0 投票
0 回答
152 浏览

python - 巴特沃斯滤波器不能改善我的神经信号

我有一个来自 18.2 kHz 的 16 位 ADC 的(自然)神经元的信号。我正在尝试检测该信号中的尖峰。对于那些不熟悉这一点的人:当神经元放电时,它们会发出一个特定的信号:它以陡峭的上升开始(或下降,取决于神经元和电极的方向),大部分时间随后会更陡峭下降,然后恢复正常。当然只有一个神经元的信号很小,所以噪声也很大:

像这样:

https://www.hindawi.com/journals/cin/2010/659050.fig.002.jpg

我正在关注的出版物建议使用巴特沃斯滤波器: https ://www.hindawi.com/journals/cin/2010/659050/ “首先,使用二阶巴特沃斯滤波器(150 Hz–2,500)对信号进行带通滤波Hz)...”我已经这样做了,但是我的信号没有改善。当我玩过参数时,只会让它变得更糟。例如使用 500-5000Hz 滤波器,或类似的。

我预计噪音会更小,使尖峰更加突出,并且更容易检测到。但事实并非如此。过滤器似乎可以工作(在生成的正弦输入上对其进行了测试)。我究竟做错了什么?

编辑:

时域输入和输出 时域输入和输出 原始信号和滤波信号及其频谱 原始信号和滤波信号及其频谱

0 投票
0 回答
6881 浏览

python - 音频均衡器

我正在尝试用 python 制作一个简单的 10 段均衡器。为了实现这一点,我编写了两个函数,但我遇到了增益问题。我想为每个频段设置一个增益,但它不起作用。

这里有一个例子。需要一个单声道 wav“audio.wav”文件才能工作。

在第二个图中,显示了重叠的原始信号和滤波信号的频谱,我希望看到滤波信号的前三个频段的频率为零,但它们与原始信号大致相同。我还附上了光谱图的快照。

频谱图

你能帮我吗?

0 投票
1 回答
225 浏览

python - 为什么使用巴特沃斯滤波器进行低频滤波会出错?

我正在尝试分析每个 1/3 倍频程频带频率的幅度,因此我使用了许多带通巴特沃斯滤波器。但是,当它是 3 阶时,它们仅适用于 50 Hz。我想使用 6 阶,但由于某种原因,我在 1 kHz 以下没有得到任何结果。

在此处输入图像描述

如何使用 6 阶巴特沃斯滤波器正确过滤 50 Hz 带通?

0 投票
1 回答
159 浏览

r - 正确解释巴特沃斯滤波器频率

我正在使用 R 包中的butter函数signal来过滤我的数据。

数据是傅里叶变换的(复数) - 我想过滤掉特定的频率(我有一个 256Hz 的采样频率,因此是一个 128Hz 的频谱,并且说我只想过滤 4-8Hz 的数据)。

我发现有关此函数中 W 的正确值应该是什么的文档相互矛盾:

  • 它们应该是 4/256 和 8/256 吗?

我发现很难解释我的 4/256 和 8/256 的结果是否正确。

我只想知道“/256”在这里是否有意义。

编辑:

另外,知道为什么下面不返回与上面相同的结果吗?

它应该只是低通和高通滤波器的组合。

0 投票
0 回答
389 浏览

frequency - 在时间序列数据中应用巴特沃斯过滤器

我有以毫秒 (ms)(69300 行)为单位测量的时间序列数据,我想应用低通、高通和带通巴特沃斯滤波器。

我的方法如下:

  • 将 ms 转换为 Hz
    • 找到采样率/2 的奈奎斯特(作为采样率,我采用转换后的 Hz 值)
    • 计算正弦曲线+噪声
    • 计算低通和高通滤波器的截止频率(取总赫兹的 0.1 并除以低通的奈奎斯特值,并取总赫兹的 0.25)
    • 对于带通滤波器,我计算截止频率的差异
    • 应用过滤器的 -n 阶
    • 通过正弦+噪声的滤波器。

下面是我使用 R 制作的代码片段:

这是正确的方法吗?应该代替 sinusoid+noise 将过滤器应用于度量本身吗?

0 投票
0 回答
49 浏览

matlab - 黄油函数是否总是产生稳定的滤波器系数?

我需要设计一个稳定的带通滤波器(它也可以是 IIR)。我butter在 MATLAB(信号处理工具箱)中使用了该函数。现在我怎么知道我的过滤器是否稳定?我试过isstable(也来自信号处理工具箱)。问题是butter总是返回稳定的滤波器系数吗?无论给 什么参数或输入butter,它总是会在任何条件下给出稳定的滤波器系数吗?有没有办法知道过滤器在什么条件下可能不稳定?

0 投票
1 回答
2908 浏览

python - 如何在 python 中的医学图像的 2D np.array 上实现巴特沃斯滤波器

我想使用巴特沃斯滤波器平滑医学图像,数据非常嘈杂,我想减少它。我正在使用 Python v3.7。图像数据存储在 2D np.array 中,我使用 scipy 将其转换为频域。我不知道下一步可以应用巴特沃斯过滤器

我的数据必须采用什么格式才能应用巴特沃斯过滤器?以及我使用哪些参数。