码迷,mamicode.com
首页 > 其他好文 > 详细

去除信号中的直流分量

时间:2020-05-14 15:52:47      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:代码   一个   去除   plot   产生   pre   通过   code   两种   

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

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

 

 

 

 

去除信号中的直流分量

标签:代码   一个   去除   plot   产生   pre   通过   code   两种   

原文地址:https://www.cnblogs.com/andrew-address/p/12888567.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!