通信原理2ASK调制解调MATLAB画出相关的波形
时间: 2023-07-01 16:27:31 浏览: 136
ask_2ask调制解调matlab_simulink的ASK_simlink_asksimulink_
5星 · 资源好评率100%
以下是一个完整的2ASK调制解调的MATLAB代码,包括了信号生成、2ASK调制、2ASK解调以及绘制波形等步骤。你可以将代码复制到MATLAB中运行,得到相应的波形图像。
```
% 2ASK调制解调的MATLAB代码示例
clear all; close all;
%% 生成数字信号
N = 100; % 信号长度
signal = randi([0 1], [1, N]); % 生成二进制信号
%% 2ASK调制
fc = 10^6; % 载波频率
fs = 10*fc; % 采样频率
t = 0:1/fs:(N-1)/fs; % 时间序列
Ac = 1; % 载波幅度
mod_signal = Ac*pammod(signal, 2, 0, 'gray') .* cos(2*pi*fc*t); % 2ASK调制
%% 2ASK解调
envelope_signal = abs(hilbert(mod_signal)); % 提取包络
demod_signal = envelope_signal .* cos(2*pi*fc*t); % 2ASK解调
demod_signal(demod_signal < 0) = 0; % 二值化
demod_signal = pamdemod(demod_signal/Ac, 2, 0, 'gray'); % 解码
%% 绘制波形图像
figure(1);
subplot(3,1,1);
plot(t, signal, 'LineWidth', 2);
axis([0 N/fs -0.5 1.5]);
xlabel('时间(s)');
ylabel('数字信号');
title('原始数字信号');
subplot(3,1,2);
plot(t, mod_signal, 'LineWidth', 2);
axis([0 N/fs -1.5 1.5]);
xlabel('时间(s)');
ylabel('模拟信号');
title('2ASK调制信号');
subplot(3,1,3);
plot(t, demod_signal, 'LineWidth', 2);
axis([0 N/fs -0.5 1.5]);
xlabel('时间(s)');
ylabel('数字信号');
title('2ASK解调信号');
```
运行上述代码后,将会得到一个包含三个子图的波形图像。其中,第一个子图显示了原始的数字信号波形,第二个子图显示了经过2ASK调制后的模拟信号波形,第三个子图显示了经过2ASK解调后还原的数字信号波形。你可以将代码中的参数进行调整,观察不同参数下的波形变化。
阅读全文