间接调制和带通采样!!(非奈奎斯特采样定理)

1. 直接变频

前面讲解数字调制原理时,直接利用IQ调制将基带信号变换为频带信号,这种频率变换一般被称为直接上变频;解调时,直接利用IQ解调,将频带信号变换回基带信号,这种频率变换一般被称为直接下变频。直接上变频和直接下变频统称直接变频。

在采用直接变频的情况下,假定基带IQ信号的波形如下图所示。

基带IQ信号波形

则射频信号的波形如下图所示。 

射频信号波形

 

2. 间接变频

通信系统中,考虑到实现难度等因素,有时候不将基带信号直接变换为射频信号,或者将射频信号直接变换为基带信号,而是先将基带信号变换到中频,再从中频变换到射频,这被称为间接上变频;反之:先将射频信号变换到中频,再从中频变换到基带,这被称为间接下变频。间接上变频和间接下变频统称间接变频。

在采用间接变频的情况下,假定基带IQ信号的波形如下图所示。

基带IQ信号波形

则中频信号的波形如下图所示 

中频信号波形

射频信号的波形如下图所示 。

射频信号波形

2.1 间接上变频

将基带信号调制到中频载波上,再将中频载波变换为射频载波的过程,就是间接上变频,如下图所示。 

间接上变频

a 基带变换到中频

这个变换过程实质上就是IQ调制的过程,只不过载波的频率是中频而已。

 

 b 中频变换到射频

通过滤波器滤除低频成分:

 2.2 间接下变频

将射频载波变换为中频载波,再从中频信号解调出基带信号的过程,就是间接下变频,如下图所示。

间接下变频

a 射频变换到中频

通过滤波器滤除高频成分:

 

这个过程实质上就是一个混频的过程,将载波频率由射频变换为中频。

b 中频变换到基带

 

通过滤波器滤除高频成分,即可得到I(t),Q(t)。 

这个过程实质上就是IQ解调的过程,只不过已调信号的载波频率是中频而已。

3. 数字变频

一般基带信号都是数字信号,中频处理也是数字化的,因此基带和中频之间的上变频和下变频一般都是通过数字信号处理来实现。

3.1 数字上变频

DUC:Digital Up Converter,数字上变频器,通过数字信号处理实现上变频功能,如下图所示。

数字上变频

 

3.2 数字下变频 

DDC:Digital Down Converter,数字下变频器,通过数字信号处理实现下变频功能,如下图所示。

数字下变频

 

4. 带通采样

模拟下变频得到的模拟中频信号,需要进行模数转换,才能进行后续的数字信号处理。

模数转换涉及采样。前面所讲的奈奎斯特采样定理(也被称为低通信号采样定理)是针对基带信号讲的,而这里的采样是针对带通信号讲的。

4.1 什么是带通信号

基带信号经过载波调制后得到的已调信号被称为频带信号,也称为带通信号。直接变频得到的射频信号、间接变频得到的中频信号和射频信号都是带通信号。

基带信号经过载波调制后得到的已调信号被称为频带信号,也称为带通信号。直接变频得到的射频信号、间接变频得到的中频信号和射频信号都是带通信号。如果根据前面讲的采样定理,以大于2倍最高频率的采样频率对带通信号进行采样,肯定可以从抽样信号中恢复出带通信号,这是毫无疑问的。但由于一般带通信号的载波频率都比较高,动辄几十、几百MHz,如果使用大于2倍最高频率的采样频率,对ADC的处理能力要求很高。按目前ADC器件的处理能力,能达到几百MSPS(Million Samples Per Second)采样频率的ADC就算是处理能力比较强的了,而且支持如此高采样频率的ADC价格很高。能不能用低一些的采样频率对带通信号进行采样呢?这就引出了带通信号采样定理。

4.2 带通信号采样定理

中心频率为f0、带宽为B的带通信号,其高、低截止频率分别为:fH=f0+B/2和fL=f0-B/2,其频谱如下图所示。

带通信号的频谱

 

这就是带通采样定理。

4.3 带通采样定理的推导过程

虽然带通采样定理的结论看起来不像低通信号采样定理那样简洁,但是它们的推导方法类似,都是从避免抽样信号频谱发生混叠的角度推导出来的。唯一需要注意的是:对带通信号进行采样,相当于对其频谱进行周期性拓展,在对频谱进行周期性拓展时,正频率部分和负频率部分要一起拓展。 

假定带通信号的频谱如下图所示,其截止频率:fL=2B,fH=3B。

带通信号的频谱

以采样频率fs对该信号进行采样时,频谱将会以fs为间隔进行周期性拓展。

(1)当采样频率很高时,很明显,周期拓展的频谱之间不会发生混叠,如下图所示。

抽样信号的频谱(1)

减小fs,右边的频谱将向左挪,左边的频谱将向右挪,直至和原频谱刚好挨上为止,此时fs=2fH,如下图所示。 

抽样信号的频谱(2)

如果继续减小fs,频谱就会发生混叠了,必须跳过一段频率,到达如下图所示位置才不会发生混叠,此时刚好fs=2fL。 

抽样信号的频谱(3)

继续减小fs,右边的频谱将向左挪,左边的频谱将向右挪,直至频谱刚好挨上为止,此时fs=fH,如下图所示。 

抽样信号的频谱(4)

如果继续减小fs,频谱就会发生混叠了,必须跳过一段频率,到达如下图所示位置才不会发生混叠,此时刚好fs=fL=2B。 

抽样信号的频谱(5)

注意:这时候fs不能再进一步减小了,否则就发生混叠了。

下面对比一下带通采样定理给出的结论。

 

根据带通采样定理,以满足下面条件的采样频率fs对带通信号进行采样,都可以将带通信号无失真地恢复出来:

 

满足条件的采样频率fs由高到低被分成了3个部分:

对比一下前面推导得到的结论,可以发现二者是完全相同的。

 

4.4 图解满足带通采样定理的采样频率

为了更清楚地认识带通采样定理中采样频率fs和最高信号频率fH的关系,我们以fH为横轴,以fs为纵轴,把满足带通采样定理的采样频率画在一张图中,如下图所示。

满足带通采样定理的采样频率

 图中灰色区域表示满足带通采样定理的采样频率范围。

还是以fH=3B为例,采样频率范围为:fs=2B,3B≤fs≤4B,fs≥6B。

黑线所示为满足带通采样定理的最低采样频率:

随着带通信号最高频率的增大,黑色斜线的斜率越来越小,当带通信号的最高频率远远大于信号带宽时,黑色斜线将趋近于一条水平线,只要以略大于2倍信号带宽的采样频率对带通信号采样即可,如下图所示。 

带通信号的最低采样频率随最高频率的变化

当带通信号的最高频率(fH)正好是信号带宽(B)的整数倍时,满足带通采样定理的最低采样频率正好是带宽的2倍。其他情况采样频率都大于信号带宽的2倍。 

为了用最低的采样频率(fs=2B)对带通信号进行采样,在设计带通信号时,一般将带通信号的最高频率设计成带宽的整数倍(fH=kB),如下图所示。

带通信号最高频率是信号带宽的整数倍

 

4.5 带通采样定理和奈奎斯特采样定理的关系

带通信号采样定理中,令fH=B,则mmax=1。对应的带通信号频谱如下图所示。这种信号一般被称为低通信号。

低通信号的频谱

根据带通信号采样定理,采样频率fs应满足:

 

这就是奈奎斯特采样定理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/792082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 系统学习(异步编程)

在C#中,异步编程是一种优化程序性能的关键技术,特别是在处理I/O密集型操作(如网络请求、数据库查询、文件读写等)时,能够有效避免由于长时间等待而导致的线程阻塞,从而提高应用的响应速度和资源利用率。asy…

LeetCode hot100-21

240. 搜索二维矩阵 II编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。这题很神奇,因为暴力解法都可以通过 class Solution {public boolean search…

vue 使用自定义标签URL Protocol 调用本地exe 并传参

创建注册表文件reg,并运行 里面的路径需要替换成实际exe的绝对路径 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\App] "URL:App Protocol Handler" "URL Protocol""" [HKEY_CLASSES_ROOT\App\DefaultIcon] &qu…

pycharm调试(步过(Step Over)、单步执行(Step Into)、步入(Step Into)、步出(Step Out))

pycharm调试 pycharm调试 pycharm调试为什么要学会调试?1. 步过 (Step Over)2. 单步执行 (Step Into)3. 步入(Step Into)4. 步出(Step Out) 为什么要学会调试? 调试可以帮助初学者更深入地理解编程基础&am…

【Android、 kotlin】kotlin学习笔记

基本语法 fun main(){val a2var b "Hello"println("$ (a - 1} $b Kotlin!")} Variables 只赋值一次用val read-only variables with val 赋值多次用var mutable variables with var Standard output printin() and print() functions String templ…

NKCTF2024 re VM?VM!WP

逻辑似乎很简单(个鬼啊) 这个函数是把输入的字符转化为二进制并倒序存储 sub_1570太大了加载不出来,应该是加密的主逻辑,目的是需要输出1 可以通过删除栈的方法强行转化伪代码 首先删掉这部分 9A0改小点 这个也是 栈这里U一下再…

快手2024春季招聘揭秘!最全面的Spring RESTful Web面试题大全,学会这些让你面试无压力!

随着Spring框架在构建现代Web应用中的广泛应用,对于掌握如何高效地使用Spring来创建RESTful Web服务的需求日益增长。特别是在快手这样的创新和技术驱动的公司,深入理解Spring RESTful Web服务的开发不仅是通过技术面试的关键,更是在日后的工…

DFS:深搜+回溯+剪枝解决组合问题

创作不易,感谢支持!!! 一、电话号码的组合 . - 力扣(LeetCode) class Solution { public:string hash[10]{"","","abc","def","ghi","jkl","mno","pqrs"…

爬虫部署平台crawlab使用说明

Crawlab 是一个基于 Go 语言的分布式网络爬虫管理平台,它支持 Python、Node.js、Jar、EXE 等多种类型的爬虫。 Crawlab 提供了一个可视化的界面,并且可以通过简单的配置来管理和监控爬虫程序。 以下是 Crawlab 的一些主要优点: 集中管理&am…

Naive UI n-data-table 分页试用

版本 “naive-ui”: “^2.37.3”, “ts-node”: “^10.9.2”, “typescript”: “~4.5.4”, “vue”: “^3.4.14” 官方示例 https://www.naiveui.com/zh-CN/os-theme/components/data-table#ajax-usage <template #2><!-- 展示信息 --><n-data-tableremote:col…

【flatbuffers】vs2022构建及Qt工程测试

cmake 生成,直接构建 debug或者release参考大神的例子release 构建 Build started at 17:44... 1>------ Build started: Project: flattests_cpp17, Configuration: Release Win32 ------ 2>------ Build started: Project: flathash, Configuration: Release Win32 --…

【C】leetcode力扣—— 141. 环形链表Ⅰ

目录 141. 环形链表 Ⅰ题目解题思路分析暴力求解&#xff1f;&#xff1f;快慢指针 代码 141. 环形链表 Ⅰ 题目链接: https://leetcode.cn/problems/linked-list-cycle/description/ 题目 题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某…

E-魔法猫咪(遇到过的题,做个笔记)

题解&#xff1a; 来自学长们思路&#xff1a; 其中一种正解是写单调队列。限制队列内的数单调递增&#xff0c;方法为每当新来的数据比当前队尾数据小时队 尾出列&#xff0c;直到能够插入当前值&#xff0c;这保证了队头永远是最小值。因此总体思路是队尾不断插入新值的同时 …

openlayers 入门教程(九):overlay 篇

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

Spring框架提供三个核心服务

1. IOC&#xff1a;控制反转服务 由“Spring容器对象”完成指定类的实例对象的创建 2. DI&#xff1a;依赖注入 由“Spring容器对象”完成指定对象的初始化的服务 3. AOP:面向切面编程 降低开发人员使用代理设计模式难度&#xff0c;开发人员只需要专注于切面类的开发即可…

vue-cli打包 nodejs内存溢出 vue2.x Last few GCs

遇到这种情况百度各种博客&#xff0c;什么改package.json里的配置&#xff0c;什么安装increase-memory-limit &#xff0c;都尝试了并没什么用处&#xff0c;最后解决方案为执行下方名单&#xff0c;再次打包就成功了&#xff1a; export NODE_OPTIONS--max_old_space_size4…

android 内存优化

什么是内存泄漏? 如果一个无用对象&#xff08;不需要再使用的对象&#xff09;仍然被其他对象持有引用&#xff0c;造成该对象无法被系统回收&#xff0c;以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费&#xff0c;这中情况就是内存泄漏。 在Android开发中…

单元测试 mockito(二)

1.返回指定值 2.void返回值指定插桩 3.插桩的两种方式 when(obj.someMethod()).thenXxx():其中obj可以是mock对象 doXxx().wien(obj).someMethod():其中obj可以是mock/spy对象 spy对象在没有插桩时是调用真实方法的,写在when中会导致先执行一次原方法,达不到mock的目的&#x…

好物视频素材在哪找?视频素材大全app下载

创作优质视频内容不仅仅是一种艺术&#xff0c;也是一种科学&#xff0c;需要对素材的深刻理解和精心挑选。掌握了这些高清无水印视频素材&#xff0c;您就拥有了创作引人入胜视频内容的强大工具。以下是更多精选的视频素材网站&#xff0c;旨在为您的视频项目提供更广阔的视野…

Python | Leetcode Python题解之第10题正则表达式匹配

题目&#xff1a; 题解&#xff1a; class Solution:def isMatch(self, s: str, p: str) -> bool:m, n len(s), len(p)dp [False] * (n1)# 初始化dp[0] Truefor j in range(1, n1):if p[j-1] *:dp[j] dp[j-2]# 状态更新for i in range(1, m1):dp2 [False] * (n1) …