【滤波器】基于低通、带通、高通滤波器实现语音去噪含Matlab源码
1 简介
在本文中,我们分别研究了在MATLAB环境下IIR数字滤波器的典型设计和完全设计等方法。 典型设计是先按一定规则将给出的数字滤波器的技术指标转换成模拟低通滤波器的技术指标,据此产生模拟滤波器原型,然后把模拟低通滤波器原型转换成模拟低通、高通、带通滤波器,最后再把模拟滤波器转换成数字滤波器。 完全设计方法中我们利用函数直接设计出低通、高通、带通滤波器,并分别用巴特沃斯(Butterworth)滤波器来实现语音去噪。
2 部分代码
function varargout = AMtiaozhi(varargin)
% AMTIAOZHI M-file for AMtiaozhi.fig
% AMTIAOZHI, by itself, creates a new AMTIAOZHI or raises the existing
% singleton*.
%
% H = AMTIAOZHI returns the handle to a new AMTIAOZHI or the handle to
% the existing singleton*.
%
% AMTIAOZHI('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in AMTIAOZHI.M with the given input arguments.
%
% AMTIAOZHI('Property','Value',...) creates a new AMTIAOZHI or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before AMtiaozhi_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to AMtiaozhi_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 AMtiaozhi
% Last Modified by GUIDE v2.5 10-May-2010 16:42:40
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @AMtiaozhi_OpeningFcn, ...
'gui_OutputFcn', @AMtiaozhi_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(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 AMtiaozhi is made visible.
function AMtiaozhi_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 AMtiaozhi (see VARARGIN)
% Choose default command line output for AMtiaozhi
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes AMtiaozhi wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = AMtiaozhi_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 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
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
set(hObject, 'String', {'调制信号', '载波信号','已调波信号'});
% --- 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 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
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
set(hObject, 'String', {'高通滤波', '低通滤波','带通滤波'});
% --- 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 on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
popup_sel_index = get(handles.popupmenu1, 'Value');
switch popup_sel_index
case 1
dt=0.01;
t=0:dt:10;Fs=1/dt;
e=sinc(t-5);%调制信号
elength=length(e);%求采样点个数
E=fft(e,elength);%快速傅里叶变换
%fe=-Fs/2:elength:Fs/2;
En=fftshift(E);%对fft输出进行重新排列,将零频分量移到频谱中心
axes(handles.axes1);
plot(t,e);title('调制信号');
xlabel('时间s');
ylabel('强度值');
axis([0 10 1.1*min(e) 1.1*max(e)]);
axes(handles.axes2);
plot(abs(En));title('调制信号频谱');
axis([0 1000 1.1*min(abs(En)) 1.1*max(abs(En))]);
set(handles.axes2,'Xticklabel',[-50,-30,-10,10,30,50])
xlabel('频率Hz');
ylabel('幅度值');
case 2
dt=0.01;
t=0:dt:10;Fs=1/dt;
s=cos(60*pi*t)+cos(40*pi*t)+cos(20*pi*t);%载波信号
slength=length(s);%求采样点个数
S=fft(s);%快速傅里叶变换
%fs=linspace(-Fs/2,Fs/2,slength);
Sn=fftshift(S);
axes(handles.axes3);
plot(t,s);title('载波信号');
xlabel('时间s');
ylabel('强度值');
axes(handles.axes4);plot(abs(Sn));title('载波信号频谱');
axis([0 1000 1.1*min(abs(Sn)) 1.1*max(abs(Sn))]);
set(handles.axes4,'Xticklabel',[-50,-30,-10,10,30,50])
xlabel('频率Hz');
ylabel('幅度值');
case 3
dt=0.01;
t=0:dt:10;Fs=1/dt;
s=cos(60*pi*t)+cos(40*pi*t)+cos(20*pi*t);%载波信号
e=sinc(t-5);%调制信号
p=e.*s;%调制
plength=length(p);
P=fft(p);
%fp=linspace(-Fs/2,Fs/2,plength);
Pn=fftshift(P);
axes(handles.axes5);
plot(t,p);title('调幅信号');
xlabel('时间s');
ylabel('强度值');
axis([0 10 1.1*min(p) 1.1*max(p)]);
axes(handles.axes6);
plot(abs(Pn));title('调幅信号频谱');
axis([0 1000 1.1*min(abs(Pn)) 1.1*max(abs(Pn))]);
set(handles.axes6,'Xticklabel',[-50,-30,-10,10,30,50])
xlabel('频率Hz');
ylabel('幅度值');
end
% 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)
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
p
end
% 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)
3 仿真结果
4 参考文献
[1]王蔚. MATLAB环境下的数字滤波器设计及其应用[D]. 苏州大学, 2002.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
【滤波器】基于低通、带通、高通滤波器实现语音去噪含Matlab源码相关推荐
- 【语音去噪】基于最小二乘自适应滤波LMS和RLS实现语音去噪含Matlab源码
1 简介 自适应信号处理的理论和技术已经成为人们常用滤波和去噪技术.文中讲述了自适应滤波的原理以及LMS算法和RLS算法两种基本自适应算法的原理及步骤.并用MATLAB分别对两种算法进行了自适应滤波仿 ...
- 【滤波器】基于FIR+IIR(高通+低通+带通)滤波器实现音频信号去噪含Matlab源码
1 简介 结合数字滤波器的理论基础和设计方法,在MATLAB程序语言环境下,设计出有限长单位脉冲响应(FIR)数字滤波器,同时利用GUI界面设计FIR数字滤波器人机交互平台,该系统平台界面直观.操作简 ...
- 【滤波器】基于汉宁窗FIR滤波器实现语音信号加噪去噪含Matlab源码
1 简介 结合数字滤波器的理论基础和设计方法,在MATLAB程序语言环境下,设计出有限长单位脉冲响应(FIR)数字滤波器,同时利用GUI界面设计FIR数字滤波器人机交互平台,该系统平台界面直观.操作简 ...
- 【语音去噪】基于FIR滤波器实现音频去噪含Matlab源码
1 简介 结合数字滤波器的理论基础和设计方法,在MATLAB程序语言环境下,设计出有限长单位脉冲响应(FIR)数字滤波器,同时利用GUI界面设计FIR数字滤波器人机交互平台,该系统平台界面直观.操作简 ...
- 【滤波器】基于低通滤波器语音信号加噪与去噪含Matlab源码
1 简介 1.1 课题的背景与意义 通过语音传递信息是人类最重要.最有效.最常用和最方便的交换信息的形式.让计算机能听懂人类的语言,是人类自计算机诞生以来梦寐以求的想法,用现代手段研究语音信号,使人们 ...
- 【图像配准】基于matab SAR-SIFT改进的SAR图像配准【含Matlab源码 2336期】
⛄一.基于SAR-SIFT改进的SAR图像配准 合成孔径雷达(synthetic aperture radar,SAR)图像配准的主要目标是对同一或不同传感器在不同时间.不同视点捕获的SAR图像进行配 ...
- 【图像去噪】基于非局部均值(NLM)滤波图像去噪含Matlab源码
1 简介 图像在获取和传输过程中,不可避免地受到外部和内部的干扰,常常因为各种因素的影响而被加入很多噪声,这十分严重的影响了人们对传输后图像信息的读取.因此通过一定方法将被噪声污染的图像进行去噪处理一 ...
- 【图像去噪】基于空域和频域两种滤波实现图像去噪含Matlab源码
1 简介 本文是基于MATLAB的GUI来对不同的(彩色或灰色)图像进行图像增强的相关处理,主要包括以下四点: 频域变换:傅里叶变换和离散余弦变换及其反变换,可将图像在空域上的特性转化到频域上: 叠加 ...
- 【智能优化算法】基于黑寡妇优化算法求解单目标优化问题含Matlab源码
1 简介 本期为大家介绍黑寡妇优化算法(Black Widow Optimization Algorithm,BWO).该算法由Adria´n F. Peña-Delgado等人于2020年提出,主要 ...
最新文章
- 超越村后端开发(3:安装djangorestframework+序列化+API开发前期准备)
- 利用python进行数据分析_资料 | 利用Python进行数据分析
- oracle中or会使索引,为何查询条件中多了 OR 选项,索引就走全扫描?
- 查询结果取交集_Elasticsearch 查询过程中的 prefilter 原理
- Dubbo消费者代理的调用
- vue重复路由_解决vue路由name同名,路由重复的问题
- ListView和RecycleView的性能比对
- Python的collections模块中namedtuple结构使用示例
- Ducci 队列 -基础queue,set
- Linux shell脚本详解及实战(一)——shell简介、shell变量及脚本规范
- 【Tensor】(张量)的创建
- EC Final 2019 题解
- catia二次开发:人机交互select,start command
- 致敬科比,实现查询科比每赛季数据的Web服务器
- 网易云音乐前副总裁教你如何做产品 —《幕后产品》读书笔记
- 华夏旅游CMS商城系统操作手册
- 学习C语言篇之网络编程操作
- UVA10820欧拉函数求互质的对数
- Python计算机视觉——基于BOW的图像检索
- 视觉会议收藏二(评论)
热门文章
- 一种针对物联网设备设计的数据模型
- 更轻更好用的蓝牙耳机,日常佩戴更舒适,QCY Crossky Link体验
- 网易互娱校招游戏初级开发工程师一面+二面 面经
- 前端性能分析实战(一)-Get Started With Analyzing Runtime Performance
- Linux系统下指定应用安装目录时提示 ./configure报-bash: ./configure: No such file or directory
- 职称计算机作用,2010年职称计算机:Photoshop滤镜作用
- R语言中如何处理时间格式
- 电脑蓝屏代码0x000000ed怎么解决
- PPT基础(三)更改背景颜色
- 【漫画】分享16张程序员高端漫画