您的当前位置:首页正文

matlab什么函数可以去除信号中混杂的直流分量和线性分量,去除信号中的直流分量...

2024-01-12 来源:个人技术集锦

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

信号中的每个数据减去平均值

通过对数据做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)的直流成分

标签:FFT,A1,信号,去除,直流,分量

来源: https://www.cnblogs.com/andrew-address/p/12888567.html

因篇幅问题不能全部显示,请点此查看更多更全内容