语音信号的采样和频谱分析
信息与通信工程学院 电子 145 班 王鹏举
一.引言
1.实验内容
利用 MATLAB 指令录制一段语音信号,对其进行时域波形的观察和频域的谱
分析。根据该信号的频谱构成,选择三种不同的采样频率重新录制该语音信号,
并试听回放效果,进行比较,以验证采样定理。
2. 实验任务
(1)利用 wavrecord 语句,以 8000Hz 的采样频率,录制一段 1 秒的单声道
语音信号;
(2)对该语音信号进行傅里叶变换,并画出其时域和频域波形,要求时域波
形的横轴为时间(秒),频域波形的横轴为频率(赫兹);
(3)根据语音信号的频谱图,确定该语音信号的上限频率,分别以小于 2
倍上限频率、2 倍上限频率和大于 2 倍上限频率为采样频率重新录制语音信号,
并播放以不同采样频率所录制的语音信号,试听回放效果,进行比较,给出结论。
二.基本原理
由于语音信号是一种连续变化的模拟信号,而计算机只能处理和记录二进制
的数字信号,因此,由自然音而得的音频信号必须经过采样、量化和编码,变成
二进制数据后才能送到计算机进行再编辑和存储。语音信号输出时,则与上述过
程相反。
用计算机的声音编辑工具进行语音信号的录制时,已经利用了计算机上的
A/D 转换器,将模拟的声音信号变成了离散的量化了的数字信号。话音时,量化
了的数字信号又通过 D/A 转换器,把保存起来的数字数据恢复成原来的模拟的语
音信号。
(1)应用 MATLAB 进行声音的录制
在计算机声卡的输入端口插入话筒(或者其他声音信号源),利用软件将话
筒中的模拟话音转换为数字话音,并且以给定的文件名记录下来。
在 MATLAB 命令窗口中键入“y=wavrecord(m,Fs,ch)”,并按回车键(或者在
m 文件编写的程序中应用 wavrecord 语句,并运行),此时刻以后的 m/Fs 秒时段
内的声音信号将以 y 为文件名,以数字声音信号.wav 格式存储在 MATLAB 的工作
空间里。m 为记录的长度单位,即采样数;Fs 为记录时的采样频率(赫兹),缺
省时为 11025;ch 表示来自 Windows WAVE 声卡的声道数,当不止一个声道时,
采样的数据就是 m×ch 阶矩阵,缺省时 ch=1。
(2)应用 MATLAB 进行声音的播放
在 MATLAB 命令窗口中键入“sound(y,Fs)”,并按回车键(或者在 m 文件编
写的程序中应用 sound 语句),此时刻以后 MATLAB 将存在工作空间的矢量 y 以
Fs 为采样频率还原为声音。Y 的取值范围为-1.0~1.0,超出此范围的部分将被
忽略。当 y 是一个 m×2 阶矩阵时,播放出立体声效果。Fs 为采样频率,缺省值
为 8192Hz。
另外,与 wavrecord 语句相对应的 wavplay 也可以实现声音的播放,其功能
和使用方式与 sound 语句基本一致,只是在以 wavplay 表达时,采样频率 Fs 缺
省值为 11025Hz。
(3)语音信号的频谱分析
傅里叶变换建立了信号频谱的概念。所谓傅里叶分析即分析信号的频谱(频
率构成)、频带宽度等。对语音信号的分析也不例外,也必须采用傅里叶变换这
一工具。
对于连续时间信号 )(t
f ,其傅里叶变换 )
(F 为:
F
(
)
f
)(
et
t
j
dt
连续时间傅里叶变换特别适合于对时间连续信号的理论分析,但是,由于其变
(F 都是连续函数,不适合于计算机处理。虽然 MATLAB 语
换两边的函数 )(t
f 和 )
言提供了符号函数 fourier 来实现傅里叶变换,但该函数需要信号的解析表达
式。而工程应用中经常需要对抽样数据进行傅里叶分析,这种情况下往往无法得
到信号的解析表达式,因而必须采用傅里叶变换的数值计算方法。下面介绍傅里
叶变换的数值方法。
如果 )(t
f 的主要取值区间为[ 1t , 2t ],定义
T
t
2
t
1
为区间长度。在该区间内
抽样 N 个点,抽样间隔为
t
T
N
,则有:
F
)
(
1
N
n
0
f
(
t
1
)
etn
(
j
t
1
tn
)
t
t
1
N
n
0
f
(
t
1
)
etn
(
j
t
1
tn
)
上式可以计算出任意频点的傅里叶变换值,假设 )
(F 的主要取值区间位于
[ 1, 2 ],要计算其间均匀抽样的 k 个值,则有:
F
(
1
k
)
t
1
N
n
0
f
(
t
1
jetn
)
(
k
()
1
t
1
tn
)
2
1
k
其中,
为频域抽样间隔。
(4)采样定理
采样又名抽样,就是利用抽样脉冲序列从连续信号 )(t
f 中抽取一系列离散样值
构成抽样信号 )(t
f s 。抽样的意义就在于,要能够从抽样信号 )(t
f s 中无失真地恢
复原连续信号 )(t
f 。时域抽样定理给出了无失真地恢复的条件,时域抽样定理的
内容如下:
一个频谱受限的信号 )(t
f ,如果频谱只占据
m
m
~
的范围,则信号 )(t
f 可
1
以用等间隔的抽样值唯一地表示。而抽样间隔必须不大于 mf2
(其中
2
f
m
),或者说,最低抽样频率为 mf2 。
m
通常把最低允许的抽样频率
f
s
2 称为奈奎斯特频率,把最大允许的抽样间
f
m
T
s
m
1
2
f
隔
m
称为奈奎斯特间隔。
三.实现方法
利用“y=wavrecord(m,Fs,ch)”语句采集一段声音信号,通
过”fft(y,Fs)”语句对录制的声音信号进行傅里叶变换,得到所录制的语音
信号的频谱图。
得出上限频率。再用“y=wavrecord(m,Fs,ch)”语句,以小于2倍上
限频率、2倍上限频率和大于2倍上限频率为采样频率重新录制语音信号,
并播放以不同采样频率所录制的语音信号。具体编制程序如下:
close all;
clc;
clear all;
t=linspace(0,0.3,2400);
y=wavrecord(2400,8000,1);
figure(1)
plot(y)
figure(2)
plot(t,y)%采集信号波形
xlabel('时间/t');
f=fft(f,16000);
figure(3)
plot(abs(f));
xlabel('频率/w');
wavplay(y,8000)
z=wavrecord(5000,15000,1);% 小于 2 倍上限频率
wavplay(z,20000)
a=wavrecord(5300,16000,1);% 2 倍上限频率
wavplay(a,240000)
b=wavrecord(3000,20000,1);% 大于 2 倍上限频率
wavplay(b,30000)
四.结果验证
如图 1 所示为以采样点为横坐标绘制的波形图。图 2 是该段声音信号的
时域波形图。图 3 是通过对声音信号进行傅里叶变换得到的频谱图。通过观察分
析,可以看到该段声音信号的上限频率为 8000Hz.当采样频率小于二倍的上限频
率时,信号失真严重,丢失了很多信号变化的细节。当采集到的信号的采样频率
大于等于声音信号的上限频率时,较为准确的还原了声音信号。验证了抽样定理。
图 1
图 2 信号波形图
图 3 频谱图
参考文献
[1]郑君里, 应启珩, 杨为理. 信号与系统引论. 北京: 高等教育出版社, 2009.
[2]李敏, 陈兴文. 信号分析与处理的软硬件实现.大连: 大连海事出版社,2013