一个简单的波形包络提取算法最近做项目要提取一个声音信号的包络波形,所以花了点时间研究各种包络提取的算法。所谓包络检测又叫幅度解调,在许多领域都有重要的应用。如果载波信号是确定的,那么通常可以采用同步解调的方式,这种方式的信噪比最好,对信号中混入的噪声的抑制能力最强。所谓同步解调是通讯领域通常的叫法。在信号检测领域,这种方式通常称为“相敏捡波”,锁相放大器(Lock-inAmplifier)就是这种方式最典型的例子。如果载波比较乱,就像我现在的应用场景,要提取噪声的幅度随时间变化的规律,那么包络检波法会更适宜。我这里的代码就是采用的包络检波法。包络检波法的基本原理可以看下面这个电路图,这个是最基本的半波包络检波。当Ui(t)Uo(t-)时Uo(t)=Ui(t)当Ui(t)Uo(t-)时RCdUo/dt=Uo化成差分方程为:把这个过程用程序来实现就有了下面的代码。/* 包络检波,模拟了硬件半波检波的过程* rc=0时初始化*/doubleenv_1(doublex,doublerct)old_y=0.0;