SSB信号相干法解调MATLAB仿真 - 代码示例与原理分析
SSB信号相干法解调MATLAB仿真 - 代码示例与原理分析
本文将使用MATLAB编写一个SSB信号相干解调的仿真程序,并详细介绍其原理。
程序代码
% 设置参数
fc = 1000; % 载波的中心频率
fs = 10000; % 采样频率
t = 0 : 1/fs : 1; % 时间序列
m = cos(2*pi*100*t); % 调制信号
% 载波信号
c = cos(2*pi*fc*t);
% SSB信号
usb = m .* c; % 上边带信号
lsb = m .* (-c); % 下边带信号
% 相干解调
usb_demod = usb .* (2*c); % 上边带解调
lsb_demod = lsb .* (2*c); % 下边带解调
% 滤波
[b,a] = butter(6,100/5000); % 6阶低通滤波器,截止频率为100Hz
usb_filtered = filter(b,a,usb_demod); % 上边带滤波
lsb_filtered = filter(b,a,lsb_demod); % 下边带滤波
% 绘图
subplot(3,2,1);
plot(t,m);
title('调制信号');
xlabel('时间(秒)');
ylabel('幅度');
ylim([-1.2 1.2]);
subplot(3,2,3);
plot(t,c);
title('载波信号');
xlabel('时间(秒)');
ylabel('幅度');
ylim([-1.2 1.2]);
subplot(3,2,2);
plot(t,usb);
title('上边带信号');
xlabel('时间(秒)');
ylabel('幅度');
ylim([-1.2 1.2]);
subplot(3,2,4);
plot(t,lsb);
title('下边带信号');
xlabel('时间(秒)');
ylabel('幅度');
ylim([-1.2 1.2]);
subplot(3,2,5);
plot(t,usb_demod);
title('上边带解调信号');
xlabel('时间(秒)');
ylabel('幅度');
ylim([-1.2 1.2]);
subplot(3,2,6);
plot(t,lsb_demod);
title('下边带解调信号');
xlabel('时间(秒)');
ylabel('幅度');
ylim([-1.2 1.2]);
原理分析
- 调制信号与载波信号生成: 程序首先定义了调制信号
m(t) = cos(2π×100t)和载波信号c(t) = cos(2π×1000t),并使用MATLAB的向量运算生成相应的信号序列。 - SSB信号生成: 上边带信号
usb(t)通过将调制信号与载波信号相乘得到,下边带信号lsb(t)则通过将调制信号与负载波信号相乘得到。 - 相干解调: 相干解调是利用与发射端相同的载波信号对接收到的SSB信号进行解调。程序使用
usb .* (2*c)和lsb .* (2*c)分别对上边带和下边带信号进行解调,其中乘以2是为了恢复信号的幅度。 - 滤波: 解调后的信号中包含了原信号和一些噪声,需要进行滤波处理。程序使用
butter函数生成一个6阶低通滤波器,截止频率为100Hz,然后使用filter函数对解调信号进行滤波,从而得到最终的解调信号。 - 绘图: 程序使用
subplot函数将不同信号的波形绘制在同一个画布上,方便比较。
总结
本文通过一个简单的MATLAB程序实现了SSB信号相干解调的仿真,并详细讲解了其原理。读者可以通过运行该程序,观察不同信号的波形,加深对SSB信号相干解调的理解。
原文地址: https://www.cveoy.top/t/topic/ncIL 著作权归作者所有。请勿转载和采集!