去除信号中的直流分量

Posted andrew-address

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了去除信号中的直流分量相关的知识,希望对你有一定的参考价值。

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

  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)的直流成分

 

 

 

 

以上是关于去除信号中的直流分量的主要内容,如果未能解决你的问题,请参考以下文章

信号与系统 1.5 信号的分解

信号与系统 1.5 信号的分解

信号与系统 2023(春季) 作业参考答案 - 第二次作业

基带信号编码方式

使用 FFT 的通道声码器 - 如何处理直流分量和奈奎斯特频率?

matlab 模拟吉布斯效应