• PUDN用户
    了解作者
  • matlab
    开发工具
  • 1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 10
    下载次数
  • 2015-06-07 12:35
    上传日期
线性预测声码器设计中语音信号的基音周期提取,采集语音信号,对语音信号进行处理,区分清音浊音,并通过对采样值进行滤波、分帧、求短时自相关函数,得到浊音的基音周期。
Pitch-detection.zip
  • 程序-蔡磊.txt
    1.5KB
内容介绍
%原始信号 [y,fs,nbits]=wavread ('C:\Users\Administrator.WIN7U-20150423O\Desktop\1.wav'); %把语音信号进行加载入Matlab 仿真软件平台中 sound(y,fs,nbits); %回放语音信号 n = length (y) %求出语音信号的长度 Y=fft(y,n); %快速傅里叶变换 figure(1) subplot(2,1,1);plot(y);title('原始信号波形'); grid; subplot(2,1,2);plot(abs(Y));title('原始信号频谱'); grid; %经滤波后波形 N=240 y=WAVREAD('C:\Users\Administrator.WIN7U-20150423O\Desktop\1.wav'), [1 18000]; L=length(y)%30秒,每秒8000个点,一共240000个点 LL=length(y)/N %一共 1000帧 %短时能量 figure(2) F1 = enframe(y,200); eng = sum(F1.^2); plot(eng);xlabel('帧');ylabel('短时平均能量');title('短时能量') %短时平均幅度Mn=sum(abs(Y))/N figure(3) F2 = enframe(y,200); eng = sum(abs(F2)); plot(eng);xlabel('帧');ylabel('短时平均幅度');title('短时平均幅度'); %分帧函数 function f=enframe(x,win,inc) nx=length(x(:)); len = win; if (nargin < 3) inc = len; end nf = fix((nx-len+inc)/inc); f=zeros(nf,len); indf= inc*(0:(nf-1)).'; inds = (1:len); f(:) = x(indf(:,ones(1,len))+inds(ones(nf,1),:)); f = f'; %短时自相关函数 [y,fs,N]=wavread ('C:\Users\Administrator.WIN7U-20150423O\Desktop\1.wav'); F = enframe(y,200); figure(4) f5 = F(:,5); out8=autocorr(f5); subplot(2,1,1);plot(f5);xlabel('样点');title('浊音帧波形图'); subplot(2,1,2);plot(out8);xlabel('延时');title('浊音帧短时');
评论
    相关推荐