资源简介

先用小波消噪,再进入中心消波和三电平消波,取自相关函数,进行清浊音判别,求出基音周期

资源截图

代码片段和文件信息

%综合法程序
%读音频文件----这部分运行有问题,运行显示:Index exceeds matrix dimensions(超出矩阵维度?)
clear all;
close all;
clc;
[filenamepathname]=uigetfile(‘*.wav‘‘请选择语音文件:‘);
[soundfsnbits]=wavread([pathnamefilename]);%sound 为采样数据,fs采样率。nbits量化比特数
%假设声音是双声道,这里只取单声道作分析,sound(:1)为左声道,右声道为sound(:2) 
a=size(sound(:1));
Tn=(a(1)-1)/fs;     
t=0:1/fs:Tn;
figure(1)
subplot(311);
plot(tsound(:1))xlabel(‘t(s)‘)ylabel(‘sound‘)
title(‘录制的语音段‘); 
I=sound(:1);
%x=I(11401:11700);%可以根据需要选择不同的语音段
x=I(9700:10000);
subplot(312);
  plot(x);
  title(‘选取的语音段‘); 
y=x; 
for i=1:301    
    y(i)=0; 
end 
y1=y;y2=y;y3=y;y4=y;r=y;rmax=-1; 
p=0;                  %flag of pitch 
cyc=0; 

%Filter: y 
H=[0.0035270585-0.0075853243-0.022130724-0.037701912-0.040792551-0.0176185440.0371342230.11394230.189553710.236577820.236577820.189553710.11394230.037134223-0.017618544-0.040792551-0.037701912-0.022130724-0.00758532420.0035270585]; 
for i=11:291    
    for j=1:20       
        y(i)=y(i)+x(i-j+10)*H(j);    
    end 
end  
subplot(313);
plot(y);
title(‘滤波后信号‘);

%小波去噪
[cl]=wavedec(y3‘db5‘);
%用默认阈值对信号进行消噪处理并图示结果
%用ddencmp函数获得信号的默认阈值
[thrsorhkeepapp]=ddencmp(‘den‘‘wv‘y);

评论

共有 条评论