Python DSP,自动增益控制(AGC)

Python DSP,自动增益控制(AGC),python,filter,signal-processing,Python,Filter,Signal Processing,我将尝试在这里提出具体问题:- 我正在使用python来研究一些相对基本的DSP,我想实现自动增益控制。除非我弄错了,否则采用(简化)形式: 我不太关心I/o信号之间的相移,输入信号是由缓慢变化的波(如上所示)调制的1MHz正弦波,我在40MHz下采样。我的问题是: (i)我找不到任何关于AGC的适当描述,欢迎对此提出建议。 [我有一本关于AGC的好书,但AGC只是顺便提一下] 我知道低信号然后高增益的基本思想,反之亦然;我也很欣赏产生“快速攻击”/“缓慢衰减”响应的滤波器,但我不确定DSP中

我将尝试在这里提出具体问题:-

我正在使用python来研究一些相对基本的DSP,我想实现自动增益控制。除非我弄错了,否则采用(简化)形式:

我不太关心I/o信号之间的相移,输入信号是由缓慢变化的波(如上所示)调制的1MHz正弦波,我在40MHz下采样。我的问题是:

(i)我找不到任何关于AGC的适当描述,欢迎对此提出建议。

[我有一本关于AGC的好书,但AGC只是顺便提一下]

我知道低信号然后高增益的基本思想,反之亦然;我也很欣赏产生“快速攻击”/“缓慢衰减”响应的滤波器,但我不确定DSP中AGC算法的细节

第二:

(ii)如何在python中实现这一点?我的起始代码如下:

import numpy as np
import pylab as plt

# 1000 samples of a 1MHz signal, sampled at 40MHz
sample_rate = 40e6
fc          = 1e6
fm          = 1e5
nsamples    = 1000

# for now assume an AM type signal  
t = np.arange(nsamples) / sample_rate
signal = np.sin(2*np.pi*fc*t) * ( (1 + np.sin(2*np.pi*fm*t))/2 )

plt.plot(t, signal)
plt.grid()
plt.xlabel('time (0 to 25us)')
plt.ylabel('ip signal amplitude')
plt.show()

这些东西通常在Matlab中建模,其语言与Python非常相似。在谷歌上查看。你可以开始了。 这是《佩雷斯,自动增益控制》一书中的免费章节