去除信号中的直流分量

一、去除信号中的直流分量的两种方法

  1. 信号中的每个数据减去平均值
  2. 通过对数据做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)的直流成分

 

 

 

 

上一篇:题解-CF300DPaintingSquare


下一篇:FFT在matlab中的使用方法