语音信号处理matlab.docx
《语音信号处理matlab.docx》由会员分享,可在线阅读,更多相关《语音信号处理matlab.docx(8页珍藏版)》请在冰豆网上搜索。
语音信号处理matlab
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
信号与系统课题
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
Matlab语音信号处理
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
姓名:
陈冠英
学号:
专业:
自动化
一、Matlab简介MATLAB是功能强大的科学及计算软件,它不但具有以矩阵计算为基础的强大数学计算和分析功能,而且还具有丰富的可视化图形表现功能和方便的程序设计能力。
MATLAB的应用领域极为广泛,除了数学计算和分析外,还被广泛地应用于自动控制、系统仿真、数字信号处理、图形图像分析、数理统计、人工智能、虚拟现实技术、通信工程、金融系统等领域,因此,MATLAB是面向21世纪的计算机程序设计及科学计算语言。
随着MATLAB/SIMULINK通信、信号处理专业函数库和专业工具箱的成熟,它们在通信理论研究、算法设计、系统设计、建模仿真和性能分析验证等方面的应用也更加广泛。
MATLAB软件集数值分析、信号处图形显示于一体,且界面友好、具有强大的专业函数库和工具箱,在数字信号处理的科学研究中越来越重要的计算和仿真验证工具。
二、语音信号的录制
使用电脑的声卡设备采集一段语音信号,并将其保存在电脑中。
图1PC机的语音信号采集过程
由于本机的系统为WIN8,其自带的录音机所保存的录音格式不是WAV,而MATLAB只识别WAV的语音信号,于是我通过一个录音软件Moo0VoiceRecorder1.40录制一段语音“我爱信号与系统”由于接下来的分析处理。
图2录音界面
三、信号的时域分析与频域分析
3.1语音信号的采样与回放
我们使用Matlab里面的wavread(‘filename’)函数对其进行读取。
其函数具体如下
[y,fs,nbits]=wavread(filename);
其中y就是音频信号,fs是采样频率,nbit是采样精度。
由于录制得到的语音信号为双声道,我们只取其中一声道进行分析。
程序片段如下:
运行后即可听到“我爱信号与系统”的语音。
3.2时域分析
我将其转化为了时域模式。
程序片段:
图3语音时域图
这样我们就得到了语音的时域图像,可以看到信号的波动与“我爱信号与系统”的口音相同。
3.3频域分析
我们已经学了连续信号的傅里叶变换,在这里我们需要处理数字信号。
我们使用FFT函数来分析信号的频域特性。
FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。
有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。
这就是很多信号
分析采用FFT变换的原因。
另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。
在使用FFT(x,N)时需要注意:
假设采样频率为Fs,采样点数为N,做FFT之后,某一点n(n从1开始)表示的频率为:
Fn=(n-1)*Fs/N;该点的模值除以N/2就是对应该频率下的信号的幅度(对于直流信号是除以N);该点的相位即是对应该频率下的信号的相位。
由于FFT结果的对称性,通常我们只使用前半部分的结果,即小于采样频率一半的结果。
下面是程序片段:
图4频谱图(上)FFT模值(下)
将FFT模值得很坐标缩小一下,我们得到下图:
图5FFT模值(缩小横坐标)
可以看到信号的频率主要分布在100Hz-1KHZ的频段上,即语音信号为低频信号。
四、信号加噪与分析
MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。
WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。
在这里我们直接使用randn(),在MATLAB中可以用randn产生均值为0方差为1的正态分布白噪声。
程序片段:
所得图像如下:
图6噪音时域图(上)信号加噪音时域图(下)
图7噪音频域图(上)信号加噪音频域图(下)
运行程序后,首先会听到沙沙的噪声,接着听到混有沙沙声的“我爱信号与系统”。
我们可以看到噪声的频率范围遍布低频与高频,使得信号在低频与高频均有值,我们再下面需要滤去高频成分。
五、进行幅度调制与分析
为了减少在传输时的耗损,人们一般是先对传输信号进行特殊处理,然后再传递。
把原始的待传信号托附到高频振荡的过程称为调制。
我们知道音频信号的频率在我们的听觉范围内,音频信号在无线传输的过程中会受到各种声音的干扰而产生能量消耗!
因此限制了传输的距离!
所以在现实的传送过程中要现对语音信号进行调制再发送出去!
设正弦载波为
式中,A为载波幅度;c为载波角频率;0为载波初始相位(通常假设0=0).
调制信号(基带信号)为m(t)。
根据调制的定义,振幅调制信号(已调信号) 一般可以表示为
设调制信号m(t)的频谱为M(),则已调信号Sm(t)的频谱Sm():
在这里我们使用载波函数modulate=cos(2000*π*t),载波频率为10KHz,录音的频率主要分布在100Hz-1Khz。
程序片段如下:
运行程序后,由于在程序中回放了录音,会听到声音,但是声音与之前差别很大,伴有吱吱响。
我取了调制前后时域与频域波形进行比较,如下图:
图8调制前时域与频域(左上)(右上)
调制后时域与频域(左下)(右下)
仅供个人用于学习、研究;不得用于商业用途。
Forpersonaluseonlyinstudyandresearch;notforcommercialuse.
NurfürdenpersönlichenfürStudien,Forschung,zukommerziellenZweckenverwendetwerden.
Pourl'étudeetlarechercheuniquementàdesfinspersonnelles;pasàdesfinscommerciales.
толькодлялюдей,которыеиспользуютсядляобучения,исследованийинедолжныиспользоватьсявкоммерческихцелях.
以下无正文