2024-04-25 13:09:11 发布
网友
我正在处理一个心电信号,我想删除漂移噪声。 在Matlab中,这段代码运行良好:
[c, l]=wavedec(ecgsignal,8,'coif5'); a9=wrcoef('a',c,l,'coif5',8);
其中ecgsignal是带噪声的原始信号,a9是滤波信号。 我试图用python代码实现同样的效果:
但是重构信号renc有噪声。 有人能帮我理解什么是不正确的吗?我使用了PyWavelet库的错误命令?在
你只是解构信号然后重建信号。您还没有完成键阈值化步骤,该步骤实际上执行您正在寻找的信号滤波。在
用python绘制了所需步骤的基本轮廓:
// DWT coeffs = pywt.wavedec(ecgsignal,'coif5', level=8); // Compute threshold something like this. You need an estimate // of the noise sigma. threshold=noiseSigma*sqrt(2*log2(ecgsignal.size)); // Apply the threshold. Pseudocode here. newcoeffs = pywt.thresholding.soft( coeffs , threshold); // IDWT renc = pywt.wavedec(newcoeffs , 'coif5');
目前,pywt还没有实现wrcoef等价函数。但您仍然可以分解一维多电平信号,然后分别重建其分量。在
https://stackoverflow.com/a/47591523/2845274
你只是解构信号然后重建信号。您还没有完成键阈值化步骤,该步骤实际上执行您正在寻找的信号滤波。在
用python绘制了所需步骤的基本轮廓:
目前,pywt还没有实现wrcoef等价函数。但您仍然可以分解一维多电平信号,然后分别重建其分量。在
https://stackoverflow.com/a/47591523/2845274
相关问题 更多 >
编程相关推荐