去除信号中的直流分量
一、去除信号中的直流分量的两种方法
- 信号中的每个数据减去平均值
- 通过对数据做FFT变换,令FFT变换后的Y = FFT(X),Y(1)=0即可去除信号中的直流分量
二、去除信号中的直流分量的代码
%%%第二种方法 x = rand(128, 1); L=128;%信号长度 F=0:127; f = fft(x); A = abs(f); A = A/(L/2); subplot(1,2,1) plot(F(1:L/2),A(1:L/2));%原数据的FFT f(1) = 0;%令f(1)置0 f1 =f ; x_ac = real(ifft(f1)); A1 = abs(f1); A1 = A1/(L/2); subplot(1,2,2) plot(F(1:L/2),A1(1:L/2));%去除直流分量后的FFT %%%第一种方法 x2 = x-mean(x);
三、原因:
一个信号f(x)可以分解为无数信号,即:
可以看到,会有cos(0.x) = 1的直流成分,其中的ω=0,即频率为0的频谱
而,我们所做的工作,所有数据减去平均值,最后会令整个数据的平均值为0,这个数据就成为了奇函数产生的结果,这个时候对其进行分解,只会存在
这个时候就不存在cos(0.x)的直流成分