vol*_*ing 12 matlab signal-processing
是否有一些过程可以确定/消除非周期性离散时间信号的未知DC偏移?
所讨论的信号具有25Hz的采样率并且具有0.25和3Hz之间的感兴趣的谐波.
我尝试使用高通滤波器混合结果,首先我使用了10阶guassian和Fc = 0Hz,这确实很好地消除了偏移,但它严重衰减了AC,尽管它确实保持了信号形状完整,接下来我使用了168阶的均衡器具有0Hz的阻带和0.25Hz的通带,相移太严重,信号形状太失真,如果通带降至0.1Hz,失真可能会降低,但这只会进一步增加相移,我需要保持在最低限度.
在应用x - LPF(x)之前和之后,正如Paul R所建议的那样

Pho*_*non 10
我建议在DC处使用陷波滤波器并使用filtfilt它使其为零相位.
a = [1 , -0.98]; b = [1,-1];
y = filtfilt(b,a,x);
Run Code Online (Sandbox Code Playgroud)
第二个值越接近a-1,你的缺口越窄.
DC偏移意味着向信号添加了一些常数值(该名称源自向模拟AC信号添加DC电压).如果直流分量确实是恒定的(并且没有变化得非常慢),那么您不必设计一些高阶(并且可能不稳定)的高通滤波器 - 您可以从信号中减去信号的平均值 - 当然,这也是一个高通滤波器(平均值是一种低通滤波器,'1减去平均值'是高通滤波器)---但是非常简单.
另一方面,如果您有理由相信直流分量不是真正的直流分量,而是具有极低频率的交流,那么您最好平均信号段而不是整个信号,这与使用脉冲响应低于信号长度的低通滤波器相同.在这种情况下,您必须对"DC"组件做出一些假设.