DSB的数字正交解调
1.DSB调制过程
DSB信号是一种双边带调幅调制信号,又叫双边带调幅,通过改变载波的振幅来实现基带数据的传输。
其函数表达式如下:
其中:
m(t)
:表示基带信号。
![image-20241203211922799](https://s2.loli.net/2024/12/03/jzPcKBVAnqXwUhd.png)
2.DSB的数字正交解调
以下介绍的正交解调法将消除频差或者相差带来的误差,增加其解码正确率。
![image-20241203213448984](https://s2.loli.net/2024/12/03/8TZNxSYh1EVOeWf.png)
通过正交的方式即可解调出基带信号,其数学推导如下:
假设基带信号为
I路:
根据三角函数公式:
同理:Q路:
对于解调系统来说:当
这时,就可以完美还原基带信号,但是此方法严格要求发射载波与接收载波频率相同,而且相位保持一致,相位误差与载波频率误差将严格限制解调系统的精确度,所以一下将使用其他解调方法来规避,相位差与频率差带来的解调误差。
为了计算方便假设:
则:
根据三角函数公式:
注:
以下将是重要的地方:
向量旋转,将一个向量
这样就消除了相位差和频率差带来的误差,
3.MATLAB解调
以下只展示解调过程的仿真,不展示下变频,滤波等操作:
close all;
%% 系数
figure
time = 5;
fs = 100E6; % 采样率 (Hz)
len = 1E3; % 信号序列点数
f_base = 3E6;%基带信号频率
f_carr_1 = 40E6;%调制载波频率
f_carr_2 = 42E6;%解调载波频率
fi = 0.1;%解调载波初始相位
t = 0:1/fs:(len-1)/fs; % 时间向量
mt = cos(2*pi*f_base*t);
I = mt.*cos(2*pi*(f_carr_1-f_carr_2)*t-fi)/2;
Q = -mt.*sin(2*pi*(f_carr_1-f_carr_2)*t-fi)/2;
%% 向量旋转
theta = atan2(Q./(-mt),I./(mt));
It = I.*cos(theta) - Q.*sin(theta);
Qt = Q.*cos(theta) + I.*sin(theta);
subplot(time,1,1);
plot(mt);
title('基带信号');
subplot(time,1,2);
plot(I);
title('I路');
subplot(time,1,3);
plot(Q);
title('Q路');
subplot(time,1,4);
plot(It);
title('解调信号');
subplot(time,1,5);
plot(theta);
title('相位差');
结果:
![image-20241203221714154](https://s2.loli.net/2024/12/03/UrRnFXPD9kBV1CG.png)
5.FPGA解调
有空补齐FPGA解调部分代码。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 本地部署 DeepSeek:小白也能轻松搞定!
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 如何基于DeepSeek开展AI项目