【语音分析】基于matlab语音线谱对转换【含Matlab源码 560期】

一、简介

线谱对分析是一种频域参数分析方法,这种LPC方法求解的模型参数为线谱对(LSP, Line Spectrum Pair)。LSP在数学上等价于其他LPC参数,如αi。如将声道视为由P+1段声管级联而成,则LSP表示声门完全开启或完全闭合下声管的谐振频率。它也可以用于估计语音的基本特性。因为其为频域参数,因而与语音信号的谱包络的峰联系更为密切。同事LSP有良好的量化和差值特性,因而在LPC声码器中得到应用。目前,表示LPC参数最有效的方式为LSP,它的一些特性比其他系数更有吸引力。

LPC分析与格型法分析类似,也是以全极点模型为基础。线谱对分析的基本出发点是通过两个z变换P(z)和Q(z),将A(z)(误差传递函数)的P个零点映射到单位圆上,以使这些零点直接用频率w反应,而P(z)和Q(z)各提供P/2个零点频率。LSP参数的求解有代数方程式求根和DFT方法等。

二、源代码

clear all; clc; close all;

[x,fs]=wavread('C3_6_y.wav');          
x=x/max(abs(x));              % 幅值归一化
time=(0:length(x)-1)/fs;      % 求出对应的时间序列
N=200;                              % 设定帧长
M=80;                               % 设定帧移的长度  
xn=enframe(x,N,M)';           % 按照参数进行分帧
s=xn(:,100);                        % 取分帧后的笫100帧进行分析

p=12;                               % 设预测阶次
num=256;                        % 设定频谱的点数
a2 =lpc(s,p);                       % 利用信号处理工具箱中的函数lpc求预测系数a2
Hw=lpcff(a2,num-1);        % 调用lpcar2ff函数从预测系数a求出LP谱Hw
Hw_abs=abs(Hw);               % 取Hw的模值
lsf=lpctolsf(a2);                   % 调用ar2lsf函数把ar系数转换的lsf参数
P_w=lsf(1:2:end);               % 用lsf求出P和Q对应的频率,单位为弧度
Q_w=lsf(2:2:end);
P_f=P_w*fs/2/pi;              % 转换成单位为Hz
Q_f=Q_w*fs/2/pi;

subplot 211; plot(s,'k');     % 画出一帧信号的波形
title('(a)语音信号C3\_6\_y.wav的一帧波形图 ');
xlabel(['样点值' 10 ]); ylabel('幅值')    
freq=(0:num-1)*fs/512;          % 计算频域的频率序列
m=1:num;
K=length(Q_w);

ar=lsftolpc(lsf);                       % 调用lsf2ar函数把lsf转换成预测系数ar 
Hw1=lpcff(ar,num-1);            % 调用lpcar2ff函数,从预测系数ar求出LP谱Hw1
Hw1_abs=abs(Hw1);
subplot 212;                            % 把Hw和Hw1画在一个图中
hline1 = plot(freq,20*log10(Hw_abs(m)/max(Hw_abs)),'k','LineWidth',2); 
hline2 = line(freq+1,20*log10(Hw1_abs(m)/max(Hw1_abs)),...
    'LineWidth',5,'Color',[.6 .6 .6]);
set(gca,'Children',[hline1 hline2]);
axis([0 fs/2 -35 5]);
title('(b)语音信号的LPC谱和线谱对还原LPC的频谱 ');
xlabel(['频率/Hz' 10]); ylabel('幅值')    
for k=1 : K                   % 把P_f和Q_f也在图中用垂直线标出
    line([Q_f(k) Q_f(k)],[-35 5],'color','k','Linestyle','--');
    line([P_f(k) P_f(k)],[-35 5],'color','k','Linestyle','-');
end

三、运行结果

在这里插入图片描述

四、备注

完整代码或者代写添加QQ 1564658423
往期回顾>>>>>>
【特征提取】基于matlab小波变换的音频水印嵌入提取【含Matlab源码 053期】
【语音处理】基于matlab GUI语音信号处理【含Matlab源码 290期】
【语音采集】基于matlab GUI语音信号采集【含Matlab源码 291期】
【语音调制】基于matlab GUI语音幅度调制【含Matlab源码 292期】
【语音合成】基于matlab GUI语音合成【含Matlab源码 293期】
【语音加密】基于matlab GUI语音信号加密解密【含Matlab源码 295期】
【语音增强】基于matlab小波变换的语音增强【含Matlab源码 296期】
【语音识别】基于matlab GUI语音基频识别【含Matlab源码 294期】
【语音增强】基于matlab GUI维纳滤波之语音增强【含Matlab源码 298期】
【语音处理】基于matlab GUI语音信号处理【含Matlab源码 299期】
【信号处理】基于matlab的语音信号频谱分析仪【含Matlab源码 325期】
【调制信号】基于matlab GUI数字调制信号仿真【含Matlab源码 336期】
【情感识别】基于matlab BP神经网络的语音情感识别【含Matlab源码 349期】
【语音隐写】基于matlab小波变换的量化音频数字水印【含Matlab源码 351期】
【特征提取】基于matlab音频水印嵌入与提取【含Matlab源码 350期】
【语音去噪】基于matlab低通和自适应滤波去噪【含Matlab源码 352期】
【情感识别】基于matlab GUI语音情感分类识别【含Matlab源码 354期】
【基础处理】基于matlab语音信号的预处理【含Matlab源码 364期】
【语音识别】基于matlab 傅立叶变换0-9的数字语音识别【含Matlab源码 384期】
【语音识别】基于matlab GUI DTW的0-9数字语音识别【含Matlab源码 385期】
【语音播放】基于matlab GUI MP3设计【含Matlab源码 425期】
【语音处理】基于人耳掩蔽效应的语音增强算法信噪比计算【含Matlab源码 428期】
【语音去噪】基于matlab谱减法去噪【含Matlab源码 429期】
【语音识别】基于matlab带动量项的BP神经网络语音识别【含Matlab源码 430期】
【语音隐写】基于matlab LSB语音隐藏【含Matlab源码 431期】
【语音识别】基于matlab男女声识别【含Matlab源码 452期】
【语音处理】基于matlab语音加噪和降噪处理【含Matlab源码 473期】
【语音去噪】基于matlab最小二乘法(LMS)自适应滤波器【含Matlab源码 481期】
【语音增强】基于matlab谱减法、最小均方和维纳滤波语音增强【含Matlab源码 482期】
【通信】基于matlab GUI数字频带(ASK、PSK、QAM)调制仿真 【含Matlab源码 483期】
【信号处理】基于matlab心电信号ECG滤波处理【含Matlab源码 484期】
【语音播报】基于matlab语音播报【含Matlab源码 507期】
【信号处理】基于matlab小波变换脑电信号特征提取【含Matlab源码 511期】
【语音处理】基于matlab GUI双音多频(DTMF)信号检测【含Matlab源码 512期】
【语音隐写】基于matlab LSB实现语音信号的数字水印【含Matlab源码 513期】
【语音增强】基于matlab匹配滤波器的语音识别【含Matlab源码 514期】
【语音处理】基于matlab GUI语音时域频域频谱图分析【含Matlab源码 527期】
【语音去噪】基于matlab LMS、RLS算法语音去噪【含Matlab源码 528期】
【语音去噪】基于matlab LMS谱减法语音去噪【含Matlab源码 529期】
【语音去噪】基于matlab 软阈值、硬阈值、折中阈值语音去噪【含Matlab源码 530期】
【语音识别】基于matlab特定人的语音识别分辨【含Matlab源码 534期】
【语音去噪】基于matlab小波软阈值语音降噪【含Matlab源码 531期】
【语音去噪】基于matlab小波硬阈值语音降噪【含Matlab源码 532期】
【语音识别】基于matlab MFCC和SVM的特定人性别识别【含Matlab源码 533期】
【语音识别】基于MFCC的GMM语音识别【含Matlab源码 535期】
【语音识别】基于matlab VQ特定人孤立词语音识别【含Matlab源码 536期】
【语音识别】基于matlab GUI声纹识别【含Matlab源码 537期】
【采集读写】基于matlab语音采集与读写【含Matlab源码 538期】
【语音编辑】基于matlab语音编辑【含Matlab源码 539期】
【语音模型】基于matlab语音信号数学模型【含Matlab源码 540期】
【语音响度】基于matlab语音声强与响度【含Matlab源码 541期】
【情感识别】基于matlab K近邻分类算法的语音情感识别【含Matlab源码 542期】
【情感识别】基于matlab支持向量机(SVM)的语音情感识别【含Matlab源码 543期】
【情感识别】基于神经网络的语音情感识别【含Matlab源码 544期】
【声源定位】基于matlab不同空间谱估计的声源定位算法比较【含Matlab源码 545期】
【声源定位】基于matlab不同信噪比下的麦克风接收信号【含Matlab源码 546期】
【声源定位】基于matlab单声源双麦克风的房间冲激响应【含Matlab源码 547期】
【声源定位】基于matlab广义互相关的声源定位【含Matlab源码 548期】
【声源定位】基于matlab阵列流形矩阵的信号显示【含Matlab源码 549期】
【特征提取】基于matlab共振峰估计【含Matlab源码 550期】
【特征提取】基于matlab基音周期估计【含Matlab源码 551期】
【特征提取】基于matlab语音端点检测【含Matlab源码 552期】
【语音编码】基于matlab ADPCM编解码【含Matlab源码 553期】
【语音编码】基于matlab LPC编解码【含Matlab源码 554期】
【语音编码】基于matlab PCM编解码【含Matlab源码 555期】
【语音分析】基于matlab倒谱分析与MFCC系数计算【含Matlab源码 556期】
【语音分析】基于matlab线性预测系数对比 【含Matlab源码 557期】
【语音分析】基于matlab语音短时频域分析【含Matlab源码 558期】
【语音分析】基于matlab语音短时时域分析【含Matlab源码 559期】

猜你喜欢

转载自blog.csdn.net/TIQCmatlab/article/details/114986565