倒谱一种信号的傅里叶变换谱经对数运算后再进行的傅里叶反变换。由于一般傅里叶谱是复数谱,因而又称复倒谱。倒谱在信号处理有着广泛的用途,它主要的功能是可以线性分离经卷积后的两个或多个分别的信号。合成和识别。
过程
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的倒谱’)