MATLAB/Simulink AM系统仿真实战:从信号输入到参数调优全流程解析

1次阅读
没有评论

共计 1219 个字符,预计需要花费 4 分钟才能阅读完成。

image.webp

背景介绍

AM(Amplitude Modulation)调幅是通信系统中基础的模拟调制技术,广泛应用于广播、航空通信等领域。通过 MATLAB/Simulink 仿真可以直观观察信号调制 / 解调过程,验证理论计算结果,是通信工程学习的必备技能。

MATLAB/Simulink AM 系统仿真实战:从信号输入到参数调优全流程解析

为什么选择 MATLAB/Simulink?

  • 可视化建模:Simulink 的图形化界面让系统搭建像搭积木一样简单
  • 算法验证快:无需硬件即可验证 AM 系统各环节信号特征
  • 参数灵活调整:通过滑块实时观察载波频率、调制深度等参数的影响
  • 无缝协作:MATLAB 脚本与 Simulink 模型可相互调用

核心实现步骤

1. 输入信号设置

在 MATLAB 命令窗口输入以下代码生成测试信号:

% 基础参数
fs = 10000;         % 采样率 10kHz
t = 0:1/fs:1-1/fs;  % 1 秒时间向量

% 生成 1kHz 正弦信号作为调制信号
fm = 1000;          
msg_signal = sin(2*pi*fm*t);

% 生成 10kHz 载波信号
fc = 10000;         
carrier = cos(2*pi*fc*t);

2. Simulink 模型搭建

  1. 新建 Blank Model
  2. 添加以下模块:
  3. Sine Wave(生成载波)
  4. Sine Wave1(生成调制信号)
  5. Product(实现乘法调制)
  6. Scope(显示波形)
  7. 按图示连接各模块

3. 关键参数配置

  • 载波频率:建议设置为调制信号频率的 5 -10 倍
  • 采样时间:遵循奈奎斯特定理,至少是最高频率的 2 倍
  • 仿真时长:至少包含调制信号的 2 - 3 个完整周期

完整代码示例

%% AM 调制仿真完整示例
close all; clear; clc;

% 信号参数设置
fs = 20000;             % 采样频率
t = 0:1/fs:0.01-1/fs;   % 10ms 时间序列

% 调制信号(1kHz 正弦波)fm = 1000;              
Am = 0.8;               % 调制深度 80%
msg = Am*sin(2*pi*fm*t);

% 载波信号(10kHz)fc = 10000;             
carrier = cos(2*pi*fc*t);

% AM 调制
AM_signal = (1 + msg).*carrier;

% 绘制时域波形
figure;
subplot(3,1,1); plot(t,msg); title('调制信号');
subplot(3,1,2); plot(t,carrier); title('载波信号');
subplot(3,1,3); plot(t,AM_signal); title('AM 调制信号');

典型仿真结果分析

通过调整调制深度 Am 观察波形变化:

  • Am=0.5 时:包络线清晰,无过调制
  • Am=1.0 时:出现瞬时幅度为零的临界状态
  • Am=1.2 时:发生过调制,包络失真

新手常见问题

  1. 波形显示不全:检查 Scope 的 Time range 设置
  2. 出现高频毛刺:确认采样率是否足够高
  3. 解调失败:检查本地载波是否与发射端同频同相

进阶优化方向

  • 添加信道噪声(AWGN 模块)
  • 实现相干解调 / 包络检波
  • 加入自动增益控制 (AGC) 电路

思考题

当调制信号改为方波时,AM 信号的频谱会发生什么变化?如何通过仿真验证你的猜想?

正文完
 0
评论(没有评论)