首页 > 编程语言 >matlab练习程序(包络线提取)

matlab练习程序(包络线提取)

时间:2022-10-23 13:55:18浏览次数:54  
标签:plot 包络线 变换 练习 包络 matlab 信号

提取信号包络需要用到希尔伯特变换。

变换定义如下:

其中:

就是原始信号和1/(pi*t)信号做卷积。

因此可以将原始信号和h(t)傅里叶变换到频域做乘法。

乘完再逆变换回来后取信号绝对值即可得到原始信号包络。

matlab代码如下:

clear all;close all;clc;

x = -5:0.01:5;
y = sin(30*x).*cos(x);

plot(x,y,'g');
envelope1 = hilbert(y);         %实部是y自身,虚部是hilbert变换值

hold on;
plot(x,abs(envelope1),'ro');    %取幅值得到包络

%希尔伯特变换
n = length(x);
H = ((1:n)<=(n/2))*2;           %f(t) = 1/(pi*t) <-----> F(w)= -j*sgn(w)
envelope2 = ifft(fft(y).*H); 
plot(x,abs(envelope2),'b.');

结果如下:

标签:plot,包络线,变换,练习,包络,matlab,信号
From: https://www.cnblogs.com/tiandsp/p/16745418.html

相关文章