当前位置: 首页 > news >正文

通信原理实验——PCM编译码

PCM编译码

  • 实验目的

  1. 理解PCM编译码原理及PCM编译码性能
  2. 熟悉PCM编译码专用集成芯片的功能和使用方法及各种时钟关系
  3. 熟悉语音数字化技术的主要指标及测量方法
  • 主要仪器设备及软件

硬件:多功能实验箱、示波器、导线

软件:无

  • 实验原理

1. 抽样信号的量化原理

抽样信号的量化是将连续的模拟信号转换为离散的数字信号的过程。其原理如下:

  1. 将连续的模拟信号进行采样,得到一系列的采样值。
  2. 将采样值映射为离散的数字量。具体地,将采样值划分为若干个离散的量化级别,每个量化级别对应一个数字量。例如,将采样值划分为256个量化级别,每个量化级别对应一个8位二进制数字量。
  3. 将每个采样值映射为其所在的量化级别对应的数字量。具体地,将采样值与量化级别进行比较,确定其所在的量化级别,并将该量化级别对应的数字量作为该采样值的量化结果。
  4. 将量化结果编码为数字信号。具体地,将每个量化结果转换为对应的二进制数字,并将这些二进制数字组合为数字信号输出。

2PSK调制具有简单、易实现的优点,但由于只有两个相位角度,传输速率较低,且对于噪声和干扰的抵抗能力较弱。因此,在实际应用中,通常采用更高阶的PSK调制方式来提高传输速率和抗干扰性能。

抽样信号的量化可以分为两种方式:均匀量化和非均匀量化。

1、均匀量化

均匀量化是将量化区间等分为若干个等宽的子区间,每个子区间代表一个量化级别。在均匀量化中,量化器的精度由量化区间的数量来决定。均匀量化的优点是实现简单、易于理解和计算,但是在量化低幅度信号时,存在量化误差较大的问题。

2、非均匀量化

非均匀量化是将量化区间划分为不等宽的子区间,每个子区间代表一个量化级别。在非均匀量化中,量化器的精度由量化区间的宽度来决定。非均匀量化的优点是可以在低幅度信号处提供更高的精度,从而减小量化误差。非均匀量化的常见方法包括:

自适应量化:根据信号的幅度动态调整量化区间的宽度,以提高量化精度。

微分量化:在量化之前,先对信号进行微分,再进行均匀量化,从而在低幅度信号处提供更高的精度。

对数量化:将信号转换为对数形式,再进行均匀量化,从而在低幅度信号处提供更高的精度。

总的来说,非均匀量化相对于均匀量化来说可以提供更高的量化精度,但是实现复杂度较高,需要更多的硬件资源。在实际应用中需要根据具体情况选择合适的量化方式。

2. 脉冲编码调制的基本原理

脉冲编码调制(PCM)是一种将模拟信号转换为数字信号的技术,其基本原理如下:

  1. 采样:对模拟信号进行采样,将连续的模拟信号转换为一系列的离散样本。
  2. 量化:将采样值映射为离散的数字量。具体地,将采样值划分为若干个离散的量化级别,每个量化级别对应一个数字量。例如,将采样值划分为256个量化级别,每个量化级别对应一个8位二进制数字量。
  3. 编码:将每个采样值映射为其所在的量化级别对应的数字量。具体地,将采样值与量化级别进行比较,确定其所在的量化级别,并将该量化级别对应的数字量作为该采样值的量化结果。
  4. 调制:将数字量转换为脉冲信号。具体地,将每个数字量转换为对应的二进制数字,并将这些二进制数字组合为脉冲信号输出。常见的调制方式包括脉冲振幅调制(PAM)、脉冲宽度调制(PWM)和脉冲位置调制(PPM)等。

3. PCM编码硬件实现

PCM编码的硬件实现通常包括以下几个模块:

  1. 采样模块:采样模块通常由模拟信号输入、采样电路和采样保持电路组成。模拟信号通过输入端口进入采样电路,经过采样电路将模拟信号转换为模拟电压值,然后通过采样保持电路将采样值保持在一个电容器或者保持电路中,以便后续的量化和编码处理。
  2. 量化模块:量化模块通常由比较器、参考电压源和编码器组成。比较器将采样值与参考电压进行比较,确定其所在的量化级别,并将该量化级别对应的数字量输出。编码器将数字量转换为二进制数字,并输出到调制模块。
  3. 调制模块:调制模块通常由时钟、计数器、寄存器和输出缓冲器组成。时钟提供时序信号,计数器计算时钟的周期数,寄存器存储采样值的二进制数字,输出缓冲器将二进制数字转换为脉冲信号输出。
  4. 控制模块:控制模块通常由微处理器、控制逻辑和时序控制电路组成。微处理器负责控制整个PCM编码系统的工作流程,控制逻辑负责控制各个模块的工作状态,时序控制电路负责控制时序信号的生成和分配。

这里我们使用TP3057实现PCM编译码。TP3057是一种集成了PCM编码与解码功能的芯片,被广泛应用于计算机音频、数码音频、语音存储、数字通信和音频播放等领域。它内部集成了采样、量化、编码和调制等各种模块,能够实现高质量的数字信号处理。

下面是TP3057实现PCM编码的主要步骤

  1. 采样电路:TP3057内部集成了采样电路,用于对输入的模拟信号进行采样。采样电路的工作频率可通过外部晶振进行设置,通常为8kHz。采样值将被传输到量化模块进行处理。
  2. 量化模块:TP3057内部的量化模块使用了24位的宽动态范围ΔΣ模数转换器。该模块首先将采样值限制到一个固定的量化范围内,然后使用ΔΣ调制算法将其编码成数字信号。ΔΣ调制算法使用高速脉冲序列来表示数字信号,通过计算这些脉冲的密度来提高编码的精度。
  3. 调制器:TP3057内部的调制器使用了PLL锁相环技术生成高精度的时钟信号,并将数字信号转换为高速序列脉冲,输出到输出缓冲器中。
  4. 输出缓冲器:TP3057内部的输出缓冲器负责将二进制码流转换成可输出的数字信号,并提供电平调制信号。将该信号输入到数字信号解调器中将其转换回模拟信号。

此外,TP3057还支持数字信号的解码,可以将数字信号转换成模拟信号。通过相应的接口,TP3057可以方便地与其他数字电路、计算机或音频系统连接起来,实现高质量、可靠的数字信号处理。

  • 实验电路图

节点说明

1.DDS1:模拟信号输出

2.P04:扬声器输入

3.3P1:原始信号的输入铆孔

4.3P3:带限输出铆孔

5.3P4:编码输出

6.3P5:PCM译码输入

7.3P6:模拟信号恢复输出

8.3P7:抽样脉冲

9.3P8:线路时钟

  • 实验步骤和实验结果

1.设置有关实验模块

打开多功能实验箱,了解基础操作,设置实验模块。实验内容选择:实验项目->原理实验->信源编译码实验->PCM编译码原理。

2.导线连接

使用信号连接线按照实验电路图进行连接。

3. 接入示波器

打开示波器开关,将导线接入实验箱的对应要测量的节点。

4. PCM译码观测

用导线连接3P4和 3P5,此时将PCM输出编码数据直接送入本地译码器,构成自环。用示波器同时观测输入模拟信号3TP1和译码器输出信号3TP6,观测信号时以3TP1做同步。定性的观测解码信号与输入信号(1000HZ、2Vpp)的关系:质量、电平、延时。4.PCM频率响应测量

将测试信号电平固定在2Vp-p,调整测试信号频率,定性的观测译码恢复出的模拟信号电平。观测输出信号信电平相对变化随输入信号频率变化的相对关系。用点频法测量。测量频率范围:200Hz~~4000Hz。

5. PCM译码失真测量

将测试信号频率固定在1000Hz,改变测试信号电平(输入信号的最大幅度为5Vp-p),用示波器定性的观测译码恢复出的模拟信号质量(通过示波器对比编码前和译码后信号波形平滑度)。

使用双踪示波器分别观察2P1和2P3,点击“基带设置”按钮,设置基带速率为“15-PN”“64K”,点击“设置”进行修改。观察示波器观测波形的变化,理解并掌握基带数据设置的基本方法。

6. PCM编译码系统增益测量

DDS1产生一个频率为100OHz、电平为2Vp-p的正弦波测试信号送入信号测试端口3P1。用示波器(或电平表)测输出信号端口(3TP6)的电平。将收发电平的倍数(增益)换算为dB表示。

7.关机拆线

实验结束,关闭电源,拆除导线,还原实验箱。

  • 实验成果

1.定性描述PCM编译码的特性、编码规则,并填下表

频率:1kHZ

幅度:2Vpp

样点1

样点2

样点3

样点4

样点5

样点6

样点7

样点8

量化值

466

-269

-860

-951

-492

269

860

951

编码值

11011

110

01010

001

01101

011

01101

110

01011

111

11010

001

11101

011

11101

110

2.描述PCM编码串行同步接口的时序关系

PCM编码串行同步接口的时序关系如下:

1. 主机向PCM编码器发送同步信号,使其处于同步状态。

2. 主机发送时钟信号,使PCM编码器按照指定的采样率进行采样。

3. PCM编码器将采样到的模拟信号转换为数字信号,并将其编码为PCM码。

4. PCM编码器将编码后的PCM码按照位序列的顺序,依次输出到串行数据线上。

5. 主机在时钟信号的边沿上读取串行数据线上的数据,并进行解码和处理。

6. 主机发送同步信号,使PCM编码器进入下一个采样周期,重复以上步骤。

3.填下下表,并画出 PCM的频响特性

输入频率(Hz)

200

500

800

1000

2000

3000

3400

3600

输出幅度(V)

3

5

6

10

12

13

16

19

4.填下下表,并画出PCM的动态范围:输入幅度(V)

输入幅度(V)

1

1.5

2

2.5

3

3.5

4

5

输出幅度

2

2.4

3

3.5

4

5.1

6

9

  • 实验小结

通过本次实验理解PCM编译码原理及PCM编译码性能;熟悉PCM编译码专用集成芯片的功能和使用方法及各种时钟间的关系;熟悉语音数字化技术的主要指标及测量方法;PCM编码原理验证,理解带限滤波器作用、A律编码规则;PCM编译码性能测量,观测编译码电路频响、时延、失真、增益等。

相关文章:

通信原理实验——PCM编译码

PCM编译码 实验目的 理解PCM编译码原理及PCM编译码性能熟悉PCM编译码专用集成芯片的功能和使用方法及各种时钟关系熟悉语音数字化技术的主要指标及测量方法 主要仪器设备及软件 硬件:多功能实验箱、示波器、导线 软件:无 实验原理 1. 抽样信号的量…...

matlab的strel()函数的使用方法(OK)

这个函数 是形态学的结构元素 使用方法如下 SE strel(nhood) SE strel("diamond",r) SE strel("disk",r) SE strel("disk",r,n) SE strel("octagon",r) SE strel("line",len,deg) SE strel("rectangle",…...

Linux:Linux权限解析

一、Linux下的用户分类 在Linux下,有两种用户,一种是超级用户,一种是普通用户 超级用户:可以再linux系统下做任何事情,不受权限限制(制定规则,但不需要遵守规则) 普通用户&#xff1…...

Spring面试篇章——IOC

IOC概念和原理 IOC概念 IOC就是控制反射,把对象创建和对象之间的调用过程,交给Spring进行管理使用IOC的目的:降低耦合度 IOC底层原理 xml解析、工厂模式、反射 图解: 原始模式 耦合度太高了,即当dao改了&#xf…...

适合制造业的项目管理软件都有哪些?

项目管理软件涉及进度、预算成本、资源、开发、流程、质量、风险、工时、知识文档、商务等各个方面,是企业项目管理领域的重要辅助工具,能够帮助组织提高项目管理水平与质量,确保项目顺利进行。 一、 奥博思 PowerProject 项目管理系统 Pow…...

微应用(Micro-Applications)、微前端(Micro Frontend)、Qiankun 框架之间的区别和联系

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo :联系我们:VX :tja6288 / EMAIL: 347969164@qq.com 文章目录 微应用(Micro-Applications)、微…...

String的底层构造

1.String类对象的构造&#xff08;后面有每一个接口的实现&#xff09; #define _CRT_SECURE_NO_WARNINGS 1 #pragma once #include<iostream> #include<assert.h> using namespace std;namespace bit {class string{public:typedef char* iterator;typedef const…...

Binder机制的原理

Binder机制是Android系统中用于进程间通信&#xff08;IPC&#xff09;的核心机制&#xff0c;它基于C/S&#xff08;客户端-服务端&#xff09;模型&#xff0c;允许不同进程间进行高效的通信和数据交换。以下是对Binder机制原理的详细解析&#xff1a; 1. Binder架构 Binde…...

JavaScript输出数据的方法?

在JavaScript中&#xff0c;输出数据有以下几种方法&#xff1a; 使用console.log()函数&#xff1a;使用console.log()函数可以将数据输出到浏览器的控制台&#xff0c;例如&#xff1a; console.log("Hello, World!");使用alert()函数&#xff1a;使用alert()函数…...

Redis学习笔记——第19章 事务

第19章 事务 19.1 事务的实现 19.1.1 事务开始 使用multi命令开启一个事务 通过修改客户端的flags字段为REDIS_MULTI 19.1.2 命令入队 当开启事务之后&#xff0c;exec、discard、watch、multi命令立即执行&#xff0c;而其他命令会放入一个队列中&#xff0c;并返回Queue…...

元太电磁膜SUDE-10S19MI-01X驱动适配

屏规格书&#xff1a; dts配置&#xff1a; 首先要确保CONFIG_I2C_HID宏打开&#xff0c;i2c-hid-core.c 文件才能编译进去代码。规格书vendor product 分别为0x2d1f 和0x0165 来区别&#xff0c;不至于影响到整体的hid其他设备。 i2c-hid-dev10 { compatible "hid-…...

C#数据类型 全局变量 类型转换方法(汇总)

1、C#和S7-1200PLC S7.NET通信 C#和S7-1200PLC S7.NET通信-CSDN博客文章浏览阅读98次。一步步建立一个C#项目(连续读取S7-1200PLC数据)_s7协议批量读取-CSDN博客这篇博客作为C#的基础系列&#xff0c;和大家分享如何一步步建立一个C#项目完成对S7-1200PLC数据的连续读取。首先…...

HCIP重修总笔记(中)

第八节 BGP基础 一、BGP产生背景 BGPBorder Gateway Protocol&#xff0c;边界网关协议)是一种用于自治系统间的动态路出协议&#xff0c;是一种外部网关协议。 自治系统AS:一组同一个管理机构进行管理&#xff0c;对外呈现统一选路策略的路由器的集合。 自治系统编号: …...

图片搜索网站,有大量高清图片,避免版权纠纷

一、简介 1、一个图片搜索网站&#xff0c;所有图片均遵循CC0协议&#xff0c;用户可以免费用于商业用途而无需标注来源。网站上有大量高清图片&#xff0c;基本可以满足用户的各种需求&#xff0c;同时避免了法律风险。提供强大的筛选功能&#xff0c;用户可以按图片方向、尺寸…...

设计学习笔记8:在设计模式中,状态模式和策略模式有什么区别,它们各自适用于什么场景?

基本介绍 状态模式&#xff08;State Pattern&#xff09;和策略模式&#xff08;Strategy Pattern&#xff09;都是行为型设计模式&#xff0c;它们用于处理不同的情景和需求&#xff0c;以下是它们的主要区别和适用场景&#xff1a; 状态模式&#xff08;State Pattern&…...

Android 10.0 系统默认蓝牙打开状态栏显示蓝牙图标功能实现

1.前言 在10.0的系统rom定制化开发过程中,在默认系统中,打开蓝牙开关的时候不会状态栏不会显示蓝牙图标,而只有 蓝牙连接成功后会显示蓝牙图标,客户开发需要要求在蓝牙打开的时候在状态栏就显示蓝牙图标,接下来分析下 相关的状态栏图标显示流程,然后实现相关功能 2.系统…...

在git中如何忽略.vscode目录?

在Git中&#xff0c;如果你想忽略某个特定的文件或目录&#xff08;比如.vscode目录&#xff09;&#xff0c;你可以通过以下步骤来实现&#xff1a; 创建或编辑.gitignore文件 在项目的根目录下&#xff0c;如果还没有.gitignore文件&#xff0c;你需要创建一个。如果已经有了…...

分布式系统

分布式系统是一种由多个相互连接的计算机组成的系统&#xff0c;这些计算机通过网络互相通信并协调行动来完成共同的任务。在分布式系统中&#xff0c;没有单一的物理实体可以控制整个系统&#xff1b;相反&#xff0c;各个节点&#xff08;即计算机&#xff09;独立运行&#…...

【Material-UI】Autocomplete 组件中的事件处理(Events)详解

文章目录 一、事件处理概述二、自定义按键行为代码详解 三、其他常见事件1. onChange 事件2. onInputChange 事件3. onFocus 和 onBlur 事件 四、实用场景1. 自定义提交行为2. 实现快捷键功能3. 动态提示 五、总结 在 Web 开发中&#xff0c;事件处理是实现用户交互的重要一环。…...

【51单片机仿真】基于51单片机设计的钟表定时闹钟系统仿真源码设计文档演示视频——完整资料下载

演示视频 设计内容 &#xff08;1&#xff09;使用 DS1302 结合字符型 LCD12864 显示器设计一个简易的定时闹钟 LCD 时钟。程序执行后 LCD 显示“00&#xff1a;00&#xff1a;00” &#xff08;2&#xff09;K1—设置现在的时间&#xff0c;年闪烁&#xff0c;再按 K1 键月闪…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...