Questions tagged «lowpass-filter»

低通滤波器是一种电子滤波器,它使低频信号通过,但会衰减高于截止频率的信号。

1
适用于Python初学者的低通滤波器和FFT
我对信号处理尤其是FFT还是陌生的,因此不确定在这里是否做正确的事情,我对结果有些困惑。 我有一个离散的实函数(测量数据),并想在其上设置一个低通滤波器。选择的工具是带有numpy软件包的Python。我遵循以下过程: 计算我的函数的英尺 切断高频 执行反函数 这是我正在使用的代码: import numpy as np sampling_length = 15.0*60.0 # measured every 15 minutes Fs = 1.0/sampling_length ls = range(len(data)) # data contains the function freq = np.fft.fftfreq(len(data), d = sampling_length) fft = np.fft.fft(data) x = freq[:len(data)/2] for i in range(len(x)): if x[i] > 0.005: # …

5
如何在Python中为采样信号编写低通滤波器?
我有一些信号每1 ns(1e-9 sec)采样一次,并且有1e4点。我需要从该信号中滤除高频。假设我需要过滤高于10 MHz的频率。我希望对于低于截止频率的频率,信号将保持不变。这意味着对于低于截止频率的频率,滤波器的增益将为1。我希望能够指定过滤器顺序。我的意思是,一阶滤波器在截止频率后具有20 db / dec的斜率(功率下降),二阶滤波器在截止频率后具有40 db / dec的斜率,依此类推。代码的高性能很重要。

4
低通/高通滤波的物理解释是什么?
在图像/信号处理上下文中,我们已经看到/知道,如果说4个样本,并且取这4个样本的平均值,那么我们说结果样本是低通滤波后的输出样本。这在图像处理上下文中非常相关。现在,意味着高通滤波的运算是什么呢?是找到4个样本中的最大值,然后将其作为输出样本,或者其他数学运算意味着高通滤波,而平均意味着低通滤波。

2
如何仅通过减少峰值数据来进行低通滤波器?
我有一个2D图像,我要对其进行低通滤波,并具有以下约束/质量指标: 我无法向图像“添加”光线,因此结果中的每个像素应<=输入中的相应像素。 低通截止频率应作为参数进行实验 重复应用此过滤器不应显着改变结果。 运行该算法所需的时间(5MPix图像需要5分钟) 尽量减少被滤除的光量。 以下是我尝试过的一些方法,以及它们的缺点: 像正常情况一样使用高斯滤镜,然后将结果下拉以符合约束1。这与前3个点非常吻合,但比所需的光要少得多。 通过它们之间的“低”点和“向下”抛物线拟合“向上”抛物线以使其平滑。这在1D中效果很好,但是首先在水平方向应用它,然后在垂直方向应用它会在2D中产生不好的效果。对于我的应用程序,它需要花费更长的时间,但不会太长。但是,重复应用此过滤器将大大改变结果。如果(1D)输入是一个完美的“向下”抛物线(根本不应该过滤),它将由位于开始/结束处的2个“向上”抛物线代替。 使用其他形式的2D“基本”函数和线性求解来找到最佳参数。这只是一个想法,目前尚未实现/测试。 我在信号处理方面的经验几乎仅限于图像处理,因此我希望在信号处理其他领域活跃的专家的帮助下找到解决此问题的替代方法。 更新2011/08/18 根据当前的反应,我决定通过添加典型输入的图形以及我最初描述的3种方法的结果以及到目前为止所收到的建议,使事情变得更加清晰。为了便于比较,在这些示例中我仅使用了一维过滤。 输入数据: 高斯滤波器 +将其调低以符合要求(1)。 您会看到降低它会导致右侧不必要的减光。 抛物线 对我而言,这是非常出色的,可悲的是,它不能通过首先应用水平然后垂直来完美地转换为2D。在这种情况下,您还会看到我可以以浮点分辨率评估拟合的抛物线,这虽然不大,但却不是绝对必要的。 灰度腐蚀 根据rwong的建议,我尝试了灰度腐蚀。我使用了与“拟合”抛物线形状相同的抛物线形结构元素。结果几乎完全相同,因此这看起来很有希望。但是,仍然存在一些问题:1.我的结构元素“不够大”(尽管宽度已经达到801像素)1.我只有“向上”抛物线,没有“向下抛物线”来平滑从一个抛物线的过渡到下一个。 中值过滤 仅出于完整性考虑,并不是我真正想要的。 原始数据 我将原始输入数据+各种python命令粘贴到pastebin上,因此您也可以尝试使用相同的数据。 http://pastebin.com/ASnJ9M0p

2
高通信号等于信号减去低通信号吗?
我的问题是,如果要高通信号,是否与低通信号并将其从信号中减去相同?理论上是一样的吗?几乎一样吗? 我已经搜索了(都在google和dsp.stackexchange上),但发现有冲突的答案。我一直在玩信号,这是结果。我对此不太了解。这是具有每四秒钟一次采样频率的信号。我设计了一个从0.8 mHz到1 mHz的过渡带的数字低通滤波器,并对信号进行了滤波。然后,我还设计了一个具有相同过渡带的高通滤波器,并对信号进行了滤波。这是结果。 第一张图片以黑色显示原始信号,以蓝色显示低通信号。它们几乎彼此叠在一起,但并不完全相同。红色曲线是信号减去高通信号,该信号就在信号顶部。 这第二张图片只是放大以显示正在发生的事情的第一张图片。在这里,我们可以清楚地看到两者并不相同。我的问题是为什么?是关于我如何实现两个过滤器的事情,还是与我的实现无关的理论上的事情?我对滤波器的设计并不了解很多,但是我确实知道这是违反直觉的。这是重现所有这些的完整MATLAB代码。我正在使用filtfilt命令消除相位延迟。但是,在此需要指出的另一点是,过滤器未进行标准化。当我做sum(Hd.Numerator)时,低通得到0.9930,高通得到0.007。我看不出如何解决这个问题。是否应该以某种方式缩放输出,因为系数不等于1?这种缩放可能与此有关吗? close all clear all clc data = dlmread('data.txt'); Fs = 0.25; % Sampling Frequency N = 2674; % Order Fpass = 0.8/1000; % Passband Frequency Fstop = 1/1000; % Stopband Frequency Wpass = 1; % Passband Weight Wstop = 1; % Stopband Weight dens …


1
为什么
我发现这是一个简单的但差的低通滤波器: y(n)=x(n)+x(n−1)y(n)=x(n)+x(n−1)y(n) = x(n) + x(n-1) 但是,我不明白为什么它是一个低通滤波器。它的截止频率是多少?

3
一般有关过滤器的文档
我已经在StackOverflow上发布了这个问题。我有一个建议可以在这里寻求更好的答案。 为了使问题更简洁,我对数字滤波器的介绍感兴趣,任何资源都是好的。 但是首先,如果有人可以向我介绍一些解释此过滤器的资源(在Android中使用),我将感到满意: http://gitorious.org/rowboat/frameworks-base/blobs/671a6ff4be11b3e2d8eb017e0c7a78e6133fb2b8/services/sensorservice/SecondOrderLowPassFilter.cpp 我感兴趣的是选择过滤器参数的方式。尽管我可以不加思索地复制它,但我想我应该在使用它之前了解其背后的基本概念/想法。 谢谢, 尤利安

3
Savitzky–Golay滤波器与IIR或FIR线性滤波器
传统的IIR / FIR滤波器(通过低通消除高频率振荡),例如移动平均, 或Savitzky-Golay滤镜 都可以使信号平滑,例如包络信号: Savitzky-Golay滤波器对于哪种应用比经典的低通更有趣? 它与标准过滤器有什么不同?与标准过滤器相比,它有什么优点? 它是否适应输入数据? 暂时保存更好吗? 您是否曾经有一天决定“让我们使用SG滤波器而不是移动平均线或另一个FIR低通!这是更好的选择,因为这,这个和这个...”是不是处于工程状况?那么这个问题适合您!

4
移动平均线应如何处理缺失的数据点?
我正在编写一个程序,该程序在不同的日子里平均用户的体重。我打算使用5点移动平均线(当前日期,前两天和后两天)。有时,一个数据点会丢失1-2天。这些案件通常如何处理? (如果我可以使用更好的低通滤波器,我很乐意提出建议)

2
在我的LP转向HP滤波器输出中,这种现象是做什么的?
我正在尝试通过LP滤波并从原始滤波器中减去输出来对信号进行HP滤波。为了获得经过LP滤波的信号,我使用三阶Butterworth滤波器对16,000个采样信号进行了前向滤波。截止频率为0.5 Hz @ 250 Hz。没有使用窗口。 在大约前85%的样本中,此方法的输出似乎与实际经过HP滤波的信号完全重叠。但是,在输出结束时,会出现类似Sinc的异常现象。 是什么原因造成的? 为了使该方法可行,我可以进行哪些更改? 这是两个重叠的信号。蓝色的一个被HP过滤,红色的一个通过减法获得。 这是每个样本的绝对差。他们永远不会完全平等;最小差异为8e-12。87%的值低于0.01。 (如果有更好的方法可以从LP过滤器的获得HP过滤器,我将很高兴学习它。)H(z)H(ž)H(z)

3
从嘈杂的语音信号中过滤消息
我正在尝试解密隐藏在非常嘈杂的音频文件(.wav)中的消息(我认为这是白噪声和额外的低无人机)。该消息是一个六位数的数字。我没有关于噪音的更多细节。 我尝试使用低通滤波器,以期消除大多数较高的频率将使我能够听到这些数字,但是,我似乎也无法摆脱足够多的低架无人机,从而听不到声音。我的尝试如下(freq_space_low_pass_filter在最后包含所使用的函数): [data, SampleRate, NbitsPerSample]=wavread('noisy_msg6.wav'); y=data(:,1); % we will work only with one channel in this demo N=length(y); %number of sample points t=( (1:N)*1/SampleRate ).'; % time spacing is 1/SampleRate and we want column vector Y=fft(y); spectrum_freq=fourier_frequencies(SampleRate, N); Freq3db=100; [spectrum_filtered,g_vs_freq]=freq_space_low_pass_filter(Y, SampleRate, Freq3db); y_filtered=ifft(spectrum_filtered); y_filtered=real(y_filtered); wavwrite(y_filtered/(0.1+max(y_filtered)), SampleRate, NbitsPerSample, 'noisy_msg6_filtered.wav'); %%%%%%%%down sampling%%%%%%%% …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.