Advertisement

数字信号处理Python示例(21)生成幅度调制AM信号

阅读量:

文章目录

  • 前言
  • 一、幅度调制(Amplitude Modulation, AM)
  • 二、生成AM信号的Python代码
  • 三、仿真结果及分析
  • 写在后面的话

前言

本文首先介绍了AM(调幅)信号的调制原理,然后使用Python代码实现了不同调制度的AM调制,绘制了调制信号波形。最后,在仿真结果分析的基础上介绍了欠调幅、过调幅和满调幅的概念。


一、幅度调制(Amplitude Modulation, AM)

幅度调制(Amplitude Modulation, AM)是模拟调制的一种形式。在幅度调制中,载波信号的幅度随信息信号(也称为调制信号或基带信号)的幅度变化而变化,而载波的频率和相位保持不变。

这里有三个关键词:

(1)载波信号 :通常是一个高频正弦波,其频率远高于信息信号的频率。载波信号通常表示为: c(t)=Ac cos(2πfc t)其中,Ac 是载波的幅度,fc 是载波的频率,t是时间变量。

(2)信息信号 :是一个低频信号,通常包含了要传输的数据或信息,可以是一个音频信号、视频信号或其他形式的信号。信息信号通常表示为:m(t)=Am cos(2πfm t+ϕm)其中,Am是信息信号的幅度,fm是信息信号的频率,ϕm是信息信号的初始相位。

(3)幅度调制 :将信息信号的幅度变化映射到载波信号的幅度上。在标准幅度调制中,调制后的信号可以表示为: sAM(t)=(Ac+m(t)) cos(2πfc t),在这个表达式中,m(t) 是信息信号的瞬时幅度,Ac 是未调载波的幅度。调制后的信号包络在Ac -Am和Ac+Am之间变化。

幅度调制的主要优点是它相对简单且易于实现。缺点包括较低的频谱效率和较差的抗噪声性能。尽管如此,AM 仍然在广播领域(尤其是中波和短波广播)以及一些其他应用中得到了广泛的使用。

二、生成AM信号的Python代码

下面给出一个生成AM信号的Python代码示例。

复制代码
    # 导入必要的库
    import numpy as np
    import matplotlib.pyplot as plt
    
    # 参数设置
    duration = 0.01  # 持续时间(秒)
    fs = 80000       # 采样率(赫兹)
    fm = 1000        # 低频正弦波的频率(赫兹)
    fc = 10000       # 高频正弦波的频率(赫兹)
    m = [0.5, 1, 1.5]  # 调制深度,也称调制度
    
    # 生成时间向量
    t = np.linspace(0, duration, int(fs * duration), endpoint=False)
    
    message = np.sin(2 * np.pi * fm * t)  # 调制信号
    carrier = np.sin(2 * np.pi * fc * t)  # 未调载波
    
    # 遍历不同的调制度
    for i in range(len(m)):
    AM_sig = (1 + m[i] * message) * carrier
    plt.subplot(3, 1, i + 1)
    plt.plot(t, AM_sig)
    plt.xlabel('时间(s)')
    plt.ylabel('幅度(v)')
    plt.title('AM调制信号,调制度m = {}'.format(m[i]))
    plt.grid(True)
    
    # 调整子图布局以避免重叠
    plt.tight_layout()
    # 显示所有子图
    plt.show()
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

三、仿真结果及分析

以下是执行代码后画图的结果。
在这里插入图片描述

结果分析:
代码执行生成了三个子图,分别绘制了不同调制深度(m = 0.5, 1, 1.5)的调幅(AM)信号。已调AM信号中,载波的幅度随着信息信号而改变,随着调制深度的增加,调幅信号的幅度变化变得更加显著:
(1)调制指数小于1的AM称为欠调幅。
(2)调制指数大于1的AM称为过调幅。
(3)调制指数等于1的AM称为满调幅(Full Amplitude Modulation)。此时,调幅波的振幅达到最大值,即调幅波的包络与调制信号的形状完全一致。在调幅(AM)中,调幅指数β(代码中为m)等于1时,称为满调幅。这意味着基带信号的幅度完全控制了载波的幅度,调幅波的包络与调制信号的形状一致。在实际应用中,满调幅通常用于确保信号的完整传输和接收。

写在后面的话

这是《数字信号处理python示例》系列文章的第21篇。整个系列将使用python语言示例说明数字信号处理的基本原理与工程应用。给出的所有Python程序将努力做到简单且具有说明性。在数字信号处理的理论方面,将尽量避免数学上的推导与证明,而注重其物理意义阐述和工程应用的介绍。

感谢您的阅读!

全部评论 (0)

还没有任何评论哟~