我将尽力提出具体问题:
我正在使用Python来查看一些相对基本的DSP,并且我想要实现自动增益控制。除非我弄错了,这个过程简化为:
我不太关心输入/输出信号之间的相位差异,而输入信号是由缓慢变化的波形调制的1MHz正弦波(如上所示),我以40MHz的采样率进行采样。我的问题如下:
(i) 我找不到有关AGC的任何良好描述,欢迎提供建议。
[我有一本关于通用DSP的很好的书,但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()