语音信号的A律压缩和u律压缩matlab仿真

news2024/11/16 16:01:27

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

4.1 A律压缩算法

4.2 μ律压缩算法

5.算法完整程序工程


1.算法运行效果图预览

2.算法运行软件版本

MATLAB2022a

3.部分核心程序

clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
rng('default')

[y, fs] = audioread('signal.wav');

%=======A律编解码===================================
figure(1);
subplot(311),plot(y);
title('语音信号');
code2=alaw(y);
subplot(312),plot(code2);
title('A律编码语音信号');
u_code2=unalaw(code2);
subplot(313),plot(u_code2);
title('A律解码语音信号');
error2=u_code2-y;
figure(2);
plot(error2);
title('A律编解码误差');

%=======U律编解码===================================
figure(3);
subplot(311),plot(y);
title('语音信号');
code3=mulaw(y);
subplot(312),plot(code3);
title('U律编码语音信号');
u_code3=unmulaw(code3);
subplot(313),plot(u_code3);
title('U律解码语音信号');
error3=u_code3-y;
figure(4);
plot(error3);
title('U律编解码误差');
03_010m

4.算法理论概述

       语音信号的量化过程是将采样后的信号按整个声波的幅度划分成有限个区段的集合,把落入某个区段内的样值归为一类,并赋于相同的量化值。采取二进制的方式,以8位或16位的方式来划分纵轴。也就是说在一个以8位为记录模式的音效中,其纵轴将会被划分为个量化等级,用以记录其幅度大小。采样原理的示意图如图所示:

       非均匀量化,用数字值表示采样后的信号幅度值的过程即为量化,量化后信号就变成了数字信号。量化可以分为均匀量化和非均匀量化两种。量化过程会产生量化误差。而量化误差在接收端的表现形式即为量化噪声。非均匀量化根据幅度的不同区间来确定量化间隔,幅度小的区间量化间隔小,幅度大的区间量化间隔大,故可以有效改善小型号的量噪比。A律压缩和μ律压缩是一种常见的语音信号压缩技术,用于在数字通信中对语音信号进行编码。这些算法可以有效地减少数据传输所需的比特数,同时保持足够的音频质量。本文将详细介绍A律压缩和μ律压缩算法的原理、实现以及应用领域。 

4.1 A律压缩算法

        A律压缩是一种非线性压缩算法,常用于8位PCM(脉冲编码调制)语音信号的压缩。其原理是通过对输入信号的幅度进行非线性映射,以便在更小的比特数上表示信号。A律压缩使用以下数学公式:

       其中x表示为归一化的压缩器输入电压;y为归一化的压缩器输出电压,A为压扩参数,表示压缩程度。很明显,小信号时为线性特性,大信号时近似为对数特性。这种压扩特性常把压缩、量化和编码合为一体。A律可用13段折线逼近(相当于A=87.6),便于用数字电路实现。 

       A律13折线特性曲线如下所示:

4.2 μ律压缩算法

       μ律压缩是一种类似于A律压缩的非线性压缩算法,通常在欧洲和亚洲地区使用。μ律压缩同样通过非线性映射来减小输入信号的幅度范围,从而降低所需的比特数。μ律压缩使用以下数学公式:

       μ律压缩在欧洲和亚洲的语音通信系统中广泛应用。类似于A律压缩,它可以有效地降低传输带宽,并保持合理的语音质量。μ律(m-Law)压扩主要用在北美和日本等地区的数字电话通信中。m为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比,通常取100≤m≤500。

        A律压缩和μ律压缩算法是在数字通信中常用的语音信号压缩技术。通过非线性映射,它们可以有效地减小数据传输所需的比特数,同时保持合理的语音质量。选择适当的算法取决于地区和特定应用的要求。

5.算法完整程序工程

OOOOO

OOO

O

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

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

相关文章

DanceFight VoxEdit 大赛

准备好让自己的创造力更上一层楼了吗?别再犹豫了,The Sandbox 将为你们带来一场激动人心的挑战,让你们的 VoxEdit 技能和舞蹈动作激情四射!准备好参加终极数字盛会——DanceFight VoxEdit 大赛!🕺&#x1…

物理层扩展以太网

扩展站点与集线器之间的距离:   在10BASE-T星型以太网中,可使用光纤和一对光纤调制解调器来扩展站点与集线器之间的距离。   为站点和集线器各增加一个用于电信号和光信息号转换的光纤调制解调器,以及他们之间的通信光纤。 扩展共享式以太…

ICS PA0

目录 环境配置工具的使用及相关资源Compling and Running NEMU配置系统make menuconfig项目构建make运行与调试 Submit 环境配置 Ubuntu安装中的分区不太明白安装了中文输入法和必要的工具链虚拟机与主机互联 工具的使用及相关资源 vim(vimtutor是vim的一个内置教…

Nginx跳转模块——location与rewrite

一、location 1、location作用 用于匹配uri(文件、图片、视频) uri:统一资源标识符。是一种字符串标识,用于标识抽象的或物理资源文件、图片、视频 2、locatin分类 1、精准匹配:location / {...} 2、一般匹配&a…

【80天学习完《深入理解计算机系统》】第三天 2.3 整数运算【正负溢出】【运算的溢出】【类型转换的二进制扩展】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754)

ATF(TF-A)安全通告汇总 目录 一、ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754) 二、Variant 1 (CVE-2017-5753) 三、Variant 2 (CVE-2017-5715) 四、Variant 3 (CVE-2017-5754) 一、ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, C…

向量数据库介绍

1.什么是向量数据 向量数据库是一种专门用于存储和检索向量数据的数据库。它不同于传统的关系型数据库,而是基于向量相似度匹配的方式来实现高效的数据查询和分析。 向量数据库的应用场景非常广泛,包括但不限于以下几个方面: 图片、音频和视频…

微服务02-docker

1、Docker架构 1.1 镜像和容器 Docker中有几个重要的概念: 镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。Docker镜像是用于创建 Docker 容器的模板 。就像面向对象编…

js代码执行顺序(同步与异步)

1.同步与异步 异步任务又分为宏任务和微任务 2.执行规则 同步代码遇到,直接执行Promise中.then前的代码直接执行,.then后的代码丢入微任务队列中遇到定时器直接将里面的代码丢入宏任务队列中同步代码执行完,去看微任务,有则执行;再去看宏任务&#xf…

文件的权限

1、修改文件的所属者和所属组 2、修改文件某一类人(所属者、所属组、其他人)的权限 一、用户对于普通文件的权限 二、用户对于目录文件的权限 三、访问控制列表ACL 四、特殊权限(了解) wuneng创建了几个文件,xiaoming对…

【C语言】预处理详解

本文目录 1 预定义符号 2 #define 2.1 #define 定义标识符 2.2 #define 定义宏 2.3 #define 替换规则 2.4 #和## 2.5 带副作用的宏参数 2.6 宏和函数对比 2.7 命名约定 3 #undef 4 命令行定义 5 条件编译 6 文件包含 6.1 头文件被包含的方式 6.2 嵌套文件包含 1 预定义符号 __…

2023亚马逊秋季大促定档!卖家要做好准备!

亚马逊Prime秋季促销,又称亚马逊Prime会员早享日(Prime Early AccessSale),是亚马逊在2022年才正式推出的一个面向Prime会员的促销活动,与每年7月举办的Prime Day大促是同等级活动,去年秋季大促也是在10月举…

C - The Battle of Chibi

题意:就是问你数组中长度为m的上升子序列(没说连续)有多少个。 1:可以想到状态表示dp[ i ][ j ] 代表以 a[i] 为结尾的且长度为 j 的严格单增子序列的数目, 那么状态计算就为 , 那我们如果不优化直接写,一层n&am…

数据结构刷题训练——链表篇(一)

目录 前言 题目一:链表的中间节点 思路 分析 题解 题目二:链表中倒数第k个结点 思路 分析 题解 题目三:合并两个有序链表 思路 分析 题解 方法二 题解 题目四:链表的回文结构 思路 分析 题解 总结 前言 今天我将开…

家政小程序开发制作

家政小程序是一种基于移动互联网的工具,旨在为用户提供方便快捷的家政服务。下面是家政小程序的功能介绍: 1. 家政服务展示:家政小程序可以展示各类家政服务的详细信息,包括清洁、保姆、月嫂、保洁等多种服务项目,以及…

【vue3】基础知识点-pinia

学习vue3,都会从基础知识点学起。了解setup函数,ref,recative,watch、computed、pinia等如何使用 今天说vue3组合式api,pinia 戳这里,跳转pinia中文文档 官网的基础示例中提供了三种写法 1、选择式api&a…

性能测试场景分析并设计?超细案例讲解

前言 性能测试场景,其实和功能测试没什么区别,只是侧重点不同。 我们在功能测试中经常用到的等价类边界值等分析和设计测试case的方法,目的是为了尽可能的覆盖业务场景,避免遗漏导致的功能逻辑缺失或者未达到预期。 而在性能测试…

【C++】初识模板

C模板入门 一、泛型编程 二、函数模板1. 函数模板的概念2. 函数模板格式3. 函数模板的原理4. 函数模板的实例化5. 模板参数的匹配原则 三、类模板 一、泛型编程 假设我们想实现一个交换函数,并且支持不同类型的参数实现,我们可以用 typedef 将类型进行重…

V2MOM工作法

V2MOM分别代表愿景(vision)、价值(values)、方法(methods)、障碍(obstacles)、衡量指标(measurement)。 第一,我真正想要的是什么呢?这…

ubuntu磁盘管理

show partition information 挂载设备在这 显示文件系统信息 build file system mkfs -t ext4 /dev/nvme0n1p4命令作用:将/dev/nvme0n1p4 格式化为 ext4 建立交换分区 mkswap -c -v1 /dev/nvme0n1p4 102400-c:check -v1:新版交换分区 -v0&…