通信原理实验——PCM编译码
PCM编译码
-
实验目的
- 理解PCM编译码原理及PCM编译码性能
- 熟悉PCM编译码专用集成芯片的功能和使用方法及各种时钟关系
- 熟悉语音数字化技术的主要指标及测量方法
- 主要仪器设备及软件
硬件:多功能实验箱、示波器、导线
软件:无
-
实验原理
1. 抽样信号的量化原理
抽样信号的量化是将连续的模拟信号转换为离散的数字信号的过程。其原理如下:
- 将连续的模拟信号进行采样,得到一系列的采样值。
- 将采样值映射为离散的数字量。具体地,将采样值划分为若干个离散的量化级别,每个量化级别对应一个数字量。例如,将采样值划分为256个量化级别,每个量化级别对应一个8位二进制数字量。
- 将每个采样值映射为其所在的量化级别对应的数字量。具体地,将采样值与量化级别进行比较,确定其所在的量化级别,并将该量化级别对应的数字量作为该采样值的量化结果。
- 将量化结果编码为数字信号。具体地,将每个量化结果转换为对应的二进制数字,并将这些二进制数字组合为数字信号输出。
2PSK调制具有简单、易实现的优点,但由于只有两个相位角度,传输速率较低,且对于噪声和干扰的抵抗能力较弱。因此,在实际应用中,通常采用更高阶的PSK调制方式来提高传输速率和抗干扰性能。
抽样信号的量化可以分为两种方式:均匀量化和非均匀量化。
1、均匀量化
均匀量化是将量化区间等分为若干个等宽的子区间,每个子区间代表一个量化级别。在均匀量化中,量化器的精度由量化区间的数量来决定。均匀量化的优点是实现简单、易于理解和计算,但是在量化低幅度信号时,存在量化误差较大的问题。
2、非均匀量化
非均匀量化是将量化区间划分为不等宽的子区间,每个子区间代表一个量化级别。在非均匀量化中,量化器的精度由量化区间的宽度来决定。非均匀量化的优点是可以在低幅度信号处提供更高的精度,从而减小量化误差。非均匀量化的常见方法包括:
自适应量化:根据信号的幅度动态调整量化区间的宽度,以提高量化精度。
微分量化:在量化之前,先对信号进行微分,再进行均匀量化,从而在低幅度信号处提供更高的精度。
对数量化:将信号转换为对数形式,再进行均匀量化,从而在低幅度信号处提供更高的精度。
总的来说,非均匀量化相对于均匀量化来说可以提供更高的量化精度,但是实现复杂度较高,需要更多的硬件资源。在实际应用中需要根据具体情况选择合适的量化方式。
2. 脉冲编码调制的基本原理
脉冲编码调制(PCM)是一种将模拟信号转换为数字信号的技术,其基本原理如下:
- 采样:对模拟信号进行采样,将连续的模拟信号转换为一系列的离散样本。
- 量化:将采样值映射为离散的数字量。具体地,将采样值划分为若干个离散的量化级别,每个量化级别对应一个数字量。例如,将采样值划分为256个量化级别,每个量化级别对应一个8位二进制数字量。
- 编码:将每个采样值映射为其所在的量化级别对应的数字量。具体地,将采样值与量化级别进行比较,确定其所在的量化级别,并将该量化级别对应的数字量作为该采样值的量化结果。
- 调制:将数字量转换为脉冲信号。具体地,将每个数字量转换为对应的二进制数字,并将这些二进制数字组合为脉冲信号输出。常见的调制方式包括脉冲振幅调制(PAM)、脉冲宽度调制(PWM)和脉冲位置调制(PPM)等。
3. PCM编码硬件实现
PCM编码的硬件实现通常包括以下几个模块:
- 采样模块:采样模块通常由模拟信号输入、采样电路和采样保持电路组成。模拟信号通过输入端口进入采样电路,经过采样电路将模拟信号转换为模拟电压值,然后通过采样保持电路将采样值保持在一个电容器或者保持电路中,以便后续的量化和编码处理。
- 量化模块:量化模块通常由比较器、参考电压源和编码器组成。比较器将采样值与参考电压进行比较,确定其所在的量化级别,并将该量化级别对应的数字量输出。编码器将数字量转换为二进制数字,并输出到调制模块。
- 调制模块:调制模块通常由时钟、计数器、寄存器和输出缓冲器组成。时钟提供时序信号,计数器计算时钟的周期数,寄存器存储采样值的二进制数字,输出缓冲器将二进制数字转换为脉冲信号输出。
- 控制模块:控制模块通常由微处理器、控制逻辑和时序控制电路组成。微处理器负责控制整个PCM编码系统的工作流程,控制逻辑负责控制各个模块的工作状态,时序控制电路负责控制时序信号的生成和分配。
这里我们使用TP3057实现PCM编译码。TP3057是一种集成了PCM编码与解码功能的芯片,被广泛应用于计算机音频、数码音频、语音存储、数字通信和音频播放等领域。它内部集成了采样、量化、编码和调制等各种模块,能够实现高质量的数字信号处理。
下面是TP3057实现PCM编码的主要步骤
- 采样电路:TP3057内部集成了采样电路,用于对输入的模拟信号进行采样。采样电路的工作频率可通过外部晶振进行设置,通常为8kHz。采样值将被传输到量化模块进行处理。
- 量化模块:TP3057内部的量化模块使用了24位的宽动态范围ΔΣ模数转换器。该模块首先将采样值限制到一个固定的量化范围内,然后使用ΔΣ调制算法将其编码成数字信号。ΔΣ调制算法使用高速脉冲序列来表示数字信号,通过计算这些脉冲的密度来提高编码的精度。
- 调制器:TP3057内部的调制器使用了PLL锁相环技术生成高精度的时钟信号,并将数字信号转换为高速序列脉冲,输出到输出缓冲器中。
- 输出缓冲器: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系统下做任何事情,不受权限限制(制定规则,但不需要遵守规则) 普通用户࿱…...

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

适合制造业的项目管理软件都有哪些?
项目管理软件涉及进度、预算成本、资源、开发、流程、质量、风险、工时、知识文档、商务等各个方面,是企业项目管理领域的重要辅助工具,能够帮助组织提高项目管理水平与质量,确保项目顺利进行。 一、 奥博思 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类对象的构造(后面有每一个接口的实现) #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系统中用于进程间通信(IPC)的核心机制,它基于C/S(客户端-服务端)模型,允许不同进程间进行高效的通信和数据交换。以下是对Binder机制原理的详细解析: 1. Binder架构 Binde…...
JavaScript输出数据的方法?
在JavaScript中,输出数据有以下几种方法: 使用console.log()函数:使用console.log()函数可以将数据输出到浏览器的控制台,例如: console.log("Hello, World!");使用alert()函数:使用alert()函数…...
Redis学习笔记——第19章 事务
第19章 事务 19.1 事务的实现 19.1.1 事务开始 使用multi命令开启一个事务 通过修改客户端的flags字段为REDIS_MULTI 19.1.2 命令入队 当开启事务之后,exec、discard、watch、multi命令立即执行,而其他命令会放入一个队列中,并返回Queue…...

元太电磁膜SUDE-10S19MI-01X驱动适配
屏规格书: dts配置: 首先要确保CONFIG_I2C_HID宏打开,i2c-hid-core.c 文件才能编译进去代码。规格书vendor product 分别为0x2d1f 和0x0165 来区别,不至于影响到整体的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#的基础系列,和大家分享如何一步步建立一个C#项目完成对S7-1200PLC数据的连续读取。首先…...

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

图片搜索网站,有大量高清图片,避免版权纠纷
一、简介 1、一个图片搜索网站,所有图片均遵循CC0协议,用户可以免费用于商业用途而无需标注来源。网站上有大量高清图片,基本可以满足用户的各种需求,同时避免了法律风险。提供强大的筛选功能,用户可以按图片方向、尺寸…...
设计学习笔记8:在设计模式中,状态模式和策略模式有什么区别,它们各自适用于什么场景?
基本介绍 状态模式(State Pattern)和策略模式(Strategy Pattern)都是行为型设计模式,它们用于处理不同的情景和需求,以下是它们的主要区别和适用场景: 状态模式(State Pattern&…...

Android 10.0 系统默认蓝牙打开状态栏显示蓝牙图标功能实现
1.前言 在10.0的系统rom定制化开发过程中,在默认系统中,打开蓝牙开关的时候不会状态栏不会显示蓝牙图标,而只有 蓝牙连接成功后会显示蓝牙图标,客户开发需要要求在蓝牙打开的时候在状态栏就显示蓝牙图标,接下来分析下 相关的状态栏图标显示流程,然后实现相关功能 2.系统…...
在git中如何忽略.vscode目录?
在Git中,如果你想忽略某个特定的文件或目录(比如.vscode目录),你可以通过以下步骤来实现: 创建或编辑.gitignore文件 在项目的根目录下,如果还没有.gitignore文件,你需要创建一个。如果已经有了…...

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

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

【51单片机仿真】基于51单片机设计的钟表定时闹钟系统仿真源码设计文档演示视频——完整资料下载
演示视频 设计内容 (1)使用 DS1302 结合字符型 LCD12864 显示器设计一个简易的定时闹钟 LCD 时钟。程序执行后 LCD 显示“00:00:00” (2)K1—设置现在的时间,年闪烁,再按 K1 键月闪…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...

论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...

如何把工业通信协议转换成http websocket
1.现状 工业通信协议多数工作在边缘设备上,比如:PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发,当设备上用的是modbus从站时,采集设备数据需要开发modbus主站;当设备上用的是西门子PN协议时…...

EasyRTC音视频实时通话功能在WebRTC与智能硬件整合中的应用与优势
一、WebRTC与智能硬件整合趋势 随着物联网和实时通信需求的爆发式增长,WebRTC作为开源实时通信技术,为浏览器与移动应用提供免插件的音视频通信能力,在智能硬件领域的融合应用已成必然趋势。智能硬件不再局限于单一功能,对实时…...