VQ(矢量量化)

参考文献

定义

VQ定义

失真测度

定义

将输入矢量

用码本重构矢量

来表征时所产生的误差的度量方法。

其中,

表示求期望。

欧氏距离测度

设未知模式的

维特征矢量为

,与码本中某个

维码矢

进行比较,

分别表示同一维分量

,有几种常用欧氏距离测度:

均方误差

方平均误差

平均误差

绝对值平均误差

最大平均误差

加权欧氏距离测度

采用不加权的欧氏距离而对特征矢量的各个分量进行预加重

是加权系数,常用的值如下表示:

线性预测失真测度

特别适用于线性预测模型,并用最大似然准则推导出来,所以特别适用于LPC参数描述语音信号的情况。

线性预测失真测度

相关的线性失真测度还包括以下两种:

对数似然比失真测度

模型失真测度

以上2种失真测度的局限性在于:只比较了两个矢量的功率谱,而没有考虑能量信息。

识别失真测度

在功率谱的基础上,考虑了能量信息

式中,

为输入信号及码矢的归一化能量,

为加权因子,

可以按下式选取:

的意义:当两个矢量的能量接近时,忽略能量引起的影响;当能量相差较大时,则进行线性加权;当能量超过门限

时,则为某一固定值。参数

要经过实验来确定。

矢量量化器

设计

根据最小失真的方法设计

式中,

矢量量化原理

传输速率

每个样值(每维)平均编码所需的比特数。

矢量量化器传输速率的定义

核心算法

问题设计

给定

(训练集)和

(码矢数目),找到能使

(平均失真度)最小的

(码书)和

(空间划分)。关键问题是如何划分量化空间和确定量化矢量。

问题设计

优化准则

优化准则

下面是

(码书)和

(空间划分)相互迭代优化的过程:

最佳划分

最佳码书

递推算法——LBG

简介

LBG算法可以用于已知信源分布特性的场合,也可以用于未知信源分布特性,但要知道它的一列输出值(训练序列)。对于说话人识别来说,由于语音难以准确得到多维概率分布,所以通常使用训练序列来设计矢量量化器。

给定训练序列来设计量化器的步骤

已知训练序列的设计算法

流程图

流程图

初始码书的选定与空胞腔的处理

初始码书的选定与空胞腔的处理

根据上图中的分裂法得到的具体过程:

初始码书基于分裂法开始

疑点

为什么计算总失真度的时候,分母是

,即,不仅要对样本个数取均值,还要对样本维数取均值?

改进环节

对失真测度的探讨,码书的设计,各种矢量量化系统的研究及快速搜索算法的寻找。

Matlab实现

矢量量化编码器块将每个输入列向量与码本矩阵中的码字向量进行比较。这个码本矩阵的每一列都是一个码字。块查找最接近输入列向量的码字向量并返回其从零开始的索引。此块支持所有输入端口上的浮点和定点信号。

image.png

根据《数字语音处理及MATLAB仿真》_张雪英P121页内容做些改动,此程序完成对一段语音的码本求解,输入数据是原始波形,应该稍作改进,比如更改为MFCC或LPCC等参数;也许是过于简单,码本迭代次数niter始终是2;欢迎大家指正交流:

https://gitee.com/zhouwenjun2020/Speaker-Verification-Algorithm/tree/master/VQ/%E7%A0%81%E6%9C%AC%E7%94%9F%E6%88%90

vq矢量量化lbg matlab,应用VQ的说话人识别系统|Matlab实现相关推荐

  1. VQ矢量量化 LBG算法 c++代码实现 详细注释

    参考: 1.语音信号处理之(三)矢量量化(Vector Quantization) 这篇真的是非常厉害,在CSDN很多矢量量化的文章都是参考了这篇文章 2.矢量量化 百度文库的PPT,详细的描述了矢量 ...

  2. 基于VQ矢量量化的说话人识别(应用于门禁识别)

    文章目录 1.功能演示 2.核心matlab代码 3.2021年12月2日更新(开源matlab源码) 3.1 资源获取 3.2 如何使用 3.3 算法流程图及介绍 1.功能演示 1.添加说话人 2. ...

  3. 矢量量化——LBG算法

    我的运行环境为win7 vs2013,刚打开源代码时出现错误:#include <unistd.h>无法打开源代码,原因是头文件unistd.h是Linux/Unix的系统调用,所以必须把 ...

  4. 信号与系统 matlab实验报告,信号与系统Matlab实验报告模板

    信号与系统Matlab实验报告模板 姓名: 实验名称:连续系统的频率响应分析 学号: 实验时间:2010.5.19 评语: 一.实验目的 1. 深入理解系统频率响应的物理意义 2. 掌握利用Matla ...

  5. 码分复用matlab仿真代码,频分复用时分复用系统MATLAB仿真.doc

    频分复用时分复用系统MATLAB仿真 上海大学2013-2014学年冬季学期 "通信原理"课程项目报告 课程名称: <通信原理> 课程编号: 项目名称和内容: 搭建一个 ...

  6. 信号与系统 matlab实验报告,信号与系统 MATLAB实验报告

    文档收集于互联网,已重新整理排版.word 版本可编辑,有帮助欢迎下载支持. 1文档来源为:从网络收集整理.word 版本可编辑. <信号与系统>MATLAB 实验报告 院系: 专业: 年 ...

  7. matlab冲激函数delta,信号与系统matlab实验指导书解决方案.doc

    实验一 基本信号的波形 一.实验目的: 1.掌握matlab软件的基本操作. 2.熟悉matlab的基本命令的使用. 3.掌握用matlab绘出基本信号. 二.实验原理: 1. 信号的时域表示方法 1 ...

  8. 信号与系统 matlab实验报告,信号与系统Matlab实验报告

    实验一MATLAB 程序入门和基础应用 一.实验名称 MATLAB 程序入门和基础应用 二.实验目的 1.学习Matlab软件的基本使用方法: 2.了解Matlab的数值计算,符号运算,可视化功能: ...

  9. matlab 图像矢量量化,MATLAB环境下基于矢量量化的说话人识别系统(1)

    第21卷第6期湖 北 工 业 大 学 学 报2006年12月 Vol.21No.6 Journal of Hubei Univer sity of Technology Dec.2006 [收稿日期] ...

最新文章

  1. Wireshark命令行工具tshark使用小记
  2. jsp mysql增加_jsp+mysql实现增加,查看功能
  3. InnoDB与MyISAM引擎区别
  4. BAPI FOR MD61,MD62,MD63
  5. Java Okio-更加高效易用的IO库
  6. Linux 虚拟机 安装 vmware-tools
  7. Hive 1.2.1SparkSqoop安装指南
  8. Leetcode--5081. 步进数
  9. [视频教程]用Unity3d开发跳一跳小游戏
  10. PHP读取TXT中文乱码的解决方法
  11. python装饰器详解-这是我见过最全面的Python装饰器详解!没有学不会这种说法!...
  12. Hadoop常见命令总结
  13. 基于 Flink 构建 CEP 引擎的挑战和实践
  14. configure: error: readline library not found/libreadline.so: undefined reference to tputs
  15. C语言从入门到精通所需的7本书
  16. HTML5 第004篇 <abbr>标签【定义缩写】
  17. 进阶:主流的cpu插槽类型详解
  18. Android GPS中间层驱动开发调试
  19. 台式计算机开机没反应,台式机开机没反应怎么回事
  20. 【CSS特效扫盲】精选40种纯CSS特效应用实例,肝了10个晚上整理纯CSS特效(上)(附源码下载)

热门文章

  1. PMP知识体系中的挣值计算
  2. qml中使用canvas绘制温度计
  3. Angular7简单安装教程
  4. 切换浅色和暗夜模式的vue组件 darkmode-switch-btn
  5. 上下左右键控制ultraGrid单元格数据的移动
  6. TransformGizmo(变换)切换
  7. 考试系统服务器架构,系统架构师考试浏览器/服务器风格
  8. 砥砺的前行|基于labview的机器视觉图像处理|NI Vision Assisant(二)——界面介绍
  9. iOS: UIScrollView的属性dragging
  10. error LNK2001: 无法解析的外部符号 _sscanf 问题 解决方法