【音频处理】基于matlab GUI音频信号处理【含Matlab源码 299期】

一、简介

基于matlab GUI音频信号处理平台:打开、播放、保存、回音、回响、倒放、复位、滤波、变调、音量调整、速率调整、滤波器参数选择等多功能处理。

二、源代码

function varargout = yonghujiemain(varargin)
% YONGHUJIEMAIN M-file for yonghujiemain.fig
%      YONGHUJIEMAIN, by itself, creates a new YONGHUJIEMAIN or raises the existing
%      singleton*.
%
%      H = YONGHUJIEMAIN returns the handle to a new YONGHUJIEMAIN or the handle to
%      the existing singleton*.
%
%      YONGHUJIEMAIN('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in YONGHUJIEMAIN.M with the given input arguments.
%
%      YONGHUJIEMAIN('Property','Value',...) creates a new YONGHUJIEMAIN or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before yonghujiemain_OpeningFunction gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to yonghujiemain_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

% Edit the above text to modify the response to help yonghujiemain

% Last Modified by GUIDE v2.5 03-Jun-2011 16:50:18

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @yonghujiemain_OpeningFcn, ...
                   'gui_OutputFcn',  @yonghujiemain_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 yonghujiemain is made visible.
function yonghujiemain_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 yonghujiemain (see VARARGIN)

% Choose default command line output for yonghujiemain
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes yonghujiemain wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = yonghujiemain_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 turn_down.
function turn_down_Callback(hObject, eventdata, handles)
% hObject    handle to turn_down (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on button press in turn_up.
function turn_up_Callback(hObject, eventdata, handles)
% hObject    handle to turn_up (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject    handle to popupmenu1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array
%        contents{
    
    get(hObject,'Value')} returns selected item from popupmenu1


% --- Executes during object creation, after setting all properties.
function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popupmenu1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in speed_up.
function speed_up_Callback(hObject, eventdata, handles)
% hObject    handle to speed_up (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on button press in slow_down.
function slow_down_Callback(hObject, eventdata, handles)
% hObject    handle to slow_down (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on selection change in popupmenu2.
function popupmenu2_Callback(hObject, eventdata, handles)
% hObject    handle to popupmenu2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu2 contents as cell array
%        contents{
    
    get(hObject,'Value')} returns selected item from popupmenu2


% --- Executes during object creation, after setting all properties.
function popupmenu2_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popupmenu2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in insert.
function insert_Callback(hObject, eventdata, handles)
% hObject    handle to insert (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global  fn x Fs bits;
[fn,dirpath]=uigetfile('*.wav');
[x,Fs,bits] = wavread(fn);
t=(0:length(x)-1)/Fs;            
plot(handles.axes1,t,x);              
legend('Waveform');
xlabel( 'Time(s)');
ylabel('Amplitude');   
xlength=length(x);
y=fft(x,xlength);
Pyy =y.*conj(y)/xlength;
f = 22050*(0:(xlength/2))/xlength;
plot(handles.axes2,f,Pyy(1:xlength/2+1));
title('Frequency content of y');
xlabel('frequency (Hz)');

% --- Executes on button press in play.
function play_Callback(hObject, eventdata, handles)
% hObject    handle to play (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global  x Fs bits;
sound(x,Fs,bits);

% --- Executes on button press in save.
function save_Callback(hObject, eventdata, handles)

% hObject    handle to save (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global x;
[filname,pathname]=uiputfile('.wav');
wavwrite(x,22050,8,filname);



% --- Executes on button press in radiobutton1.
function radiobutton1_Callback(hObject, eventdata, handles)
% hObject    handle to radiobutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton1


% --- Executes on button press in radiobutton2.
function radiobutton2_Callback(hObject, eventdata, handles)
% hObject    handle to radiobutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton2


% --- Executes on button press in fuwei.
function fuwei_Callback(hObject, eventdata, handles)
% hObject    handle to fuwei (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global  fn x Fs bits;
[x,Fs,bits] = wavread(fn);
t=(0:length(x)-1)/Fs;            
plot(handles.axes1,t,x);              
legend('Waveform');
xlabel( 'Time(s)');
ylabel('Amplitude');   
xlength=length(x);
y=fft(x,xlength);
Pyy =y.*conj(y)/xlength;
f = 22050*(0:(xlength/2))/xlength;
plot(handles.axes2,f,Pyy(1:xlength/2+1));
title('Frequency content of y');
xlabel('frequency (Hz)');


% --- Executes on button press in daofang.
function daofang_Callback(hObject, eventdata, handles)
% hObject    handle to daofang (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global   x Fs ;
i=1:length(x);
j=length(x):-1:1;
x_reversal(j)=x(i); %实现声音数据颠倒
t=(0:length(x)-1)/Fs;            
plot(handles.axes1,t,x);              
title('original signal');
xlabel( 'Time(s)');
ylabel('Amplitude');   
plot(handles.axes2,t,x_reversal);              
title('reversal signal');
xlabel( 'Time(s)');
ylabel('Amplitude'); 
x=x_reversal;

三、运行结果

在这里插入图片描述

四、备注

完整代码或者代写添加QQ 1564658423
往期回顾>>>>>>
【信号处理】基于matlab HMM的睡眠状态检测【含Matlab源码 050期】
【信号处理】基于matlab CDR噪声和混响抑制【含Matlab源码 051期】
【信号处理】基于matlab最小二乘法解决稀疏信号恢复问题【含Matlab源码 052期】
【信号处理】基于matlab小波变换的音频水印嵌入提取【含Matlab源码 053期】
【信号处理】基于matlab ICA算法信号分离【含Matlab源码 054期】
【信号处理】基于matlab GUI界面的脉搏信号之脉率存档【含Matlab源码 237期】
【信号处理】基于matlab GUI界面的虚拟信号发生器(各种波形)【含Matlab源码 271期】
【信号处理】基于matlab GUI界面信号发生器之电子琴【含Matlab源码 272期】
【信号处理】基于matlab的数字电子琴设计与实现【含Matlab源码 273期】
【雷达通信】基于matlab的雷达数字信号处理【含Matlab源码 281期】
【雷达通信】基于matlab线性调频(LFM)脉冲压缩雷达仿真【含Matlab源码 283期】
【雷达通信】基于mtatlab距离多普勒(RD)、CS、RM算法的机载雷达成像【含Matlab源码 284期】
【雷达通信】《现代雷达系统分析与设计》大作业【含Matlab源码 285期】
【信号处理】基于matlab GUI语音信号综合处理平台【含Matlab源码 290期】
【信号处理】基于matlab GUI语音信号采集【含Matlab源码 291期】
【信号处理】基于matlab GUI语音幅度调制【含Matlab源码 292期】
【信号处理】基于matlab GUI语音合成【含Matlab源码 293期】
【信号处理】基于matlab GUI语音基频识别【含Matlab源码 294期】
【信号处理】基于matlab GUI语音信号加密解密【含Matlab源码 295期】
【信号处理】基于matlab小波变换的语音增强【含Matlab源码 296期】
【信号处理】基于matlab GUI语音傅立叶变换降噪混频【含Matlab源码 297期】
【信号处理】基于matlab GUI维纳滤波之语音增强【含Matlab源码 298期】

猜你喜欢

转载自blog.csdn.net/TIQCmatlab/article/details/113800964