zoukankan      html  css  js  c++  java
  • 去除信号中的直流分量

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

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

     

  • 相关阅读:
    HTML常用标签
    消息机制JMS
    一个Socket连接管理池(心跳机制)
    Java调用其他程序时waitFor()阻塞
    JDBC连接数据库
    mysql入门
    WebService到底是什么
    Netty详解
    Mongodb集群搭建
    JavaScript入门
  • 原文地址:https://www.cnblogs.com/andrew-address/p/12888567.html
Copyright © 2011-2022 走看看