设计2ASK相干解调程序的matlab实现代码
时间: 2023-08-01 17:07:02 浏览: 152
以下是一个简单的 MATLAB 实现程序:
```matlab
% 采样率
fs = 10000;
% 信号频率
f = 1000;
% 信号幅度
A = 1;
% 信号持续时间
t = 1;
% 信号时间轴
time = linspace(0, t, t*fs);
% 基带信号
baseband_signal = A * sin(2*pi*f*time);
% 高频信号
carrier_signal = sin(2*pi*10000*time);
% 2ASK调制信号
ASK_signal = (1 + baseband_signal) .* carrier_signal;
% 理论解调信号
demod_signal = baseband_signal;
% 相干解调程序
local_oscillator = carrier_signal;
% 相乘
mixer_output = ASK_signal .* local_oscillator;
% 滤波
[b,a] = butter(5, (2*f)/fs, 'low');
filtered_output = filter(b, a, mixer_output);
% 包络检测
envelope = abs(hilbert(filtered_output));
% 信号时间轴
demod_time = linspace(0, t, length(envelope));
% 绘制原始基带信号和解调信号
subplot(2,1,1);
plot(time, baseband_signal, 'b', time, ASK_signal, 'r');
title('原始基带信号和2ASK调制信号');
legend('基带信号', '2ASK信号');
subplot(2,1,2);
plot(demod_time, demod_signal, 'b', demod_time, envelope, 'r');
title('相干解调后的信号和理论解调信号');
legend('相干解调信号', '理论解调信号');
```
这个程序生成一个1000 Hz 的基带信号,使用10000 Hz 的载波信号进行 2ASK 调制。然后通过相干解调器,解调得到原始基带信号。程序绘制了原始基带信号、2ASK 调制信号、相干解调后的信号和理论解调信号的图像。
阅读全文