修改信号产生函数 mstg,给每路调幅信号加入载波成分,产生调幅(AM) 信号,重复本实验,观察 AM 信号与抑制载波调幅信号的时域波形及其频谱的 差别。
时间: 2024-03-25 09:37:22 浏览: 108
好的,首先让我们来看一下原始的信号产生函数 mstg。该函数可以生成多路调幅信号,但是没有加入载波成分。以下是该函数的代码:
```python
def mstg(fs,fm,fc,Ac,Am,ts):
t = np.arange(0, ts, 1/fs)
m = np.zeros(len(t))
for i in range(len(fm)):
m += Am[i]*np.cos(2*np.pi*fm[i]*t)
c = Ac*np.cos(2*np.pi*fc*t)
s = (1+m/Ac)*c
return t,s
```
我们可以看到,该函数生成的调幅信号为 s,是由载波信号 c 和调制信号 m 组合而成的。其中,调制信号 m 由多个不同频率的正弦波叠加而成,而载波信号 c 是一个单频正弦波。
为了产生 AM 信号,我们需要将载波信号 c 和调制信号 m 混合在一起,并且在混合前将载波信号 c 加入到调制信号 m 中。这样产生的信号就是调幅信号,并且带有载波成分。以下是修改后的信号产生函数 amstg:
```python
def amstg(fs,fm,fc,Ac,Am,ts):
t = np.arange(0, ts, 1/fs)
m = np.zeros(len(t))
for i in range(len(fm)):
m += Am[i]*np.cos(2*np.pi*fm[i]*t)
m = m + Ac*np.cos(2*np.pi*fc*t) # 加入载波成分
s = (1+m/Ac)*Ac*np.cos(2*np.pi*fc*t)
return t,s
```
在这个新的函数中,我们先生成了调制信号 m,然后将载波信号 c 加入到 m 中。最后,我们使用新的调制信号来生成调幅信号 s,带有载波成分。
现在,我们可以使用这个新的信号产生函数来观察 AM 信号和抑制载波调幅信号的时域波形及其频谱的差别了。
阅读全文