www.pudn.com > SPEECH-ANALYSIS-GUI.rar > whoops.m, change:2008-12-28,size:8676b


function varargout = whoops(varargin) 
% WHOOPS M-file for whoops.fig 
%      WHOOPS, by itself, creates a new WHOOPS or raises the existing 
%      singleton*. 
% 
%      H = WHOOPS returns the handle to a new WHOOPS or the handle to 
%      the existing singleton*. 
% 
%      WHOOPS('CALLBACK',hObject,eventData,handles,...) calls the local 
%      function named CALLBACK in WHOOPS.M with the given input arguments. 
% 
%      WHOOPS('Property','Value',...) creates a new WHOOPS or raises the 
%      existing singleton*.  Starting from the left, property value pairs are 
%      applied to the GUI before whoops_OpeningFunction gets called.  An 
%      unrecognized property name or invalid value makes property application 
%      stop.  All inputs are passed to whoops_OpeningFcn via varargin. 
% 
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one 
%      instance to run (singleton)". 
% 
% See also: GUIDE, GUIDATA, GUIHANDLES 
 
% Copyright 2002-2003 The MathWorks, Inc. 
 
% Edit the above text to modify the response to help whoops 
 
% Last Modified by GUIDE v2.5 28-Dec-2008 13:20:08 
 
% Begin initialization code - DO NOT EDIT 
gui_Singleton = 1; 
gui_State = struct('gui_Name',       mfilename, ... 
                   'gui_Singleton',  gui_Singleton, ... 
                   'gui_OpeningFcn', @whoops_OpeningFcn, ... 
                   'gui_OutputFcn',  @whoops_OutputFcn, ... 
                   'gui_LayoutFcn',  [] , ... 
                   'gui_Callback',   []); 
if nargin && ischar(varargin{1}) 
    gui_State.gui_Callback = str2func(varargin{1}); 
end 
 
if nargout 
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); 
else 
    gui_mainfcn(gui_State, varargin{:}); 
end 
% End initialization code - DO NOT EDIT 
 
 
% --- Executes just before whoops is made visible. 
function whoops_OpeningFcn(hObject, eventdata, handles, varargin) 
% This function has no output args, see OutputFcn. 
% hObject    handle to figure 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
% varargin   command line arguments to whoops (see VARARGIN) 
 
% Choose default command line output for whoops 
handles.output = hObject; 
 
% Update handles structure 
guidata(hObject, handles); 
 
% UIWAIT makes whoops wait for user response (see UIRESUME) 
% uiwait(handles.figure1); 
 
 
% --- Outputs from this function are returned to the command line. 
function varargout = whoops_OutputFcn(hObject, eventdata, handles)  
% varargout  cell array for returning output args (see VARARGOUT); 
% hObject    handle to figure 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
 
% Get default command line output from handles structure 
varargout{1} = handles.output; 
 
 
% --- Executes on button press in pushbutton1. 
function pushbutton1_Callback(hObject, eventdata, handles) 
% hObject    handle to pushbutton1 (see GCBO) 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
 
x = wavread('D:\voice\j2.wav',[20000 21000]); 
y = wavread('D:\voice\r2.wav',[20000 21000]); 
figure(1); 
subplot(2,1,1) 
plot(x); 
title('清音J的原始波形'); 
subplot(2,1,2) 
plot(y); 
title('浊音R的原始波形'); 
 
% --- Executes on button press in pushbutton2. 
function pushbutton2_Callback(hObject, eventdata, handles) 
% hObject    handle to pushbutton2 (see GCBO) 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
 
%x = wavread('D:\voice\j2.wav',[20000 21000]); 
 x = wavread('D:\voice\r2.wav',[20000 21000]); 
 
out = rceps(x);                           %================实倒谱函数              
plot(out); 
title('倒谱图'); 
 
 
 
% --- Executes on button press in pushbutton3. 
function pushbutton3_Callback(hObject, eventdata, handles) 
% hObject    handle to pushbutton3 (see GCBO) 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
 
%x = wavread('D:\voice\j2.wav',[20000 21000]); 
 x = wavread('D:\voice\r2.wav',[20000 21000]); 
 
out = cceps(x);                             %=============复倒谱函数 
plot(out); 
title('复倒谱图'); 
 
 
 
 
% --- Executes on button press in pushbutton4. 
function pushbutton4_Callback(hObject, eventdata, handles) 
% hObject    handle to pushbutton4 (see GCBO) 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
 
%x = wavread('D:\voice\j2.wav',[10000 40000]); 
 x = wavread('D:\voice\r2.wav',[10000 40000]); 
 
F =fft(x); 
S =abs(F) ; 
out = log(S); 
plot(out); 
title('对数谱图'); 
 
 
% --- Executes on button press in pushbutton5. 
function pushbutton5_Callback(hObject, eventdata, handles) 
% hObject    handle to pushbutton5 (see GCBO) 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
 
% x = wavread('D:\voice\j2.wav',[20000 21000]); 
x = wavread('D:\voice\r2.wav',[20000 21000]); 
 
out=lpc(x); 
plot(out); 
title('线性预测'); 
 
 
 
% --- Executes on button press in pushbutton6. 
function pushbutton6_Callback(hObject, eventdata, handles) 
% hObject    handle to pushbutton6 (see GCBO) 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
 
%x = wavread('D:\voice\j2.wav',[20000 21000]); 
 x = wavread('D:\voice\r2.wav',[20000 21000]); 
 
h = hamming(100); 
x = abs(x); 
out = conv(x,h); 
plot(out); 
title('短时幅度谱'); 
 
 
 
% --- Executes on button press in pushbutton7. 
function pushbutton7_Callback(hObject, eventdata, handles) 
% hObject    handle to pushbutton7 (see GCBO) 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
 
%x = wavread('D:\voice\j2.wav',[20000 21000]); 
 x = wavread('D:\voice\r2.wav',[20000 21000]); 
 
k = 1; 
S = 0; 
out(1000) = 0; 
for n=1:900     
    S = 0; 
    for k=1:100 
        S = S + abs( x(1000-k+1)-x(1000-n-k+1) );           
    end; 
    out(n) = S;     
end; 
plot(out);   
title('短时幅度谱差'); 
 
 
 
% --- Executes on button press in pushbutton8. 
function pushbutton8_Callback(hObject, eventdata, handles) 
% hObject    handle to pushbutton8 (see GCBO) 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
 
%x = wavread('D:\voice\j2.wav',[20000 21000]); 
 x = wavread('D:\voice\r2.wav',[20000 21000]); 
 
h = hamming(100); 
x = x.*x;                      %============ x平方 
out = conv(x,h);               %============ 加窗 
plot(out); 
title('短时能量谱'); 
 
 
% --- Executes on button press in pushbutton9. 
function pushbutton9_Callback(hObject, eventdata, handles) 
% hObject    handle to pushbutton9 (see GCBO) 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
 
%x = wavread('D:\voice\j2.wav',[15000 40000]); 
 x = wavread('D:\voice\r2.wav',[15000 40000]); 
 
n = 1; 
k = 1; 
N = 0; 
for n=1:900     
    N = 0; 
    for k=1:22 
        if x((n-1)+k) * x((n-1)+k+1) < 0 
            N = N + 1; 
        end; 
    end; 
    out(n) = N;     
end; 
plot(out); 
title('短时过零率'); 
 
 
% --- Executes on button press in pushbutton10. 
function pushbutton10_Callback(hObject, eventdata, handles) 
% hObject    handle to pushbutton10 (see GCBO) 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
 
%x = wavread('D:\voice\j2.wav',[20000 21000]); 
 x = wavread('D:\voice\r2.wav',[20000 21000]); 
 
c = xcorr(x,'coeff');          %===============================自相关函数 
h = hamming(1500); 
O = conv(h,c);                 %======================================短时相关 
plot(O); 
title('短时自相关'); 
 
 
% --- Executes on button press in pushbutton11. 
function pushbutton11_Callback(hObject, eventdata, handles) 
% hObject    handle to pushbutton11 (see GCBO) 
% eventdata  reserved - to be defined in a future version of MATLAB 
% handles    structure with handles and user data (see GUIDATA) 
 
%x = wavread('D:\voice\j2.wav',[20000 21000]); 
 x = wavread('D:\voice\r2.wav',[20000 21000]); 
 
out = real(specgram(x,256,120,256));               %====================specgram短时傅里叶函数 
plot(out); 
title('短时傅里叶');