从非周期性离散时间信号中消除未知的DC偏移 [英] Remove unknown DC Offset from a non-periodic discrete time signal

查看:164
本文介绍了从非周期性离散时间信号中消除未知的DC偏移的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有一些过程可以确定/消除非周期性离散时间信号中的未知DC偏移?

有问题的信号的采样率为25Hz,并且感兴趣的谐波介于0.25和3 Hz之间.

我尝试使用高通滤波器混合结果,首先我使用了Fc = 0Hz的10阶高斯,这在消除失调方面做得很好,但是尽管它确实使信号形状完好无损,但它也严重衰减了AC.我使用了一个168阶均衡器,其阻带为0Hz,通带为0.25Hz,相移太严重且信号形状太失真,如果将通带降低到0.1Hz,则失真可能会减小,但这会只是进一步增加相移,我需要将相移保持在最低限度.

根据Paul R的建议,在应用x-LPF(x)之前和之后

解决方案

我建议在DC处使用陷波滤波器,并使用filtfilt将其设为零相位.

a = [1 , -0.98]; b = [1,-1];

y = filtfilt(b,a,x);

a的第二个值越接近-1,则槽口越窄.

Is there some process that can determine / remove an unknown DC offset from a non-periodic discrete time signal?

The signal in in question has a sample rate of 25Hz and has harmonics of interest between 0.25 and 3 Hz.

I have tried using highpass filters mixed results, first I used a 10th order guassian with Fc = 0Hz, this did a good job of removing the offset but it severly attenuated the AC aswell although it did leave the signal shape intact, next I used a 168th order equilripple with a stopband at 0Hz and passband at 0.25Hz, the phase shift was too severe and the signal shape too distorted, the distortion could probably be reduced if the pass-band was brought down to 0.1Hz but this would just further increase the phase shift which I need to keep to the very minimum.

Before and after applying x - LPF(x), as suggested by Paul R

解决方案

I recommend using a notch filter at DC and using filtfilt to make it zero phase.

a = [1 , -0.98]; b = [1,-1];

y = filtfilt(b,a,x);

The closer the second value of a gets to -1 the narrower your notch will be.

这篇关于从非周期性离散时间信号中消除未知的DC偏移的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆