从非周期性离散时间信号中消除未知的DC偏移 [英] Remove unknown DC Offset from a non-periodic discrete time signal
问题描述
是否有一些过程可以确定/消除非周期性离散时间信号中的未知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屋!