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]);

原理分析

  1. 调制信号与载波信号生成: 程序首先定义了调制信号m(t) = cos(2π×100t)和载波信号c(t) = cos(2π×1000t),并使用MATLAB的向量运算生成相应的信号序列。
  2. SSB信号生成: 上边带信号usb(t)通过将调制信号与载波信号相乘得到,下边带信号lsb(t)则通过将调制信号与负载波信号相乘得到。
  3. 相干解调: 相干解调是利用与发射端相同的载波信号对接收到的SSB信号进行解调。程序使用usb .* (2*c)lsb .* (2*c)分别对上边带和下边带信号进行解调,其中乘以2是为了恢复信号的幅度。
  4. 滤波: 解调后的信号中包含了原信号和一些噪声,需要进行滤波处理。程序使用butter函数生成一个6阶低通滤波器,截止频率为100Hz,然后使用filter函数对解调信号进行滤波,从而得到最终的解调信号。
  5. 绘图: 程序使用subplot函数将不同信号的波形绘制在同一个画布上,方便比较。

总结

本文通过一个简单的MATLAB程序实现了SSB信号相干解调的仿真,并详细讲解了其原理。读者可以通过运行该程序,观察不同信号的波形,加深对SSB信号相干解调的理解。


原文地址: https://www.cveoy.top/t/topic/ncIL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录