Filter 计算一维中值滤波器的代码

Filter 计算一维中值滤波器的代码,filter,median,Filter,Median,我想知道是否有人知道一些python或java代码来计算1D中值滤波器。 我有一个用两个字段分隔的文件逗号:日期和信号。 诸如此类: 2014-06-01 11:22:12,23.8 2014-06-01 11:23:1215.9 2014-06-01 11:24:12,45.7 我想阅读此文件并应用尺寸为23的一维中值滤波器 用于现场信号,并将其保存在另一个文件中以消除噪声 提前谢谢 Alexandre.以防以后有人无意中发现 要提取数据,您可以使用正则表达式,而对于自定义中值滤波器,您可以查

我想知道是否有人知道一些python或java代码来计算1D中值滤波器。 我有一个用两个字段分隔的文件逗号:日期和信号。 诸如此类:

2014-06-01 11:22:12,23.8

2014-06-01 11:23:1215.9

2014-06-01 11:24:12,45.7

我想阅读此文件并应用尺寸为23的一维中值滤波器 用于现场信号,并将其保存在另一个文件中以消除噪声

提前谢谢


Alexandre.

以防以后有人无意中发现

要提取数据,您可以使用正则表达式,而对于自定义中值滤波器,您可以查看一下。 我将在这里留下一份副本,以防删除:

def medfilt (x, k):
"""Apply a length-k median filter to a 1D array x.
Boundaries are extended by repeating endpoints.
"""
assert k % 2 == 1, "Median filter length must be odd."
assert x.ndim == 1, "Input must be one-dimensional."
k2 = (k - 1) // 2
y = np.zeros ((len (x), k), dtype=x.dtype)
y[:,k2] = x
for i in range (k2):
    j = k2 - i
    y[j:,i] = x[:-j]
    y[:j,i] = x[0]
    y[:-j,-(i+1)] = x[j:]
    y[-j:,-(i+1)] = x[-1]
return np.median (y, axis=1)
scipy.signal.medfilt接受1D内核:

import pandas as pd
import scipy.signal


def median_filter(file_name, new_file_name, kernel_size):
    with open(file_name, 'r') as f:
        df = pd.read_csv(f, header=None)

    signal = df.iloc[:, 1].values
    median = scipy.signal.medfilt(signal, kernel_size)

    df = df.drop(df.columns[1], 1)
    df[1] = median
    df.to_csv(new_file_name, sep=',', index=None, header=None)


if __name__=='__main__':
    median_filter('old_signal.csv', 'new_signal.csv',  23)