DSB的数字正交解调
1.DSB调制过程
DSB信号是一种双边带调幅调制信号,又叫双边带调幅,通过改变载波的振幅来实现基带数据的传输。
其函数表达式如下:
\]
其中:
m(t):表示基带信号。
\(cos(2\pi ft + \varphi )\):表示载波信号。

2.DSB的数字正交解调
以下介绍的正交解调法将消除频差或者相差带来的误差,增加其解码正确率。

通过正交的方式即可解调出基带信号,其数学推导如下:
假设基带信号为\(m(t)\),调制的载波频率为\(f_1\),解调的载波频率为\(f_2\),相位为\(\varphi\),LPF为低通滤波器,则:
I路:
\]
根据三角函数公式:
I(t) &= LPF(m(t)*cos(2\pi f_1t) *cos(2\pi f_2t + \varphi))\\
&= LPF(\frac{1}{2}m(t)*[cos(2\pi (f_1 + f_2)t+\varphi) + cos(2\pi (f_1 - f_2 )+ \varphi)]) \\
&= \frac{1}{2}m(t)*cos(2\pi (f_1 - f_2 )+ \varphi)) \\
\end{split}
\]
同理:Q路:
Q(t) &= LPF(m(t)*cos(2\pi f_1t) *sin(2\pi f_2t + \varphi))\\
&= LPF(\frac{1}{2}m(t)*[cos(2\pi (f_1 + f_2)t+\varphi) - sin(2\pi (f_1 - f_2 )+ \varphi)]) \\
&= -\frac{1}{2}m(t)*sin(2\pi (f_1 - f_2 )+ \varphi)) \\
\end{split}
\]
对于解调系统来说:当\(f_1=f_2,\varphi=0\)时,
& I(t) = \frac{1}{2}m(t) \\
& Q(t) = 0 \\
\end{split}
\]
这时,就可以完美还原基带信号,但是此方法严格要求发射载波与接收载波频率相同,而且相位保持一致,相位误差与载波频率误差将严格限制解调系统的精确度,所以一下将使用其他解调方法来规避,相位差与频率差带来的解调误差。
为了计算方便假设:
\]
则:
& I(t) = \frac{1}{2}m(t)*cos(K) \\
& Q(t) = -\frac{1}{2}m(t)*sin(K)
\end{split}
\]
根据三角函数公式:
\]
注:\(arctan\)函数有作用域\((-\pi/2\space\space\space\space\pi/2)\)要求,所以将使用其他函数替代。
& I(t) = \frac{1}{2}m(t)*cos(arctan(\frac{-Q(t)}{I(t)})) \\
& Q(t) = -\frac{1}{2}m(t)*sin(arctan(\frac{-Q(t)}{I(t)}))
\end{split}
\]
以下将是重要的地方:
向量旋转,将一个向量\((cos(\theta_1),sin(\theta_2))\),逆时针旋转\(\theta_2\),旋转后的坐标为\((cos(\theta_1-\theta_2),sin(\theta_2-\theta_2))\)。将I和Q看着一个向量,将其逆时针旋转\(arctan(\frac{-Q(t)}{I(t)})\),那么:
& I'(t) = \frac{1}{2}m(t)*cos(arctan(\frac{-Q(t)}{I(t)}) - arctan(\frac{-Q(t)}{I(t)})) =\frac{1}{2}m(t)\\
& Q'(t) = -\frac{1}{2}m(t)*sin(arctan(\frac{-Q(t)}{I(t)}) - arctan(\frac{-Q(t)}{I(t)})) = 0
\end{split}
\]
这样就消除了相位差和频率差带来的误差,\(I'(t)\)就是我们解调的结果。其结果与频率差与相位差无关。
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('相位差');
结果:

5.FPGA解调
有空补齐FPGA解调部分代码。
DSB的数字正交解调的更多相关文章
- AGC电路以及AD8347正交解调芯片
1.AGC电路的工作原理 1.1AGC电路的用途 随着电磁环境的日益恶化, 不同频段电磁信号之间的相互串扰, 以及可能出现的人为干扰, 将会导致接收机输入端口的信号动态范围较大, 一旦出现电路饱和或是 ...
- NCO
NCO 摘自百度百科 (数字振荡器) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . 数字控制振荡器(NCO,numerically controlled oscillator)是 ...
- 电赛总结(四)——波形发生芯片总结之AD9854
一.特性参数 ·300M内部时钟频率 ·可进行频移键控(FSK),二元相移键控(BPSK),相移键控(PSK),脉冲调频(CHIRP),振幅调制(AM)操作 ·正交的双通道12位D/A转换器 ·超高速 ...
- IQ调制、整形滤波器与星座映射
http://www.cnblogs.com/touchblue/archive/2013/01/15/2861952.html 现代通信中.IQ调制基本上属于是标准配置,由于利用IQ调制能够做出全部 ...
- IQ调制原理
现代通信中,IQ调制基本上属于是标准配置,因为利用IQ调制可以做出所有的调制方式. 但是IQ调制到底是怎么工作的,为什么需要星座映射,成型滤波又是用来干嘛的.这个呢,讲通信原理的时候倒是都会泛泛的提到 ...
- SIMULINK的模块库介绍
SIMILINK模块库按功能进行分为以下8类子库:Continuous(连续模块)Discrete(离散模块)Function&Tables(函数和平台模块)Math(数学模块)Nonline ...
- DPSK通信系统的FPGA实现
之前接触过一些FPGA的相关知识,借着实现一个简单的DPSK系统,顺便复习和记录一下Verilog HDL的简单使用方法.准备直接用一张图展现DPSK的调制解调原理,再按照模块介绍Verilog的实现 ...
- DVB-C系统中QAM调制与解调仿真
本文简单记录一下自己学习<通信原理>的时候调试的一个仿真DVB-C(Cable,数字有线电视)系统中QAM调制和解调的程序.自己一直是研究"信源"方面的东西,所以对&q ...
- 大毕设-matlab-AM调制解调
博主大毕设关于数字下变频(DDC)的CUDA实现,预计工期比较长,所以留下一些文字记录. 主要分为两部分工作,Matlab仿真部分和CUDA实现. 由于很久没有仿真了,所以先用一个简单的AM调制仿真练 ...
- 全数字锁相环(DPLL)的原理简介以及verilog设计代码
随着数字电路技术的发展,数字锁相环在调制解调.频率合成.FM 立体声解码.彩色副载波同步.图象处理等各个方面得到了广泛的应用.数字锁相环不仅吸收了数字电路可靠性高.体积小.价格低等优点,还解决了模拟锁 ...
随机推荐
- 当git仓库里面已经有上传好的框架时,二次上传到仓库需要的指令
初始化仓库 1 git init git add . "提交信息"里面换成自己的需要 如"first commit" git commit -m "提 ...
- 未来“数”于你 | 墨天轮携手 Vertica 发布技术文章征集令,双重大奖蓄势待“发”
作为新一代数据分析平台,Vertica凭借高性能.高可用性以及混合模式部署的底层架构等特点,为国内电信.金融行业提供了较多的整体解决方案. 今天,Vertica 限时开放体验,同时,MacBook P ...
- iOS中NSBundle使用小结
bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,文本文件,属性列表,语言包,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle ...
- C# Webapi Filter 过滤器 - 生命周期钩子函数 - Exception Filter 基础
什么是Filter ? 1. 切面编程机制,在 ASP.NET Core 特定的位置执行我们自定义的代码: 2. ASP.NET Core 中的Filter五种类型,Authorization ,fi ...
- 不要慌,FastGPT 告诉我这是技术性调整,利好大 A!
一觉醒来,股市又变天了,到处一片哀嚎,我看了下前几天牛市的赚钱名单,咱们公众号的粉丝没有一个在里面,说实话很失望,希望大家多做些有意义的事情,而不是整天虚度光阴.一个个平时看着都挺厉害,也没赚到钱,我 ...
- dockerfile构建docker镜像
1.dockerfile构建nginx镜像,准备nginx.repo文件 [root@localhost dockerfile]# cat nginx.repo [nginx] name = ngin ...
- 一、java的简单介绍
Java语言 Java是一门面向对象的程序设计语言,在语法上Java与C和C++类似,但丢弃了其相对难理解的一些特性,如操作符重载.多继承.自动的强制类型转换,同时Java语言不使用指针,而是引用,并 ...
- 初探AI之got-ocr2.0大模型本地部署与遇到的各种坑处理
一.环境搭建 1.安装cuda,本人使用的是12.1版本,下载地址:https://developer.nvidia.com/cuda-12-1-1-download-archive 2.安装cond ...
- 适用于 .NET 稳定的官方OpenAI库
前言 今天给大家分享一个由 OpenAI 官方提供,旨在为 .NET 开发者提供方便的接口来访问 OpenAI 的 REST API.这个项目通过 NuGet 包的形式发布,使得 .NET 应用程序能 ...
- CTime类缺陷
如果构造CTime的时间不在下面这个范围内,会抛出异常