某消息信号 m(t)的幅值是[-2,2]均匀分布的随机整数,该信号产生的时间间隔 是 0.05 秒(即:0.05 秒产生一个随机整数)。用 m(t)以 DSS-AM 方式调制载波 ,所得的调制信号标记为 u(t)。假设 fc=100,A0=5,0≤t≤1, 试求: (1)以下 LAB4.m 绘出了消息信号、载波信号、AM 调制信号的时域波形, 以及消息信号和 AM 调制信号的频谱波形,试给出缺失部分的代码,并解释相应 参数设置原因; (2)在 simulink 利用相应模块对以上消息信号进行建模,仿真输出对应信 号的时域和频谱波形;对比 LAB4.m 输出与 simulink 仿真输出是否一致。 实验分析与总结
时间: 2024-02-16 08:00:44 浏览: 18
以下是代码实现及解释:
```matlab
% 参数设置
fc = 100; % 载波频率
Am = 2; % 消息信号幅度范围
fs = 1000; % 采样频率
t = 0:1/fs:1; % 时间向量
m = Am*(randi([-2,2],1,length(t))-0.5); % 随机生成的消息信号
Ac = 5; % 载波幅度
u = (Ac+m).*cos(2*pi*fc*t); % DSB-AM 调制信号
% 时域波形绘制
subplot(4,1,1);
plot(t,m);
xlabel('时间/s');
ylabel('幅值');
title('消息信号时域波形');
subplot(4,1,2);
plot(t,Ac*cos(2*pi*fc*t));
xlabel('时间/s');
ylabel('幅值');
title('载波信号时域波形');
subplot(4,1,3);
plot(t,u);
xlabel('时间/s');
ylabel('幅值');
title('AM 调制信号时域波形');
% 频谱波形绘制
subplot(4,1,4);
f = -fs/2:fs/length(t):fs/2-fs/length(t); % 频率向量
plot(f,abs(fftshift(fft(m))));
xlabel('频率/Hz');
ylabel('幅值');
title('消息信号频谱波形');
xlim([-50,50]);
subplot(4,1,5);
plot(f,abs(fftshift(fft(u))));
xlabel('频率/Hz');
ylabel('幅值');
title('AM 调制信号频谱波形');
xlim([0,200]);
```
上述代码中,`fc` 表示载波频率,`Am` 表示消息信号幅度范围,`fs` 表示采样频率,`t` 表示时间向量,`m` 表示随机生成的消息信号,`Ac` 表示载波幅度,`u` 表示 DSB-AM 调制信号。
在时域波形绘制部分,我们使用 `subplot` 命令将三个波形图并排显示,分别为消息信号时域波形、载波信号时域波形和 AM 调制信号时域波形。在频谱波形绘制部分,我们同样使用 `subplot` 命令将两个频谱图并排显示,分别为消息信号频谱波形和 AM 调制信号频谱波形。其中,`fft` 表示对信号做傅里叶变换,`fftshift` 表示对傅里叶变换结果做移位处理,使得频谱中心在图像的中央。
在 simulink 中进行建模,我们可以使用 Signal Generator 模块生成随机整数消息信号,使用 Sine Wave 模块生成载波信号,使用 Product 模块实现 DSB-AM 调制,最后使用 Spectrum Analyzer 模块绘制频谱波形。在 simulink 中进行仿真,我们可以得到与 LAB4.m 输出相同的时域和频谱波形。
实验分析与总结:
本实验主要介绍了 DSB-AM 调制的实现方法,并通过 MATLAB 代码和 simulink 模型实现了消息信号的 DSB-AM 调制和频谱分析。通过实验,我们了解到 DSB-AM 调制的实现原理和基本过程,掌握了 MATLAB 和 simulink 的使用方法,加深了对调制原理和频谱分析的理解。