(基于matlab自写代码)语音信号的倒谱分析

倒谱一种信号的傅里叶变换谱经对数运算后再进行的傅里叶反变换。由于一般傅里叶谱是复数谱,因而又称复倒谱。倒谱在信号处理有着广泛的用途,它主要的功能是可以线性分离经卷积后的两个或多个分别的信号。合成和识别。
过程
1.采集语音信号
2.分帧计算语音信号倒谱,并倒谱作FFT并加短时窗。
3.取大于25以上的样值,进行IFFT,得到基音周期的倒谱。
3.运用Levinson-Durbin计算一帧语音信号线形预测系数
4.进行逆滤波处理
5.对逆滤波后的信号进行倒谱分析确定基音周期

对一段语音,取帧长为256个点,计算他的快速傅里叶变换,并计算其倒谱,并绘出曲线图

Ft=8000;
Fp=1000;
Fs=1200;
wp=2piFp/Ft;
ws=2piFs/Ft;
fp=2Fttan(wp/2);
fs=2Fstan(wp/2);
[n11,wn11]=buttord(wp,ws,1,50,‘s’); %求低通滤波器的阶数和截止频率
[b11,a11]=butter(n11,wn11,‘s’); %求S域的频率响应的参数
[num11,den11]=bilinear(b11,a11,0.5); %利用双线性变换实现频率响应S域到Z域的变换
y=audioread(’ E:\matlab\yuyin1.m4a ‘);
n = length (y) ; %求出语音信号的长度
t=[0:1/8000:0.25]’;
noise=awgn(t,5); %产生高斯白噪声
m = length (noise) ;
y = resample(y,m,n);
s=y+noise; %语音信号加入噪声
z11=filter(num11,den11,s);
sound(z11);
m11=fft(z11); %求滤波后的信号
subplot(2,1,1);plot(z11);title(‘滤波后的信号波形’);

x =audioread(’ E:\matlab\yuyin1.m4a ');
sound(x);
movefile ENFRAME.M ENFRAME.m_bad; movefile ENFRAME.m_bad ENFRAME.m

y=ENFRAME(x,256,60);
Y=fft(y);
Z=log(Y);
J=real(Z);
M=ifft(J);
subplot(2,1,2)
plot(M);
title(‘yuyin1的倒谱’)

在这里插入图片描述

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值