问题标签 [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 投票
0 回答
152 浏览

matlab - 使用 Filtering、butterworth、filtfilt 命令去除相位差

我正在使用 6 阶巴特沃斯带通滤波器从信号 (x) 中提取 10-20 Hz 频带。之后,我将 filtfilt 命令应用于巴特沃斯带通滤波信号 (10-20 Hz) 以消除相位延迟。我做得对吗?提前致谢。代码如下。随意更正代码。

0 投票
1 回答
188 浏览

python - 随着阶数的增加,巴特沃斯滤波器看起来很奇怪

我正在尝试在 SciPy 中设计一个简单的 Butterworth 带通滤波器,但遇到了一些奇怪的结果。

这给出了奇怪的结果,如下图所示(巴特沃斯滤波器从 1-10 阶)。我认为随着订单的增加,过滤器应该变得越来越矩形?

在此处输入图像描述

有谁知道如何在 SciPy 中设计一个简单的巴特沃斯滤波器?

0 投票
1 回答
197 浏览

matlab - 如何在 Matlab 的 EEGLAB 插件中安装 Butterworth 滤波器?

我在教程和论文中看到 EEGLab 中有巴特沃斯高通滤波器。但是,我没有它,也无法在 EEGLAB 扩展中找到它。任何想法如何得到它?

谢谢!

0 投票
0 回答
355 浏览

python - 带通滤波器输出和傅里叶变换

我正在尝试消除此波形中不需要的噪声和其他一些频率: 修整信号

如下图所示,它有很多噪音: 噪音

我使用 numpy 应用快速傅立叶变换将其转换为频域:(channelA 和 time 是 numpy 数组,channelA 存储电压值)

这是变换: fft 放大时: fft 放大 我在 python 中使用 scipy 应用了一个巴特沃斯带通滤波器。这是代码:

这里我的采样率为 2M (2e6),我的通带频率为 100-1kHz。应用滤波器后,信号似乎已经失去了噪声,但开始时的电压变为负值。我不懂为什么。有人可以解释为什么会这样吗? 滤波信号 放大以显示没有噪音: 无噪音

当我应用高通滤波器时电压变为负值。如果我只应用低通滤波器,噪声就会被消除。(可以使用相同的功能应用高通和低通滤波器)

这是滤波信号的变换: 过滤后的fft 放大: 过滤后的 fft 放大

可以看出,小于 100Hz 的频率仍然存在,而 350Hz 左右的频率已被移除。我试图将注意力集中在 350-400Hz 左右的频率上,并希望在不扭曲信号的同时消除其余频率。为什么会发生这种情况,我应该怎么做才能做到这一点?

PS对不起,这篇文章有点长,但我没有另一种解释方式。

0 投票
0 回答
328 浏览

matlab - 在 Octave 中设计一个低通滤波器 Butterwoth 原型

你知道这段代码有什么问题吗?我正在用 Butterworth 原型构建一个过滤器,但我不知道我在哪里犯了错误。

标准化滤波器(1Hz)的结果: 标准化滤波器的结果 (1Hz)

现在我转换滤波器以抑制 130kHz+ 频率。

结果是: 结果

滤波信号的 FFT: 在此处输入图像描述

我知道,情节没有显示任何东西。下面有错误。我认为过滤器没有正确过滤。你有什么想法来解决它吗?

还有错误:

computeFFT 是我的函数,它返回 x 轴和单面频谱

谢谢。

0 投票
0 回答
140 浏览

python - 如何修复“选定的轴超出范围”错误 - QComboBox 与巴特沃斯过滤器

我正在准备一个带有 02 Widgets 的代码,左边的第一个是用于绘制信号、它的 FFT 和 log10 的图。右边第二个是处理和绘制滤波后的信号及其FFT,log10。我应用了一个组合框来选择巴特沃斯高通和低通。

但是当我在组合框中选择一个选项时出现错误,即

如何修复此代码

我的代码如下

链接到代码和 GUI:https ://drive.google.com/drive/folders/1eC15rh-1MLgNl948IpsUjZ773mMhTHlp?usp=sharing

在此处输入图像描述

0 投票
1 回答
401 浏览

python - 在 python 中应用巴特沃斯带通滤波器后,如何去除信号开始处的大尖峰?

我想使用带通滤波器去趋势我的信号,所以我在 python 中使用了 FL=0.1 Hz 和 FH=20Hz 的 Butterworth 滤波器,但是在应用这个带通滤波器后,我观察到信号开始处的大尖峰。这个尖峰是做什么用的?以及如何删除python中的这个尖峰?

滤波信号

您可以从此链接下载“data1.csv” 。

0 投票
2 回答
197 浏览

matlab - Why getting same output from fir filter even after changing the cutoff frequency for acceleration time series data?

I have question about filtering.

Currently I am working on pedestrian step detection using an inertial measuring unit (accelerometer/acceleration data). I need to filter my signal at preprocessing level. Could anyone suggest which one will be the best filtration algorithm to get good accuracy? For now I used digital lowpass fir filter with order=2, window size=1.2sec,sampling frequecy=200hz but seems not working. I want to use a lower cutoff frequency. I used 0.03hz and 3hz of cutoff frequecny but I am getting the same result for both cutoff frequencies. I need your guidance or help that how can I proceed. Below, I am attaching the images of filtration result as link at 3hz and 0.03hz respectively and also code that I tried. Could some one suggest me or provide any good filter in matlab and/or how can I work on that?

fir result at 3hz cutoff fir result at 0.03hz cutoffFull signal

0 投票
1 回答
191 浏览

matlab - 如何对齐原始信号和滤波信号以进行分析?

我对加速度数据使用了巴特沃斯带通滤波器。现在我想对齐/组合原始信号和平滑信号以进行观察/分析问题是我正在尝试对齐,但它不起作用。可能我做错了。我需要指导,如何调整它们。下面我发布了我试图用来对齐两个信号的输出图像和代码。我放在这里的输出图像由原始信号和使用巴特沃斯带通滤波器完成的滤波信号组成。谢谢

输出原始信号和滤波信号

0 投票
1 回答
73 浏览

matlab - 如何在matlab中使用截止波长过滤一维矢量数据?

我正在尝试将高通滤波器应用于由从黑白图像中提取的 1 像素宽的线组成的信号(列或行向量)。我知道图像的分辨率(res在下面的代码中,以毫米/像素给出)。如何在 MATLAB 中过滤这些线数据以丢弃某些低频(波纹)或大波长,例如 >10 毫米,使用巴特沃斯滤波器或任何其他?

线数据不以零为中心。

我试过了 :[z, p, k] = butter(9, fc/fn, 'high'); % I see the filter is high pass on plotting.

我可以使用上述给定值和假设值过滤线路数据吗?如果没有,有没有办法可以使用截止波长过滤数据?