• 大小: 3KB
    文件类型: .m
    金币: 2
    下载: 0 次
    发布日期: 2024-01-31
  • 语言: Matlab
  • 标签: matlab  基频  mel倒谱  

资源简介

该文件经过试验可以获得上传文件的基频信息,个人可参考下载学习,希望对初学者有用

资源截图

代码片段和文件信息

%% name: SunKangKang      student number: 1228
clear variables; %deletes all variables in the workspace
close all; %closes all plots
clc; %clears the command window
%% E1 Computation of the autocorrelation function
[yFs] = audioread(‘dayu.wav‘);
max_time_lag=0.1;%set the maximum time shift of the signal(100ms)
r_ss = autocorrelation(y max_time_lag);
time_lag = linspace(0size(r_ss1)/Fs*1000size(r_ss1));
%Plot r_ss and display the time shift on the x-axis and the correlation on the y-axis.
figure
hold on
xlabel(‘time lag(ms)‘);
ylabel(‘r_s_s‘);
plot(time_lagr_ss);
hold off
%% E2 Determining the fundamental frequency
%find the maxima of acf by using the function sort()
%B sort the value of acf in increasing order I returns the corresponding index of value
[BI] = sort(r_ss);
num=size(I1)-1;
%The voiced speech of a typical adult male will have a fundamental frequency
%from 85 to 180 Hz and that of a typical adult female from 165 to 255 Hz.So the
%minimum period(interval) in sample between maxima should be approximately Fs/250=64. The
%next maximum should be after at least approximately 64 samples.
while (I(num)< I(end)+64)
    num=num-1;   %B sort the value of acf in increasing order
end
%Then we use the period in sample calculated from the first 2 maxima to
%estimate the position of other maxima. The possible position of next
%maximum = the position of previous maximum + period in sample. Next we
%search for the maxima a

评论

共有 条评论