博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【语音去噪】基于GUI傅立叶变换语音混频降噪【Matlab 009期】
阅读量:707 次
发布时间:2019-03-21

本文共 10885 字,大约阅读时间需要 36 分钟。

一、简介

基于matlab GUI傅立叶变换语音混频降噪

二、源代码

function varargout = DSP(varargin)% DSP MATLAB code for DSP.fig%      DSP, by itself, creates a new DSP or raises the existing%      singleton*.%%      H = DSP returns the handle to a new DSP or the handle to%      the existing singleton*.%%      DSP('CALLBACK',hObject,eventData,handles,...) calls the local%      function named CALLBACK in DSP.M with the given input arguments.%%      DSP('Property','Value',...) creates a new DSP or raises the%      existing singleton*.  Starting from the left, property value pairs are%      applied to the GUI before DSP_OpeningFcn gets called.  An%      unrecognized property name or invalid value makes property application%      stop.  All inputs are passed to DSP_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 DSP% Last Modified by GUIDE v2.5 13-Dec-2015 17:32:39% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name',       mfilename, ...                   'gui_Singleton',  gui_Singleton, ...                   'gui_OpeningFcn', @DSP_OpeningFcn, ...                   'gui_OutputFcn',  @DSP_OutputFcn, ...                   'gui_LayoutFcn',  [] , ...                   'gui_Callback',   []);if nargin && ischar(varargin{
1}) gui_State.gui_Callback = str2func(varargin{
1});endif 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 DSP is made visible.function DSP_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 DSP (see VARARGIN)% Choose default command line output for DSPhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes DSP wait for user response (see UIRESUME)% uiwait(handles.main);% --- Outputs from this function are returned to the command line.function varargout = DSP_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 structurevarargout{
1} = handles.output;% --------------------------------------------------------------------function file_Callback(hObject, eventdata, handles)% hObject handle to file (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function noise_Callback(hObject, eventdata, handles)% hObject handle to noise (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function filter_Callback(hObject, eventdata, handles)% hObject handle to filter (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function help_Callback(hObject, eventdata, handles)% hObject handle to help (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function help_doc_Callback(hObject, eventdata, handles)% hObject handle to help_doc (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function about_Callback(hObject, eventdata, handles)% hObject handle to about (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)string =str2mat(' 声音处理示例程序',[],' 版本:1.0',[],' 开发:项晓强 褚倩云 徐如林',[],' 电子邮箱:xrlin@163.com',[],' 特别鸣谢:安大航模队大力赞助');msgbox(string);% --------------------------------------------------------------------function IIR_Callback(hObject, eventdata, handles)% hObject handle to IIR (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function FIR_Callback(hObject, eventdata, handles)% hObject handle to FIR (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function flat_noise_Callback(hObject, eventdata, handles)% hObject handle to flat_noise (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.L1,'Visible','off');set(handles.L2,'Visible','off');set(handles.L3,'Visible','off');set(handles.L4,'Visible','off');set(handles.E1,'Visible','off');set(handles.E2,'Visible','off');set(handles.E3,'Visible','off');set(handles.E4,'Visible','off');set(handles.single_run,'Enable','off');set(handles.multi_run,'Enable','off');set(handles.IIR_run,'Enable','off');set(handles.FIR_run,'Enable','off');wav = evalin('base','data');fs = evalin('base','Fs');reswav = awgn(wav,20);%添加信噪比为10dB的高斯噪声assignin('base','resdata',reswav);fftwav = abs(fft(reswav));axes(handles.Time);x = (0:length(reswav)-1)/fs;handles.Line1 = plot(x,reswav);guidata(hObject,handles);%保存值set(handles.Time,'XMinorTick','on');grid on;xlabel('时间/s');ylabel('幅度');title('时域图');axes(handles.Freq);xf = (0:length(reswav)-1)'*fs/length(fftwav);handles.Line2 = plot(xf,fftwav);guidata(hObject,handles);%保存值set(handles.Freq,'XMinorTick','on');grid on;xlabel('频率/Hz');ylabel('幅度');title('频域图');assignin('base','flag',1);handles.sou = audioplayer(reswav,fs);guidata(hObject,handles);%保存值% --------------------------------------------------------------------function single_Callback(hObject, eventdata, handles)% hObject handle to single (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function multi_Callback(hObject, eventdata, handles)% hObject handle to multi (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function open_Callback(hObject, eventdata, handles)% hObject handle to open (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)[filename,pathname] = uigetfile('*.wav;*.mp3','请选择声音文件', 'MultiSelect', 'off');[wav,fs]=audioread(strcat(pathname,filename));wav = wav(:,1);handles.sou = audioplayer(wav,fs);guidata(hObject,handles);%保存值assignin('base','data',wav);assignin('base','Fs',fs);set(handles.L1,'Visible','off');set(handles.L2,'Visible','off');set(handles.L3,'Visible','off');set(handles.L4,'Visible','off');set(handles.E1,'Visible','off');set(handles.E2,'Visible','off');set(handles.E3,'Visible','off');set(handles.E4,'Visible','off');set(handles.button_play,'Visible','off');set(handles.Time,'Visible','off');set(handles.Freq,'Visible','off');set(handles.single_run,'Enable','off');set(handles.multi_run,'Enable','off');set(handles.IIR_run,'Enable','off');set(handles.FIR_run,'Enable','off');set(handles.button_play,'Visible','on');set(handles.Time,'Visible','on');set(handles.Freq,'Visible','on');set(handles.noise,'Enable','on');set(handles.filter,'Enable','on');set(handles.button_play,'String','播放');assignin('base','ps',0);reswav = wav;assignin('base','resdata',reswav); fftwav = abs(fft(reswav));axes(handles.Time);x = (0:length(reswav)-1)/fs;handles.Line1 = plot(x,reswav);guidata(hObject,handles);%保存值set(handles.Time,'XMinorTick','on');grid on;xlabel('时间/s');ylabel('幅度');title('时域图');axes(handles.Freq);xf = (0:length(reswav)-1)'*fs/length(fftwav);handles.Line2 = plot(xf,fftwav);guidata(hObject,handles);%保存值set(handles.Freq,'XMinorTick','on');grid on;xlabel('频率/Hz');ylabel('幅度');title('频域图');assignin('base','flag',1);% --------------------------------------------------------------------function close_Callback(hObject, eventdata, handles)% hObject handle to close (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)clc;clear all;close;% --- Executes on button press in button_play.function button_play_Callback(hObject, eventdata, handles)% hObject handle to button_play (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)ps = evalin('base','ps');if(ps == 0) set(handles.button_play,'String','停止'); assignin('base','ps',1); play(handles.sou);end;if(ps == 1) set(handles.button_play,'String','播放'); assignin('base','ps',0); stop(handles.sou);end;%sound(evalin('base','resdata'),evalin('base','Fs'));% --------------------------------------------------------------------function record_Callback(hObject, eventdata, handles)% hObject handle to record (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.L1,'Visible','off');set(handles.L2,'Visible','off');set(handles.L3,'Visible','off');set(handles.L4,'Visible','off');set(handles.E1,'Visible','off');set(handles.E2,'Visible','off');set(handles.E3,'Visible','off');set(handles.E4,'Visible','off');set(handles.button_play,'Visible','off');set(handles.Time,'Visible','off');set(handles.Freq,'Visible','off');set(handles.noise,'Enable','off');set(handles.filter,'Enable','off');set(handles.single_run,'Enable','off');set(handles.multi_run,'Enable','off');set(handles.IIR_run,'Enable','off');set(handles.FIR_run,'Enable','off');set(handles.button_play,'String','播放');assignin('base','ps',0);%--------------------------------%if (evalin('base','flag')==1) set(handles.Line1,'Visible','off'); set(handles.Line2,'Visible','off');end;

三、运行结果

在这里插入图片描述

四、备注

版本:2014a

完整代码或者代写添加QQ912100926

转载地址:http://qznrz.baihongyu.com/

你可能感兴趣的文章