PDM

2023-05-16

PDM——Pulse Density Modulation

  • 1 Protocols Introduction
    • 1.1 PDM Introduction
    • 1.2 PCM Introduction
    • 1.3 PDM To PCM
  • 2 PDM StructurePDM Structure
    • 2.1 Block Diagram
    • 2.2 Main Features
    • 2.3 PDM Timing
    • 2.3 Hardware Connect
    • 2.5 Application
  • 3 Functional Description
    • 3.1 Operation
    • 3.2 Gain

1 Protocols Introduction

1.1 PDM Introduction

PDM,即脉冲密度调制,是一种用数字信号表示模拟信号的调制方法。PDM使用1M~5M的始终调制模拟分量,只有1位输出,非0即1,因此通过PDM方式表示的数字音频也被称为Oversampled 1-bit Audio。它是1位数字采样的高频数据流。在PDM信号中,脉冲的相对密度对应于模拟信号的幅度。大量的‘1’对应于高(正)幅度值,而大量的‘0’对应于低(负)幅度值,交替的‘1’与‘0’对应于幅度值‘0’。
在这里插入图片描述

1.2 PCM Introduction

PCM,即脉冲编码调制,在PCM信号中,具体的幅度值被编码为脉冲。PCM数据流有两个基本属性,他们决定了数据流相对于原始模拟信号的保真度:

  • 采样率
  • 位深
    采样率是为了以数字方式表示信号,每秒采集的信号样本数。位深决定了每个样本中信息的位数。

1.3 PDM To PCM

以PDM方式作为模数转换的接收端,需要用到抽取滤波器(Decimation Filter),将密密麻麻的0和1代表的密度分量转换为幅值分量,即PCM格式。故一般单片机的PDM接口实际上是一个PDM格式转PCM格式的功能。
为了将PDM流转换为PCM样本,需要对PDM流进行滤波和抽取。在抽取阶段,PDM信号的采样率降低至目标音频采样率,可以简单理解为在每M个样本中选择一个,将采样率降低为1/M。因此,PDM CLK是应用所需的目标音频采样率的M倍,其中M为抽取因子。
PDM频率 = 音频采样频率 * 抽取因子
抽取因子通常处于48至128的范围之间。

2 PDM StructurePDM Structure

2.1 Block Diagram

下图以Nordic为例

2.2 Main Features

  • 1 Instance
  • 2 Channel
  • 16k采样率
  • HW decimation filters
  • DMA supported
  • Programmable gain control

2.3 PDM Timing

默认情况下:PDM在CLK的上升沿采样左声道数据 ,在CLK的下降沿采样右通道数据。
如下图所示![在这里插入图片描述](https://img-blog.csdnimg.cn/2021012719344533.png

2.3 Hardware Connect

PDM接口的连接方式有三种:左声道、右声道、立体声(分别如下图所示)。

2.5 Application

PDM主要应用于声音的采集,对于空间限制严格的场合,即尺寸受限应用中优势明显,有着广泛的应用场景。

  • 手机、平板、手环等消费类电子
  • 耳机
  • 门禁、智能家居

3 Functional Description

3.1 Operation

一般而言,左通道在时钟的上升沿采集数据,右通道在时钟的下降沿采集数据,PDM则会产生两个bit流。PDM模块中包含一个抽取滤波器,其目的是将PDM输入的1位数据转换为PCM音频样本。滤波器的输入为两通道PDM串行流(左通道为高时钟,右通道为低时钟)。它的输出为2 * 16位PCM数据流,采样率比PDM时钟速率低采样因子倍。

3.2 Gain

一般而言,在PDM的链路中是支持可编程增益控制的。该控制由两个独立寄存器控制,分别控制左通道和右通道。可参考计算公式如下:

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

PDM 的相关文章

  • 相机标定(1)内\外参矩阵和畸变矩阵

    相机标定可以说是计算机视觉 机器视觉的基础 分为以下内容 xff1a 相机标定的目的和意义相机成像过程的简化与建模针孔相机模型的数学描述标定针孔相机模型的参数 相机标定的目的和意义 我们所处的世界是三维的 xff0c 而照片是二维的 xff
  • [Python|最优状态估计与滤波学习笔记] 最小均方滤波,卡尔曼滤波,神经网络滤波

    文章目录 前言 最优状态估计与滤波1 最小均方滤波 xff08 Least Mean Square LMS xff09 基本原理LMS设计步骤仿真代码 2 线性卡尔曼滤波 xff08 Linear Kalman Filter KF xff0
  • jetson机器上对lxde桌面设置中文输入法详细过程(图文展示)

    目录 1 需求2 解决2 1 中文输入法安装包2 2 系统设置 1 需求 手上的jetson nano机器使用的是lxde桌面 xff08 通常从台湾组装的jetson机器会有带有这种图标的界面 xff0c 就是lxde界面 xff0c 和
  • Django密码存储策略分析

    一 源码分析 Django 发布的 1 4 版本中包含了一些安全方面的重要提升 其中一个是使用 PBKDF2 密码加密算法代替了 SHA1 另外一个特性是你可以添加自己的密码加密方法 Django 会使用你提供的第一个密码加密方法 xff0
  • 配置k8s的dashboard

    在https github com kubernetes dashboard releases查看兼容的版本 xff08 使用的k8s是v1 15 1 xff0c dashboard版本是v2 0 0 beta4 xff09 如果安装了一次
  • AirSim学习(1)-介绍,安装,unity测试

    home AirSim是一款基于虚幻引擎的无人机 汽车等模拟器 我们现在也有一个实验性的Unity版本 它是开源的 xff0c 跨平台的 xff0c 支持使用流行的飞行控制器 如PX4和ArduPilot 进行软件在环模拟 xff0c 并支
  • docker数据迁移

    docker数据迁移 前言 开发服务器随着docker运行服务的变多 xff0c docker目录占用磁盘空间也在逐渐变大 xff0c 终于在最近磁盘彻底占满导致容器启动不起来并提示 34 no device space left 34 为
  • 树莓派3B+ VNC连接,cannot currently show the desktop 问题解决

    该问题是分辨率问题 xff0c 修改分辨率就可以 以下是修改过程 备份 span class token function cp span boot config txt config txt 打开文件 span class token f
  • 金蝶K/3 跟踪语句_业务单据

    跟踪语句 业务单据 BOM select from t TableDescription where Ftablename like 39 ICBOM 39 select from t FieldDescription where FTab
  • PX4的填坑经历

    2017年3月中旬正式决定入坑PX4 xff0c 以下是期间的经历 xff08 填坑中 xff09 1 2017年4月1日 按PX4 Development Guide xff0c 在ubuntu上建立PIXHAWK的PX4固件开发环境 x

随机推荐

  • Git 分支管理 和 查看提交历史 标签

    git branch 创建分支 gut branch d 删除分支 git checkout 切换分支命令 git merge 合并分支 用 git add 要告诉 Git 文件冲突已经解决 git log 查看历史 git log onl
  • Android 7.0 Launcher3 去掉应用抽屉

    年初做过一个项目 xff0c 有一个需求就是需要将桌面变为单层不需要二级菜单 最近几次有小伙伴有这个问我这个解决办法 现在我将分享给大家 先上效果图 xff1a 功能分解 去除Allapp键 xff0c 调整HotSeat布局将所有应用摆在
  • C++算法库网站 https://zh.cppreference.com/w/cpp/algorithm

    貌似要出国才能访问的C 43 43 标准库api网站 https zh cppreference com w cpp algorithm 有详细的函数介绍 如下图
  • 关于cv.cvtColor转换的问题及解决方法

    问题描述篇 xff1a 今天在调试困扰了我很久的一个问题 xff0c 在训练网络生成batch数据的时候读入原始图像 xff0c 输出的时候却老是出问题 我们都知道YUV和RGB之间的转换关系 xff1a R 61 Y 43 1 4075
  • Nuttx 驱动开发手册

    目录 Nuttx 代码获取编译 Nuttx 启动流程 Nuttx BootLoader 开发之源码分析 gpio 驱动分析 I2c驱动分析 PX4 框架分析 UORB 进程间通讯分析 PX4应用层驱动分析并实现例程 串口驱动GPS 驱动分析
  • 解析小觅中通过双目相机生成深度图的代码

    最近在使用双目摄像机生成深度图 xff0c 研读一下自带的代码 xff0c 做一个记录 第一部分 xff1a 第一部分是定义了一个命名空间 xff0c 其中包含许多个类 第一个类 xff1a 1 代码 GrabCallbacks类主要用于抓
  • altium designer PCB各层介绍+添加多层+设置正/负片+设置层的网络标号

    top layer 顶层 xff0c 用来走线 bottom layer 底层 xff0c 用来走线 mechanical 机械层 xff0c 用来定义PCB形状和尺寸 keepout layer 禁止布线层 xff0c 用来绘制禁布区 t
  • java死锁产生的条件

    以下四个条件同时满足时机会产生死锁 产生死锁的条件互斥 xff0c 共享资源 X 和 Y 只能被一个线程占用 xff1b 占有且等待 xff0c 线程 T1 已经取得共享资源 X xff0c 在等待共享资源 Y 的时候 xff0c 不释放共
  • PID--位置型PID和增量式PID比较

    一 位置型PID 位置型 PID 算法适用于不带积分元件的执行器 执行器的动作位置与其输入信号呈一一对应的关系 控制器根据第 n 次计算机采样结果与给定值之间的偏差 e 来计算出第 n 次采用后所输出的控制变量的值 以调节阀来简单说明 xf
  • 你可能不知道的室内无人机秘密都在这里(二 )

    接上篇 xff1a 你可能不知道的室内无人机秘密都在这里 xff08 一 xff09 如果说上一篇是无人机现状的一些科普知识篇 xff0c 那这篇就直接上干货了 xff0c 希望能真正帮助到喜欢无人机行业 想深入研究无人机的小伙伴们 具体我
  • 漫话程序员们的家庭装修——书房篇

    身为一名程序员 xff0c 辛辛苦苦码代码N年 xff0c 终于攒下钱买了自己的小窝 xff0c 不好好犒劳一下自己都对不起自己的近视眼和鼠标手 这就来分享一下我装修的心得 xff0c 从书房开始 xff01 书房作为程序员在公司战斗一天回
  • Windows下使用vscode 调试linux kernel

    安装WSL2 在microsoft store上安装Ubuntu xff0c 当不能安装时可能需要梯子window中访问Ubuntu的目录使用 xff1a wsl Ubuntu中需要修改软件源 xff1a 参考 https mirrors
  • 计算器算法----C语言实现(堆栈法)

    1 字符串去空格处理 实现一 xff1a span class hljs keyword void span spacess span class hljs keyword char span span class hljs keyword
  • 链接脚本

    本文转自 xff1a http www cnblogs com li hao p 4107964 html 一 概论 每一个链接过程都由 链接脚本 linker script 一般以lds作为文件的后缀名 控制 链接脚本 主要用于规定如何把
  • 记录2017/9/7趋势科技笔试题

    1 下面程序一共会在屏幕上输出多少个 xff1f include lt iostream gt include lt stdio h gt include lt sys types h gt include lt unistd h gt u
  • 字节对齐算法

    ps xff1a 遇见这种算法纯属一个巧合 xff0c 刚入职的我 xff0c 在忙着调用各种SDK中的API xff0c 无暇顾及代码的具体实现 xff0c 有些代码还被屏蔽了 xff0c 在写flash的过程中 xff0c 参考了前辈们
  • UCOSIII学习笔记

    目录 1 学习环境 2 滴答定时器 3 任务 3 1 UCOSIII系统任务 3 2 UCOSIII任务状态 3 3 UCOSIII任务调度 3 4 任务相关的API函数 3 5 钩子函数 4 UCOSIII的中断 5 UCOSIII的临界
  • QCC5125----GAIA

    1 描述 GAIA全称 xff1a Generic Application Interface Architecture xff0c 实现了端到端 xff0c 主机无关的生态系统 xff0c 支持主机应用程序访问设备功能 底层的数据包由8个
  • 【SQLserver】使用openrowset方法导入EXCEL表格数据

    一 前言 在之前的一篇博文中记录了用OPENDATASOURCE函数将EXCEL数据写入SQLserver表中的方法 这一方法需要表名sheet1为固定名称不可更改 实际业务中可能会遇到表名随着日期而改动的情况 xff0c 如果excel表
  • PDM

    PDM Pulse Density Modulation 1 Protocols Introduction1 1 PDM Introduction1 2 PCM Introduction1 3 PDM To PCM 2 PDM Struct