MATLAB无载波幅度和相位调制代码
时间: 2024-01-27 21:04:18 浏览: 29
以下是MATLAB语言实现无载波幅度调制和相位调制的代码示例:
无载波幅度调制:
```matlab
% 生成数字信号
data = [1, 0, 1, 1, 0, 1, 0];
% 定义载波频率和抽样频率
fc = 10; % 载波频率
fs = 100; % 抽样频率
% 计算每个数字信号持续的时间
T = 1 / fc;
% 生成时间序列
t = 0: 1 / fs: length(data) * T - 1 / fs;
% 生成无载波幅度调制信号
signal = zeros(size(t));
for i = 1: length(data)
if data(i) == 1
signal((i - 1) * fs / fc + 1: i * fs / fc) = 1;
end
end
% 绘制信号波形图
plot(t, signal);
xlim([0, length(data) * T]);
ylim([-1.2, 1.2]);
xlabel('Time (s)');
ylabel('Amplitude');
title('Amplitude Shift Keying (ASK) Signal');
```
相位调制:
```matlab
% 生成数字信号
data = [1, 0, 1, 1, 0, 1, 0];
% 定义载波频率和抽样频率
fc = 10; % 载波频率
fs = 100; % 抽样频率
% 计算每个数字信号持续的时间
T = 1 / fc;
% 生成时间序列
t = 0: 1 / fs: length(data) * T - 1 / fs;
% 生成相位调制信号
signal = zeros(size(t));
for i = 1: length(data)
if data(i) == 1
signal((i - 1) * fs / fc + 1: i * fs / fc) = pi;
end
end
% 绘制信号波形图
plot(t, signal);
xlim([0, length(data) * T]);
ylim([-1.2 * pi, 1.2 * pi]);
xlabel('Time (s)');
ylabel('Phase (rad)');
title('Phase Shift Keying (PSK) Signal');
```
以上代码示例中,均以数字信号`[1, 0, 1, 1, 0, 1, 0]`为例,生成了对应的无载波幅度调制和相位调制信号,并绘制了信号波形图。其中无载波幅度调制的信号是一个矩形波,它的幅度为1或0,相位调制的信号是一个阶跃函数,它的相位为pi或0。