数字MIC PDM接口

news2025/1/27 13:58:07

在音频采样中,我们经常会用到PCM,PDM这种方式,它们之间也是有一些区别的。 

1:PDM

工作原理:

PDM使用远高于PCM采样率的时钟采样调制模拟分量,每次采样结果只有1位输出(0或1)。这种调制方式通过脉冲密度的变化来表示信号强度

特点:

成本低、功耗少。 逻辑相对复杂,但采样率高。 由于只有1位输出,数据表示简单且易于传输。

上Mhz的采样频率,远比有效音频20~20Khz频率高,这也叫过采样。 

2:PCM

是一种直接对音频信号进行离散取样和量化编码的方法。 使用等间隔采样方法对音频信号以一定频率(采样频率)进行取样,将每次采样的模拟分量幅度表示为N位的数字分量(N=量化深度)。例如,8bit PCM一共可以表示256个量化等级,范围是0到255。 每次采样的结果都是N bit字长的数据。 逻辑更加简单。 需要用到数据时钟、采样时钟和数据信号三根信号线。 将编码后的采样连接起来即可重建数字化的音频信号,直接表示了信号幅度,易于转换和处理。

3:PDM编码原理

PDM是将模拟信号的幅值用固定宽度脉冲的相对密度来表示。具体来说,就是高于平均幅值的模拟信号用正脉冲(通常对应二进制1)表示,低于平均幅值的模拟信号用负脉冲(通常对应二进制0)表示。模拟信号的幅值越大,对应数字信号中1的密度就越大;反之,模拟信号的幅值越小,对应数字信号中0的密度就越大。中间幅值则用1和0的连续转换来表示。

4:双声通输出

PDM信号是一种用脉冲密度来表示模拟信号幅度的数字信号。在PDM系统中,每个麦克风都被配置为在时钟信号的不同沿(如上升沿或下降沿)产生各自的输出(一次输出一位数字:0或1)。这样,两个麦克风的输出就能保持相互同步,从而确保来自每个通道的数据被同时捕获。

主控制器(如微处理器或数字信号处理器)需要相应配置好采样时机,以正确捕获来自两个麦克风的数据。

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

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

相关文章

SpringBoot--基本使用(配置、整合SpringMVC、Druid、Mybatis、基础特性)

这里写目录标题 一.介绍1.为什么依赖不需要写版本?2.启动器(Starter)是何方神圣?3.SpringBootApplication注解的功效?4.启动源码5.如何学好SpringBoot 二.SpringBoot3配置文件2.1属性配置文件使用2.2 YAML配置文件使用2.3 YAML配置文件使用2.…

vim如何设置显示空白符

:set list 显示空白符 示例: :set nolist 不显示空白符 示例: (vim如何使设置显示空白符永久生效:vim如何使相关设置永久生效-CSDN博客)

常用集合-数据结构-MySql

目录 java核心: 常用集合与数据结构: 单例集合: 双列集合: 线程安全的集合: ConcurrentHashMap集合: HashTable集合: CopyOnWriteArrayList集合: CopyOnWriteArraySet集合: ConcurrentLinkedQueue队列: ConcurrentSkipListMap和ConcurrentSkipListSet&…

Android BitmapShader简洁实现马赛克,Kotlin(二)

Android BitmapShader简洁实现马赛克,Kotlin(二) 这一篇 Android BitmapShader简洁实现马赛克,Kotlin(一)-CSDN博客 遗留一个问题,xml定义的MyView为wrap_content的宽高,如果改成其…

HarmonyOS基于ArkTS卡片服务

卡片服务 前言 Form Kit(卡片开发框架)提供了一种在桌面、锁屏等系统入口嵌入显示应用信息的开发框架和API,可以将应用内用户关注的重要信息或常用操作抽取到服务卡片(以下简称“卡片”)上,通过将卡片添加…

缓存之美:万文详解 Caffeine 实现原理(上)

由于社区最大字数限制,本文章将分为两篇,第二篇文章为缓存之美:万文详解 Caffeine 实现原理(下) 大家好,我是 方圆。文章将采用“总-分-总”的结构对配置固定大小元素驱逐策略的 Caffeine 缓存进行介绍&…

C# 多线程同步(Mutex | Semaphore)

Mutex: 用于保护临界区,确保同一时间只有一个线程能够访问共享资源; Semaphore: 允许同时有多个线程访问共享资源,但会限制并发访问的数量。 Mutex运行输出 Semaphore运行输出 namespace SyncThreadDemo {internal class Program{static stri…

C++从入门到实战(二)C++命名空间

C从入门到实战(二)C命名空间 前言一、C的第一个程序二、命名空间(一)为什么需要命名空间(二)定义命名空间(三)使用命名空间1.通过命名空间限定符:2.使用 using 声明&…

广西螺蛳粉:舌尖上的美食传奇

广西螺蛳粉:舌尖上的美食传奇 在广西壮族自治区,有一种小吃以其独特的酸辣鲜香和丰富的历史文化底蕴,成为了无数食客心中的美食传奇——这就是广西螺蛳粉。 一、历史渊源 螺蛳粉最早出现于20世纪70年代末的柳州市,是柳州人民对美食的创新与智慧的结晶。早在40多年前,大量的螺…

基于本地事务表+MQ实现分布式事务

基于本地事务表MQ实现分布式事务 引言1、原理2、本地消息表优缺点3、代码实现3.1、代码执行流程3.2、项目结构3.3、项目源码 引言 本地消息表的方案最初由ebay的工程师提出,核心思想是将分布式事务拆分成本地事务进行处理。本地消息表实现最终一致性。本文主要学习…

Java 大视界 -- Java 大数据中的知识图谱构建与应用(62)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

LVGL+FreeRTOS实战项目:智能健康助手(Max30102篇)

MAX30102 心率血氧模块简介 功能:用于检测心率和血氧饱和度,集成了红外和红光 LED 以及光电二极管。 接口:支持 I2C 通信,默认 I2C 地址为 0x57。 应用:广泛用于健康监测设备中,如智能手环、手表等。 硬…

计算机网络 (59)无线个人区域网WPAN

前言 无线个人区域网(WPAN,Wireless Personal Area Network)是一种以个人为中心,采用无线连接方式的个人局域网。 一、定义与特点 定义:WPAN是以个人为中心,实现活动半径小、业务类型丰富、面向特定群体的无…

【优选算法】9----长度最小的子数组

----------------------------------------begin-------------------------------------- 铁子们,前面的双指针算法篇就算告一段落啦~ 接下来是我们的滑动窗口篇,不过有一说一,算法题就跟数学题一样,只要掌握方法,多做…

第十四讲 JDBC数据库

1. 什么是JDBC JDBC(Java Database Connectivity,Java数据库连接),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系型数据库,并使用SQL语句来完成对数据库中数据的查询、新增、更新和删除等操作…

Java面试题2025-Mysql

1.什么是BufferPool? Buffer Pool基本概念 Buffer Pool:缓冲池,简称BP。其作用是用来缓存表数据与索引数据,减少磁盘IO操作,提升效率。 Buffer Pool由缓存数据页(Page) 和 对缓存数据页进行描述的控制块 组成, 控制…

Golang:使用DuckDB查询Parquet文件数据

本文介绍DuckDB查询Parquet文件的典型应用场景,掌握DuckDB会让你的产品分析能力更强,相反系统运营成本相对较低。为了示例完整,我也提供了如何使用Python导出MongoDB数据。 Apache Parquet文件格式在存储和传输大型数据集方面变得非常流行。最…

Linux网络之TCP

Socket编程--TCP TCP与UDP协议使用的套接字接口比较相似, 但TCP需要使用的接口更多, 细节也会更多. 接口 socket和bind不仅udp需要用到, tcp也需要. 此外还要用到三个函数: 服务端 1. int listen(int sockfd, int backlog); 头文件#include <sys/socket.h> 功能: …

工业相机 SDK 二次开发-Halcon 插件

本文介绍了 Halcon 连接相机时插件的使用。通过本套插件可连接海康 的工业相机。 一. 环境配置 1. 拷贝动态库 在 用 户 安 装 MVS 目 录 下 按 照 如 下 路 径 Development\ThirdPartyPlatformAdapter 找到目录为 HalconHDevelop 的文 件夹&#xff0c;根据 Halcon 版本找到对…

axios架构设计和原理

1. 前端请求方式 原生XHR&#xff1a;最初&#xff0c;在Web开发的早期&#xff0c;前端请求库的唯一选择是使用XMLHttpRequest&#xff08;XHR&#xff09;对象。XHR提供了一种在浏览器中发起HTTP请求的方式&#xff0c;但使用XHR需要编写大量重复的代码&#xff0c;并且缺乏…