# 【语音处理】基于matlab GUI低通滤波器语音信号加噪与去噪【含Matlab源码 1708期】

## ⛄一、语音处理简介（附课程作业报告）

1 语音信号的特点

[En]

Through the observation and analysis of a large number of speech signals, it is found that the speech signal mainly has the following two characteristics:

①在频域内，语音信号的频谱分量主要集中在300～3400Hz的范围内。利用这个特点，可以用一个防混迭的带通滤波器将此范围内的语音信号频率分量取出，然后按8kHz的采样率对语音信号进行采样，就可以得到离散的语音信号。

[En]

In the time domain of ②, the speech signal has the characteristic of “short time”, that is, on the whole, the characteristics of the speech signal change with time, but in a short time interval, the speech signal remains stable. It shows the characteristics of periodic signal in the voiced segment and random noise in the unvoiced segment.

2 语音信号的采集

[En]

After collecting the speech signal, it is necessary to analyze the speech signal, such as time domain analysis, spectrum analysis, spectrogram analysis and noise filtering.

3 语音信号分析技术

[En]

According to the different properties of the analyzed parameters, speech signal analysis can be divided into time domain analysis, frequency domain analysis, inverse domain analysis and so on. Time domain analysis method has the advantages of simplicity, small amount of calculation and clear physical meaning. However, because the most important perceptual characteristic of speech signal is reflected in the power spectrum, and the phase change only plays a small role, so frequency domain analysis is more important than time domain analysis.

4 语音信号的时域分析

[En]

The time domain analysis of speech signal is to analyze and extract the time domain parameters of speech signal. In speech analysis, the first contact and the most intuitive is its time domain waveform. The speech signal itself is a time-domain signal, so time-domain analysis is the earliest and most widely used analysis method, which directly uses the time-domain waveform of the speech signal. Time domain analysis is usually used for the most basic parameter analysis and applications, such as speech segmentation, preprocessing, large classification and so on. The characteristic of this analysis method is that the speech signal expressed by ① is more intuitive and the physical meaning is clear. ② is easy to implement and has few operations. ③ can get some important parameters of speech. ④ only uses general equipment such as oscilloscope, which is relatively simple to use.

5 语音信号的频域分析

[En]

The frequency domain analysis of speech signal is to analyze the frequency domain characteristics of speech signal. In a broad sense, the frequency domain analysis of speech signal includes spectrum, power spectrum, cepstrum, spectrum envelope analysis and so on, while the commonly used frequency domain analysis methods include bandpass filter bank method, Fourier transform method, line prediction method and so on.

## ⛄二、部分源代码

function varargout = untitled(varargin)
% UNTITLED M-file for untitled.fig
% UNTITLED, by itself, creates a new UNTITLED or raises the existing
% singleton*.

%
% H = UNTITLED returns the handle to a new UNTITLED or the handle to
% the existing singleton*.

%
% UNTITLED(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in UNTITLED.M with the given input arguments.

%
% UNTITLED(‘Property’,’Value’,…) creates a new UNTITLED or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before untitled_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to untitled_OpeningFcn via varargin.

%
% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
% instance to run (singleton)”.

%

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

% Begin initialization code – DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …

‘gui_Singleton’, gui_Singleton, …

‘gui_OpeningFcn’, @untitled_OpeningFcn, …

‘gui_OutputFcn’, @untitled_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 untitled is made visible.

function untitled_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 untitled (see VARARGIN)

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

% Update handles structure
guidata(hObject, handles);

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

% — Outputs from this function are returned to the command line.

function varargout = untitled_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)
y=y(:,1);
N=length(y);
sound(y,fs,bits);
Y=fft(y,40000);%采样点数40000
axes(handles.axes1);
plot(y);
axis([1600 2000 -1 1]);
axes(handles.axes2);
plot(abs(Y));
axis([0 20000 0 1500]);

% — 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)
y=y(:,1);
N=length(y);
t=(0:N-1)/fs;
n=0:N-1;
f0=3445;
s=sin(2 pi_f0/fs*n);%噪音信号
sound(s);
axes(handles.axes3);
plot(t,s);
axis([0 0.001 -2 2]);
spinpu=fft(s,N);
Pyy=spinpu. _conj(spinpu)/N;
halflength=floor(N/2);
f=fs
(0:halflength)/N;
axes(handles.axes4);
plot(f,Pyy(1:halflength+1));%噪音信号频谱
axis([3000 4000 0 10]);

## ; ⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]韩纪庆,张磊,郑铁然.语音信号处理（第3版）[M].清华大学出版社，2019.

[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社，2019.

[3]宋云飞,姜占才,魏中华.基于MATLAB GUI的语音处理界面设计[J].科技信息. 2013,(02)

3 备注

[En]

Brief introduction this part is extracted from the Internet, for reference only, if infringement, contact to delete

Original: https://blog.csdn.net/TIQCmatlab/article/details/122912132
Author: 海神之光
Title: 【语音处理】基于matlab GUI低通滤波器语音信号加噪与去噪【含Matlab源码 1708期】

(0)

### 大家都在看

• #### SSA

In compiler design, static single assignment form (often abbreviated as SSA form or simply…

人工智能 2023年6月4日
0163
• #### 小样本目标检测：few-shot-object-detection训练自己的数据集

few-shot-object-detection代码实验过程 FsDet包含ICML 2020论文的官方小样本检测实现论文地址：Frustratingly Simple Few-…

人工智能 2023年6月16日
0133
• #### TensorFlow梳理一

人工智能 2023年5月24日
0147
• #### halcon-scaled_shape_model注释

This example program shows how to find scaled and rotated shape models. dev_update_pc (&#8…

人工智能 2023年6月28日
0140
• #### pytorch torchvision pip本地安装,可快速安装

pip 快速安装pytorch torchvision1.先在命令窗口查看自己的cuda对应版本，如果有独立显卡，可使用cuda加速器处理，输入指令为nvidia-smi,我的版本…

人工智能 2023年7月21日
0135
• #### df.groupby()方法讲解

df.groupby()方法讲解 pandas中，数据表就是DataFrame对象，分组就是groupby方法。将DataFrame中所有行按照一列或多列来划分，分为多个组，列值相…

人工智能 2023年7月7日
0133
• #### spo实体关系抽取、属性抽取

这里面针对的是一个头实体和一个尾实体一一对应的情况下，不存在一个头实体对应多个尾实体交叉的情况。 一个字符，针对同一个关系，只能被标注一次。这个关系再次出现的时候，顺延标注其他字符…

人工智能 2023年6月1日
0146
• #### 数据分析第一章：pandas入门

pandas是数据分析的首选库。它含有使数据清洗和分析工作变得更快更简单的数据结构和操作工具。pandas经常和其它工具一同使用，如数值计算工具NumPy和SciPy，分析库sta…

人工智能 2023年7月8日
0105
• #### 【OpenCV 例程300篇】11. 图像通道的拆分（cv2.split）

文章目录：『youcans 的 OpenCV 例程300篇 – 总目录』 【OpenCV 例程300篇】11. 图像通道的拆分（cv2.split） 函数 cv2.sp…

人工智能 2023年5月28日
0157
• #### conda下安装pytorch最详细教程 // 安装pytorch踩坑记录 // cuda11.5下pytorch安装 // torch.cuda.is_available()输出False解决办法

几点说在前面！！！！！ 我踩的坑： 1、一开始入坑使用pytorch框架没有用anaconda，现在非常后悔！！！conda对小白管理环境真的巨好用！！！2、安装时候torch版本…

人工智能 2023年7月23日
0118
• #### 超分之BasicVSR++

这篇文章是BasicVSR的升级版本 \colorbox{tomato}{升级版本}升级版本​，同一批作者将BasicVSR中的Propagation和Alignment部分进行了…

人工智能 2023年6月25日
0128
• #### 解决from tensorflow.contrib import layers报错，No module named ‘tensorflow.contrib‘的问题

这个问题出现的时候，首先要检查自己安装的tensorflow包的版本，因为一般tensorflow大于2.0的版本已经不再支持contrib的应用。 首先打开电脑命令行模式，输入p…

人工智能 2023年7月4日
0131
• #### Pytorch语义分割理解

贴出部分pytorch的语义分割代码理解 #读取图片 image =PIL.Image.open("D:\\DataSets\\PascalVOC2012\\VOCdev…

人工智能 2023年7月23日
0154
• #### 讯飞AIUI智能机器人5—–让器理解你（语音技术综合应用）

🍖🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖…

人工智能 2023年5月27日
0154
• #### 5款热门可视化工具对比，老板直呼酷炫！

最近看到不少留言”老板总是嫌自己做的可视化报表太丑怎么办？”，还把自己做的其中部分报表发给我，让我客观的评价下，以下是原图。 对比5款数据分析热门工具，报表…

人工智能 2023年7月15日
0122
• #### Linux常用命令

账号管理 JVM命令 jps -v 查询所有的java进程 jmap -heap 进程id 查看java堆内存 jstat -gc 进程id 1000 30 在30秒时间内每秒打印…

人工智能 2023年6月29日
0135