不论是FFT还是DCT或者其它变换中,都存在将直流分量置零的方法。比如将信号的一阶导数进行FFT变换后置零直流分量。
在模拟部分的电路中,不少元件(如放大器)输出会有直流漂移(即输出应该为零时,实际上是一个直流电压)。这个漂移会对下一级的放大等功能发生影响。所以通常在各级之间采用交流耦合(最简单的就是用一个电容隔开)。这样,信号的直流部分也就不能通过。所以在接收端,所有的直流分量都来自于系统的直流漂移,需要除掉。
另一种情况是模拟电路之间需要阻抗匹配时(如音频放大器和扬声器之间),最简单的方法是用变压器耦合。这时直流也不能通过。 信号处理中的另一种情况是需要提取寄生在很大直流信号上的一个很小的交变信号。这时候也需要去除直流信号。最简便的办法就是傅立叶变换后把直流分量置零。
如果使用直流分量,
1. 和直流偏置混在一起
2. 耗电
3. 浪费DA/AD的动态范围
经常会听说信号做频谱变换后要做去除直流分量的处理,我想请教其理论和具体实现。请大家不吝赐教。
我这里有一个例子,在一正弦信号和一线性信号中加入直流成分。做频谱变换,得到的结果从图上看也确实存在直流成分的干扰,确实需要去除。但我这里是事先已知直流成分。更一般的情况是,对于信号,我们根本不确定是否有直流成分,或者不知道直流成分为多少,对之进行采集,做频谱变换。那么,我们该怎样对频谱做处理,才能消除其中由被采集信号的直流成分导致的误差呢?
我的程序是:
clear,clc
close all
x = 0:1/1024:1-1/1024;
y = sin(2*pi*10*x);
z = f