【语音编码】基于matlab LPC编解码【含Matlab源码 554期】
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【语音编码】基于matlab LPC编解码【含Matlab源码 554期】
获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、LPC编码简介
利用线性预测可以改进编码中的量化器性能。因为预测误差e(n)的动态范围和平均能量均比输人信号x(n) 小, 如果对e(n) 进行量化和编码, 则量化bit数将减少。在接收端,只要使用与发送端相同的预测器,就可恢复原信号x(n)。基于这种原理的编码方式称为预测编码(Predictive Coding,PC) ; 当预测系数是自适应随语音信号变化时, 又称为自适应预
测编码(Adaptive PC,APC) 。图9-10为一个基本的APC系统。
语音数据流一般分为10~20ms相继的帧,而预测器系数(或其等效参数)则与预测误差一起传输。在接收端,用由预测器系数控制的逆滤波器再现语音。采用自适应技术后,预测器P(z)要自适应变化,以便与信号匹配。预测编码的优点之一是能够改善信噪比。
根据信号量化噪声比的定义有
正如在前面介绍的那样,语音信号中存在两种类型的相关性,即在样点之间的短时相关性和相邻基音周期之间的长时相关性。因为浊音信号具有准周期性,所以相邻周期的样本之间具有很大的相关性。因而在进行相邻样本之间的预测之后,预测误差序列仍然保持这种准周期性,为此,可以通过再次预测的方法来压缩比特率,即根据前面预测误差中的脉冲消除基音的周期性,这种预测称为基于基音周期的预测。相邻样本之间的预测利用了相邻的样本值,所以称为“短时预测”,它实际上是频谱包络的预测;而为了区别于短时预测,将基于基音周期的预测称为“长时预测”,它实际上是基于频谱细微结构的预测。
利用线性预测对语音进行这两种相关性的去相关处理后,得到的是预测余量信号。如果用预测余量信号作为激励信号源,输人长时预测滤波器,再将其输出作为短时预测滤波器的
输入,即可在输出端得到解码后的合成语音信号。
预测编码系统中,输出和输人语音之间存在误差,这种误差是由量化引起的,所以也被称为量化噪声。量化噪声的谱一般是平坦的。预测器预测系数是按均方误差最小准则来确定的,但均方误差最小并不等于人耳感觉到的噪声最小。由于听觉的掩蔽效应,对噪声主观上的感觉,还取决于噪声的频谱包络形状。通过对噪声频谱整形可使其变得不易被察觉,如果能使噪声谱随语音频谱的包络变化,则语音共振峰的频率成分就必然会掩盖量化噪声。
虽然采用了线性预测、自适应量化和噪声抑制等手段, 使APC系统稍微变得复杂, 但
是, 实验表明该系统在16kbit/s时可得到与7bit的对数PCM同等的语音质量(35dB信噪
比)。
三、部分源代码
clc
close all
clear all
[x,fs]=audioread('手放开.wav');
- 1
- 2
- 3
- 4
四、运行结果
五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.
[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/114977492
- 点赞
- 收藏
- 关注作者
评论(0)