【数字信号处理】带通采样定理及其MATLAB仿真

2023-10-27

一、带通采样定理

按照奈奎斯特采样定理(低通采样),采样频率 f s f_{s} fs 要大于等于信号中最高频率 f m a x f_{max} fmax 的2倍,才可以保证采样后的数字信号通过DAC转换后,可以无失真的恢复为原信号。然而,如果信号的频率分布在某一有限频带上,并且信号的最高频率 f m a x f_{max} fmax 远大于信号的带宽 B B B(带通信号),若此时仍依据低通采样定理进行处理,则需要特别高的采样率,一方面会导致后续信号处理的计算量极大,无法保证数字信号处理的实时性;另一方面,ADC器件的性能受限,无法实现对应的采样频率。因此,需要一种适用于带通信号的采样方式,以达到上述要求。

1.1 内容

带通采样定理:设一时间连续的模拟信号 x ( t ) x(t) x(t),其频带限制在( f L f_{L} fL f H f_{H} fH)内,如果信号的采样频率满足:
f s = 2 ( f L + f H ) 2 m − 1 = 4 f 0 2 m − 1 − − − − − − − − − ( 1 − 1 ) f_{s}=\frac{2(f_{L}+f_{H})}{2m-1}=\frac{4f_{0}}{2m-1} ---------(1-1) fs=2m12(fL+fH)=2m14f0(11)
f s ≥ = 2 ( f H − f L ) = 2 B − − − − − − − − − − − ( 1 − 2 ) f_{s}≥=2(f_{H}-f_{L})=2B-----------(1-2) fs≥=2(fHfL)=2B(12)
式中, f 0 = ( f L + f H ) 2 f_{0}=\frac{(f_{L}+f_{H})}{2} f0=2(fL+fH) 为带通信号的中心频率, B = f H − f L B=f_{H}-f_{L} B=fHfL为信号的带宽, m = 1 , 2 , . . . m=1,2,... m=1,2,...,取可以满足以上两式的正整数。
则此时用 f s f_{s} fs 进行等间隔采样所得到的信号采样值可以不失真的恢复为原始信号。

1.2 公式推导

在这里插入图片描述
如上图所示,信号的频谱具有轴对称性,通过采样将信号的频谱进行了搬移,为了避免频谱混叠,需要满足的条件为:
− f L + ( k − 1 ) ∗ f s ≤ f L -f_{L}+(k-1)*f_{s}≤f_{L} fL+(k1)fsfL
− f H + k ∗ f s ≥ f H -f_{H}+k*f_{s}≥f_{H} fH+kfsfH
联合上式,求得采样频率 f s f_{s} fs 的取值范围为:
2 f H k ≤ f s ≤ 2 f L k − 1 \frac{2f_{H}}{k}≤f_{s}≤\frac{2f_{L}}{k-1} k2fHfsk12fL
k k k 为正整数,代表频移的次数。
因此,采样频率 f s f_{s} fs 存在的条件为 2 f H k ≤ 2 f L k − 1 \frac{2f_{H}}{k}≤\frac{2f_{L}}{k-1} k2fHk12fL,即 k ≤ f i x ( f H f H − f L ) k≤fix(\frac{f_{H}}{f_{H}-f_{L}}) kfix(fHfLfH) f i x ( . ) fix(.) fix(.)表示向下取整。

推导最小采样频率

最小采样频率满足: f s = 2 f H k f_{s}=\frac{2f_{H}}{k} fs=k2fH ,且 k = k m a x = f i x ( f H f H − f L ) = f i x ( f H B ) k=k_{max}=fix(\frac{f_{H}}{f_{H}-f_{L}})=fix(\frac{f_{H}}{B}) k=kmax=fix(fHfLfH)=fix(BfH) B B B 为带宽。
(1) 若 f H f_{H} fH 是带宽 B B B 的整数倍时,即 k = f H B k=\frac{f_{H}}{B} k=BfH,则有 f s = 2 f H k = 2 B f_{s}=\frac{2f_{H}}{k}=2B fs=k2fH=2B,即采样频率为信号带宽的2倍。
(2) 若 f H f_{H} fH 不是带宽 B B B 的整数倍时,

二、MATLAB信号仿真

2.1 信号仿真实验

以64KHz的采样频率对3KHz和67KHz的信号进行采样,采样后信号的频率会怎么样呢?
在这里插入图片描述
可以发现,利用采样频率为64KHz对67KHz的信号进行采样,采样后的信号波形与3KHz的信号波形一致,说明采样后信号的频谱进行了搬移,即67-64=3。

2.2 MATLAB代码

clc;
clear;
close all;

fs = 64000;     % 采样频率
f1 = 3000;
f2 = 67000;
N = 100;        % 数据长度
t = (0:N-1)/fs;

x1 = sin(2*pi*f1*t);
x2 = sin(2*pi*f2*t);

figure;
subplot(2,1,1);plot(t,x1);title('f1 = 3KHz');
subplot(2,1,2);plot(t,x2);title('f2 = 67KHz');

三、总结

(1)采样的本质是对信号的频谱进行搬移,最根本的要求就是采样后信号的频谱不混叠。
(2)低通采样定理要求采样频率 f s f_{s} fs 要大于等于信号中最高频率 f m a x f_{max} fmax 的2倍,而带通采样的采样频率与信号的最高频率没有关系,只与信号的带宽有关。
(3)带通采样定理中采样频率的取值是不连续的分段区间,而不同于低通采样信号的最小采样频率。
(4)带通采样的采样频率最小可等于信号带宽的2倍,实际工程应用中常取信号带宽的4倍或更高。

参考

[1] 王坡. PD雷达信号处理关键算法研究与实现[D].南京信息工程大学,2019.DOI:10.27248/d.cnki.gnjqc.2019.000075.
[2] 工程中的带通采样定理 [学以致用系列课程之数字信号处理]
[3] 陈伯孝, 等. 现代雷达系统分析与设计[M]. 西安:西安电子科技大学出版社, 2012.9.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【数字信号处理】带通采样定理及其MATLAB仿真 的相关文章

  • 通过 cuFFT 进行逆 FFT 缩放

    每当我使用 cuFFT 绘制程序获得的值并将结果与 Matlab 的结果进行比较时 我都会得到相同形状的图形 并且最大值和最小值位于相同的点 然而 cuFFT 得到的值比 Matlab 得到的值大得多 Matlab代码是 fs 1000 s
  • MATLAB - 通过垂直连接子矩阵重新排列矩阵

    我在执行以下任务时遇到问题 假设一个 3x6 矩阵 A 0 2787 0 2948 0 4635 0 8388 0 0627 0 0435 0 6917 0 1185 0 3660 0 1867 0 2383 0 7577 0 6179 0
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得
  • MATLAB parfor 和 C++ 类 mex 包装器(需要复制构造函数?)

    我正在尝试使用概述的方法将 C 类包装在 matlab mex 包装器中here http www mathworks com matlabcentral newsreader view thread 278243 基本上 我有一个初始化
  • 考虑预分配速度[重复]

    这个问题在这里已经有答案了 我正在做以下事情 for i 1 m index 0 for j 1 n index index values i j 2 j 1 if j 1 symbol chip chip values index 1 e
  • 在矩阵中找到叉的最快方法

    定义 A i j 1 是十字的中点 如果元素A i 1 j 1A i 1 j 1A i j 1 1A i j 1 1 这些元素和中点一起形成矩阵 A 中的十字 其中 A 至少是一个 3 3 矩阵 并且i j 0 假设上图是 8 8 矩阵 A
  • 在 Pari-GP 中嵌套特定递归

    每个人 我最初在 Stackexchange 上发布了类似的问题 它已移至此处 可以在链接中找到 在 Matlab 中声明函数递归序列 https stackoverflow com questions 67146061 declaring
  • MATLAB:图像角坐标和引用元胞数组

    我在比较不同元胞数组中的元素时遇到一些问题 这个问题的背景是我正在使用bwboundariesMATLAB 中的函数可追踪图像的轮廓 该图像是结构横截面 我试图找出整个部分是否具有连续性 即 只有一个轮廓由bwboundaries命令 完成
  • 计算给出数组中最小标准差的子集

    让我们有一个大小的向量N 例如 x rand N 1 我想计算长度子集的最小标准差K在向量中 When N and K很小 很容易找到最好的子集 因为我可以使用nchoosek N K 枚举所有可能的子集 但是当值N and K比我们说的要
  • Matlab下降低图像质量

    问候 我正在尝试找到一种简单的方法来处理图像 以便将其质量从 8 位降低到 3 位 实现这一目标的最简单方法是什么 干杯 如果要线性缩放 只需将每个像素值除以 255 7 即 如果原始图像存储在矩阵 I 中 则让低分辨率图像 J I 255
  • 在 MATLAB 中验证输入的最佳实践

    在验证 MATLAB 函数中的输入时 什么时候使用 inputParser 比使用断言更好 或者还有其他更好的工具可用吗 我个人发现使用 inputParser 不必要地复杂 对于 Matlab 始终需要检查 3 项内容 存在 类型和范围
  • 将值从 C++ MEX 文件返回到 MATLAB

    我正在编写一个从 C 代码中检索数据的 MATLAB 程序 为此 我在 MATLAB 中创建了一个 MEX 文件和一个网关 mexFunction 虽然可以在 MATLAB 中读取读取值 但我无法检索它来使用它 如果不清楚 我有与这里完全相
  • GO TO 语句 - Fortran 到 Matlab

    我一直在努力将此网格搜索代码从 Fortran 转换为 Matlab 但是我无法正确合并 GO TO 语句 我正在尝试使用 while 循环 但我认为我需要其他东西来结束搜索 任何帮助将不胜感激 vmax 1 0E 15 amax G 1
  • 在 numpy/scipy 中查找 matlab 函数

    是否有一个等价的函数find A gt 9 1 来自 numpy scipy 的 matlab 我知道有nonzeronumpy 中的函数 但我需要的是第一个索引 以便我可以在另一个提取的列中使用第一个索引 Ex A 1 2 3 9 6 4
  • 如何从列中创建对称矩阵?

    例如 我想转动以下列 90 175 600 650 655 660 代入矩阵 90 175 600 650 655 660 175 600 650 655 660 655 600 650 655 660 655 650 650 655 66
  • UDP接收和发送Matlab

    我目前正在努力从外部设备接收数据包 然后将数据发送到另一个设备 我有一个工作 Simulink 模型 但我不知道如何在 Matlab 中对其进行编码 Matlab 中 UDP 接收块的参数如下图所示UDP 接收参数 https i stac
  • 静态时序数据的数据库解决方案

    我们拥有一个庞大且不断增长的实验数据集 该数据集取自约 30 000 名受试者 对于每个主题 都有多个数据记录 在每个记录中 收集了多个生理数据时间序列 每个时间序列约 90 秒长 并以 250Hz 采样 我应该注意到 时间序列的任何给定实
  • 如何在 MATLAB 的 for 循环中读取多个图像?

    我已将结果分段放在一个文件夹中 这些需要在 for 循环中读取并在循环中进一步处理 我尝试阅读如下 for i 1 10 file name dir strcat C Users adminp Desktop dinosaurs im im
  • Matlab 中的多行匿名函数? [复制]

    这个问题在这里已经有答案了 是否可以在 Matlab 中创建多行匿名函数 没有合适的例子在文档中 http www mathworks com help matlab matlab prog anonymous functions html
  • Matlab 中是否有相当于 R 的 dput() 的函数?

    Matlab 中是否有相当于 R 的 dput 的函数 dput 将 R 对象的 ASCII 文本表示形式写入文件或连接 UPDATE 1 添加了递归和对单元格的支持 UPDATE 2 添加了对结构的支持 UPDATE 3 增加了对逻辑 整

随机推荐

  • SpringBoot_第六章(知识点总结)

    目录 目录 1 拦截器 Interceptor 1 1 拦截器代码实现 1 2 拦截器源码分析和流程总结 2 过滤器 Filter 自定义 Servlet 监听器 Listener 3 文件上传 3 1 文件上传代码实现 3 2 文件上传源
  • Aix 压缩、打包、解压、解包 tar zip gz

    tar是打包 zip和gz是压缩 打包 tar cf all tar 解包 tar xvf tar 解压zip文件 jar xvf DB29 5 AIX zip 解压gz文件 usr bin gzip d tar gz
  • highcharts使用韦恩图报错解决Error in mounted hook: “Error: Highcharts error #17:missingModuleFor: venn(详细步骤)

    我由于在vue项目中刚好要使用韦恩图想用highcharts然后按照步骤 1 npm install highcharts save 2 创建组件
  • Mac使用技巧:轻松自定义设置系统键盘

    为你带来Mac OS系统和windows系统如何键盘自定义设置教程 感兴趣可以看看哦 一 mac系统下如何将外接键盘设置成和苹果键盘一样 首先打开mac系统设置里的 键盘 点击 修饰键 选择 usb键盘 然后 option 和 comman
  • 瓦片地图-坐标转换

    先明确三点 1 屏幕坐标是以左上角为原点 而cocos2dx坐标即opengl坐标体系 是以左下角为原点 2 tile地图坐标是以左上角或上方 45 为原点 tile瓦片的默认锚点是左下角 一 地图坐标 Tiled地图一般常见的有3种不同的
  • 【STC15单片机】独立按键显示二进制

    目录 按键选择 按键抖动 独立按键控制8个LED实现二进制显示 显示二进制的程序 单片机型号说明 IAP15F2K61S2 新建工程时单片机型号选择STC15F2K60S2 键盘的分类 键盘分编码键盘和非编码键盘 键盘上闭合件的识别由专用的
  • Python 中的八大关键要素

    阅读本文需要 10 分钟 前言 学习任何一门语言之前 你得先了解它的整体架构 知道它的思想 了解它的关键要素 一门语言学到后来你会发现 就像是在剥茧抽丝一般 越是深入越是发现其奥妙之处 Python 中的八大关键要素 Python 是一种D
  • 云服务器中如何创建共享文件夹,云服务器中如何创建共享文件夹

    云服务器中如何创建共享文件夹 内容精选 换一换 当您有如下需求时 可以考虑使用文件注入功能将文件注入到弹性云服务器 需要通过脚本简化弹性云服务器配置通过脚本初始化系统已有脚本 在创建弹性云服务器的时候一并上传到服务器其他可以使用脚本完成的事
  • css-滚动条样式设置

    滚动条产生原因 给能设置宽高的元素添加 overflow scroll 样式 会让该元素区域产生滚动条 滚动条默认样式 以下行文案例皆是在 Edge 浏览器环境下测试 设置滚动条样式 通过设置 webkit scrollbar 伪元素影响滚
  • java设计模式——原型模式(Prototype Pattern)

    概述 在使用原型模式时 我们需要首先创建一个原型对象 再通过复制这个原型对象来创建更多同类型的对象 需要注意的是通过克隆方法所创建的对象是全新的对象 它们在内存中拥有新的地址 通常对克隆所产生的对象进行修改对原型对象不会造成任何影响 每一个
  • 项目管理和产品管理

    本文翻译至 http www tenstep jp cms project management value html start 8 A5 3 项目管理和产品管理 项目和产品 A5 3 P1 项目 是为了执行新工作的交付手段 所有的组织里
  • 【论文精读】Is Synthetic data from generative models ready for image recognition? 生成数据对图像识别的影响

    标题 扩散模型生成数据对图像识别的影响 1 总体介绍 发展现状 扩散模型已经可以生成高质量的样本 之前有人研究过生成数据对cv的作用 但是局限于小领域和小规模 研究目的 扩散样本对视觉领域的作用 手工标注的样本昂贵 有隐私和安全风险 探讨方
  • 凹凸世界服务器维护到几点,凹凸世界6月10日版本更新停服维护公告_凹凸世界6月10日版本更新了什么_玩游戏网...

    在凹凸世界手游中6月10日版本究竟更新了什么呢 更新的内容又有哪些呢 不清楚的话 接下来就让我们一起来看一下吧 亲爱的天使 感谢您对 凹凸世界 手游的关注与支持 为了给各位天使带来更好的游戏体验 不断地丰富游戏内容 凹凸世界 手游将于6月1
  • VLAN基础知识和配置

    分割广播的方式 物理分割 子网划分 逻辑分割 VLAN VLANy优势 1 控制广播 每一个vlan都是一个独立的广播域 这样就减少了广播对网络宽带的占用 提高了网络传输效率 并且一个VLAN出现了广播风暴不会影响其他的VLAN 2 增强网
  • 分布式应用:Zabbix监控MariaDB

    目录 一 理论 1 Zabbix监控MariaDB 二 实验 1 Zabbix监控MariaDB 一 理论 1 Zabbix监控MariaDB 1 环境 zabbix服务端 192 168 204 214 zabbix客户端 192 168
  • MatLab中的fft变换(快速傅里叶变换)

    本文章内容只作为个人学习总结使用 目录 说明 基本的FFT使用方法 1 简单的FFT功能介绍 2 恢复幅度轴 创建频率轴 说明 本文章主要进行MATLAB中fft函数基本使用方法的讨论 关于fft的概念以及为什么要进行fft等信号处理方面的
  • bugku 奇怪的密码

    a gndk rlqhmtkwwp z key 1 b for i in a b chr ord i key key key 1 print b
  • C++回顾录03-C++类和对象

    类是创建对象的模板 一个类可以创建多个对象 每个对象都是类类型的一个变量 创建对象的过程也叫类的实例化 每个对象都是类的一个具体实例 Instance 拥有类的成员变量和成员函数 类是用户自定义的类型 如果程序中要用到类 必须提前说明 或者
  • 数学建模_论文写作要求

    标题 副标题 基于XX 模型 方法 对xx的问题研究 可加副标题 xxx gt 三号黑体字 一级标题 四号黑体 居中 二级 三级标题 小四黑体 左对齐 其他字体 小四宋体 行距用单倍行距 设置文字时先选择样式再调整样式 总页数在25 35之
  • 【数字信号处理】带通采样定理及其MATLAB仿真

    目录 一 带通采样定理 1 1 内容 1 2 公式推导 二 MATLAB信号仿真 2 1 信号仿真实验 2 2 MATLAB代码 三 总结 参考 一 带通采样定理 按照奈奎斯特采样定理 低通采样 采样频率 f s f s fs 要大于等于信