我试图过滤/平滑从采样频率为50 kHz的压力传感器获得的信号.示例信号如下所示:

我想在MATLAB中获得由黄土获得的平滑信号(我没有绘制相同的数据,值不同).

我使用matplotlib的psd()函数计算了功率谱密度,功率谱密度也在下面提供:

我尝试使用以下代码并获得过滤后的信号:
import csv
import numpy as np
import matplotlib.pyplot as plt
import scipy as sp
from scipy.signal import butter, lfilter, freqz
def butter_lowpass(cutoff, fs, order=5):
nyq = 0.5 * fs
normal_cutoff = cutoff / nyq
b, a = butter(order, normal_cutoff, btype='low', analog=False)
return b, a
def butter_lowpass_filter(data, cutoff, fs, order=5):
b, a = butter_lowpass(cutoff, fs, order=order)
y = lfilter(b, a, data)
return y
data = np.loadtxt('data.dat', skiprows=2, delimiter=',', unpack=True).transpose()
time = data[:,0]
pressure = data[:,1]
cutoff …Run Code Online (Sandbox Code Playgroud)