数字信号的调制与传输之二进制数字调制原理与matalab仿真

数字信号的调制与传输之二进制数字调制原理与matalab仿真

数字信号的调制与传输中,二进制数字调制是一种常见的方式,它用来将数字信号转换为模拟信号或数字信号,以便在传输中传递信息。这种调制方式将二进制数据映射到不同的信号状态或符号上。二进制数字调制有多种类型,包括ASK(幅度移键控)、FSK(频率移键控)、PSK(相位移键控)等,下面本文将介绍它们的原理以及matalab仿真。

1. Amplitude Shift Keying (ASK)

ASK是一种二进制数字调制方式,其中数字“1”和“0”分别映射到不同的振幅值。其原理简述如下:

  • 对于二进制“1”:振幅为A1
  • 对于二进制“0”:振幅为A0

例如:

  • 发送信号s(t)可以表示为:s(t) = A1 * cos(2πfct),其中fc是载波频率。
  • 对于二进制“1”,s(t) = A1 * cos(2πfct)
  • 对于二进制“0”,s(t) = A0 * cos(2πfct)

2ASK matalab 仿真代码

% 定义参数
fs = 1000;         % 采样频率
t = 0:1/fs:1-1/fs; % 时间向量
f_carrier = 10;    % 载波频率
bit_stream = [0 1 0 0 1 1 0 1]; % 二进制调制信号

% 生成载波波形
carrier_wave = cos(2 * pi * f_carrier * t);

% 初始化调制信号
modulated_signal = zeros(1, length(bit_stream)*length(t));

% 2ASK调制
for i = 1:length(bit_stream)
    if bit_stream(i) == 1
        modulated_signal((i-1)*length(t)+1:i*length(t)) = carrier_wave;
    end
end

% 生成矩形波形
rect_signal = repelem(bit_stream, fs); % 重复每个比特值

% 绘制波形
subplot(3,1,1);
plot(t, carrier_wave);
title('Carrier Wave');
xlabel('Time');
ylabel('Amplitude');
ylim([-1.5 1.5]);

subplot(3,1,2);
stairs(rect_signal, 'r', 'LineWidth', 2);
title('Binary Signal (Rectangular Wave)');
xlabel('Sample');
ylabel('Amplitude');
ylim([-0.5 1.5]);
xlim([0 length(rect_signal)+1]);

subplot(3,1,3);
plot(0:(length(modulated_signal)-1), modulated_signal);
title('2ASK Modulated Signal');
xlabel('Sample');
ylabel('Amplitude');
ylim([-1.5 1.5]);

% 设置整体图的标题
sgtitle('2ASK Modulation Process');

效果图

ask

2. Frequency Shift Keying (FSK)

FSK是一种二进制数字调制方式,其中数字“1”和“0”分别映射到不同的载波频率。其简述原理如下:

  • 对于二进制“1”:使用频率f1
  • 对于二进制“0”:使用频率f0

例如:

  • 发送信号s(t)可以表示为:s(t) = cos(2πf1t)(对于二进制“1”)和s(t) = cos(2πf0t)(对于二进制“0”)。

2FSK matalab 仿真代码

% 参数设置
fs = 1000;          % 采样频率
t = 0:1/fs:1-1/fs;  % 时间向量
f_carrier1 = 10;    % 第一个载波频率
f_carrier2 = 20;    % 第二个载波频率
bit_stream = [0 1 0 0 1 1 0 1]; % 二进制输入信号

% 生成两个载波波形
carrier_wave1 = cos(2 * pi * f_carrier1 * t);
carrier_wave2 = cos(2 * pi * f_carrier2 * t);

% 初始化调制信号
modulated_signal = zeros(1, length(bit_stream)*length(t));

% 2FSK调制
for i = 1:length(bit_stream)
    if bit_stream(i) == 0
        modulated_signal((i-1)*length(t)+1:i*length(t)) = carrier_wave1;
    else
        modulated_signal((i-1)*length(t)+1:i*length(t)) = carrier_wave2;
    end
end

% 绘制图形
subplot(3,1,1);
plot(t, carrier_wave1);
title('Carrier Wave 1');
xlabel('Time');
ylabel('Amplitude');
ylim([-1.5 1.5]);

subplot(3,1,2);
plot(t, carrier_wave2, 'r');
title('Carrier Wave 2');
xlabel('Time');
ylabel('Amplitude');
ylim([-1.5 1.5]);

subplot(3,1,3);
plot(0:(length(modulated_signal)-1), modulated_signal);
title('2FSK Modulated Signal');
xlabel('Sample');
ylabel('Amplitude');
ylim([-1.5 1.5]);

% 设置整体图的标题
sgtitle('2FSK Modulation Process');

效果图

fsk

3. Phase Shift Keying (PSK)

PSK是一种数字调制方式,其中数字“1”和“0”分别映射到不同的载波相位。其简述原理如下:

  • 对于二进制“1”:使用相位θ1
  • 对于二进制“0”:使用相位θ0

例如:

  • 发送信号s(t)可以表示为:s(t) = cos(2πfct + θ1)(对于二进制“1”)和s(t) = cos(2πfct + θ0)(对于二进制“0”)。

2PSK matalab 仿真代码

% 参数设置
fs = 1000;          % 采样频率
t = 0:1/fs:1-1/fs;  % 时间向量
f_carrier = 10;     % 载波频率
bit_stream = [0 1 0 0 1 1 0 1]; % 二进制输入信号

% 生成载波波形
carrier_wave = cos(2 * pi * f_carrier * t);

% 生成矩形波形的二进制输入信号
binary_signal = repelem(bit_stream, length(t));

% 初始化调制信号
modulated_signal = zeros(1, length(bit_stream)*length(t));

% 2PSK调制
for i = 1:length(bit_stream)
    if bit_stream(i) == 0
        modulated_signal((i-1)*length(t)+1:i*length(t)) = carrier_wave;
    else
        modulated_signal((i-1)*length(t)+1:i*length(t)) = -carrier_wave;
    end
end

% 绘制图形
subplot(3,1,1);
plot(t, carrier_wave);
title('Carrier Wave');
xlabel('Time');
ylabel('Amplitude');
ylim([-1.5 1.5]);

subplot(3,1,2);
stairs(0:(length(binary_signal)-1), binary_signal);
title('Binary Input Signal (Rectangular Wave)');
xlabel('Sample');
ylabel('Amplitude');
ylim([-0.5 1.5]);

subplot(3,1,3);
plot(0:(length(modulated_signal)-1), modulated_signal);
title('2PSK Modulated Signal');
xlabel('Sample');
ylabel('Amplitude');
ylim([-1.5 1.5]);

% 设置整体图的标题
sgtitle('2PSK Modulation Process with Binary Input Signal (Rectangular Wave)');

效果图

fsk


写在最后
以上是个人的课程作业记录,欢迎大家指正。😊

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写的什么石山代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值