信号与系统课程设计报告
- 格式:docx
- 大小:122.23 KB
- 文档页数:10
MATLAB实验设计报告
信号与系统
课程设计:语音信号处理
题目:
3.Speech signal processing
In Matlab, we can use wavrecord command to record the speec h signal.
Please usehelp wavrecord command to study how to use it. Meanwhile we can use wavplay
command to play the speech signal.
(1) Please record a speech signal that lasts for 3 seconds, and play the speech signal.
(2) Use different sampling frequencies to record a speech si gnal that lasts for 3
seconds, please sketch their waveforms and spectra. Please fi nd the lowest
sampling frequency that can keep the speech signal undistorte
d.
(3) Please record a boy’s voice and a girl’s voice, respe ctively. Combine two voices
and design a filter to separate these two voices. Compare t he separated speech
with original voice to verify the separation effect.
4. Amplitude modulation
Consider a system shown in Figure 1, where y t( ) is the input of a nonlinear syste
一.背景
语音信号处理是研究用数学信号处理技术对语音信号进行处理的一门学科,它是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。其中语音信号处理的一个重要部分是频谱分析。有趣的是人类对变化的频率比对变化的本身要敏感的多。人耳对声音敏感的不是声波本事而是声波的频率,例如男声、女声和低音、高音等。所谓频谱分析就是周期性分析,频谱估计就是周期性估计。频谱分析和估计不仅是揭示信号特征的重要方法,也是处理信号的重要手段。这些方法和手段已经广泛地应用于通信、雷达、地震、生物医学、物理、化学、音乐、经济等领域。
二.理论分析
第二题的实验理论:如何改变采样率?我们首先用matlab中的读取音频函数以足够高的的采样频率将原始信号读入matlab中,变成一个n*2列的矩阵,然后对这个矩阵进行处理。所以我们将录制的音频文件以wav格式读入matlab中,原始信号的采样频率为48000Hz。为了改变其采样频率,我们对该音频信号进行降采样处理,即降低音频信号的采样频率,在matlab中用resample函数实现。将原始信号和降采样信号的时域频域图利用matlab绘出,为了找到使信号不失真的最低采样频率,对比两个频域图,若频域图处于刚要重叠又不重叠的时候,即找到了最低采样率。
第三题的实验理论:如何将男女声进行有效的分离?一般的声音都是由发音体发出的一系列频率、振幅各不相同的振动复合而成的。这些振动中有一个频率最低的振动,就是基音,基音是物体整部分振动所产生的音,基音音量大,人耳最容易听见,而物体分部分振动产生的音称为泛音,泛音音量小,人耳不容易听见。通过查询资料,得知男女声音的基音频率不同,男生基音频率100-200Hz,女生基音频率200-350Hz,所以可以根据基音频率设计滤波器,分别留下男女声音的基音频率附近频率的振动,得到分离后的语音。在进行滤波之前首先观察了组员男女生发出的声音的频谱图,发现两个频谱图有很大的重合部分,所以为了达到比较理想的效果,在进行男女声音合并之前首先对两个信号进行预滤波处理。我们组设计了一个巴特沃斯带通滤波器对原始男女信号进行预滤波处理,对合并信号进行分离处理。
巴特沃斯滤波器特点:通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。
如下为巴特沃斯滤波器的设计代码:
fp1=50;
fp2=80;
fp=[fp1,fp2];
fr1=1;
fr2=200;
fr=[fr1,fr2];
ap=1;
as=10;
[n,fn]= buttord(fp/(Fs/2),fr/(Fs/2),ap,as,'z');
[b,a]=butter(n,fn);
fp1和fp2为通带截至频率上下限,fr1和fr2为阻带截至频率上下限,ap和as为通带边和阻带边db衰减值。滤波器设计中的fp/(Fs/2) 和fr/(Fs/2)即为滤波器设计参数,采用的是归一化模式,最后一行代码是计算巴特沃斯滤波器系数。以上所有参数值为对原始男声信号进行预滤波处理,若想对女声信号进行与滤波以及分离男声和女声信号,可直接修改以上参数即能够达到预想效果。
三.程序代码
1.第一题代码
record=audiorecorder(44100,16,2);%创建一个保存音频信息的对象,
44100表示采样频率,16表示用16bits,2表示两通道
recordblocking(record,7);%录制音频,7表示音频长度为7s
R=getaudiodata(record);%把刚录制的音频保存为一个n*2的矩阵
sound(R,44100);%播放音频文件
2.第二题代码
[x,Fs]=audioread('h.wav');%原始信号读入
q=2;%降采样倍数
y=resample(x,1,q);%降采样
n1=length(x);%原信号长度
n2=length(y);%降采样后的信号长度
t1=0:1/Fs:(length(x)-1)/Fs;%原信号时间长度