📄 file_v_us_identify.m
字号:
% 对信号序列进行分帧,一帧 为 30u
% 产生分帧信号
function [storeroom_voice, storeroom_unvoice, storeroom_silience,frame_zero,frame_period] = file_v_us_identify(filename)
y = wavread(filename);
length_y = length(y);
sum_frame = fix(length_y/308);
y_turn = y';
for k = 1:sum_frame
temp_storeroom(k,:) = y_turn((1+(k-1)*308): k*308);
end
% warehouse 将每帧信号存入矩阵
%加hamming窗
win_sequence = hamming(308)';
% 去除直流扰
for k = 1:sum_frame
temp_storeroom(k,:) = y_turn((1+(k-1)*308): k*308).*win_sequence;
average_m = (1/308) * sum(temp_storeroom(k,:));
temp_storeroom(k,:) = temp_storeroom(k,:) - average_m;
end
%进行语音带宽限制,使之在100~3400Hz内;
[B,A]=butter(5,[100/4000 3400/4000],'bandpass');
% filter_value_sequence = filter(B,A ,temp_storeroom);
for k = 1:sum_frame
filter_value_sequence(k,:) = filter(B,A,temp_storeroom(k,:));
end
% 限幅
for k = 1:sum_frame
for l =1:308
if filter_value_sequence(k,l) > 1
filter_value_sequence(k,l) = 1;
elseif filter_value_sequence(k,l) < -1
filter_value_sequence(k,l) = -1;
else
filter_value_sequence(k,l) = filter_value_sequence(k,l);
end
end
end
%对每帧语音进行处理
% 存储 judgeroom_mz
load storeroom_code storeroom_voice storeroom_unvoice storeroom_silience;%room_zero ;
load storeroom_zero frame_zero frame_period;
for k = 1:sum_frame
[v_s_u,Z_period,zeros_sum] = v_us_identify(filter_value_sequence(k,:),temp_storeroom(k,:));
if v_s_u == 1
if storeroom_voice == []
storeroom_voice = temp_storeroom(k,:);
else
storeroom_voice = [storeroom_voice; temp_storeroom(k,:)];
end
elseif v_s_u == -1
if storeroom_unvoice == []
storeroom_unvoice = temp_storeroom(k,:);
else
storeroom_unvoice = [storeroom_unvoice; temp_storeroom(k,:)];
end
else
if storeroom_silience == []
storeroom_silience = temp_storeroom(k,:);
else
storeroom_silience = [storeroom_silience; temp_storeroom(k,:)];
end
end
if frame_zero == []
frame_zero = zeros_sum;
else
frame_zero = [frame_zero zeros_sum];
end
if frame_period == []
frame_period = Z_period;
else
frame_period = [frame_period Z_period];
end
end
save storeroom_code storeroom_voice storeroom_unvoice storeroom_silience;
save storeroom_zero frame_zero frame_period;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -