数字语音信号处理的举例



设计要求:

利用MATLAB对语音信号进行分析和处理,采集语音信号后,在MATLAB软件平台进行频谱分析。

设计步骤:

1)选择一个语音信号作为分析对象,或录制一段语音信号;

2)对语音信号进行采集,画出采集后的语音信号的时域波形和频谱图。

理论依据:

1)采样频率:采样频率(也称为采样速度或者采样率)定义了每秒从连续信号 中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率只能用于 周期性采样的采样器,对于非周期性采样的采样器没有规则限制。通俗的讲,采 样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在 单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。

2)采样位数:即采样值或取样值,用来衡量声音波动变化的参数

3)采样定理:在进行模拟/数字信号的转换过程中,当采样频率

fs.max 大于信号中,最高频率 fmax2倍时,即:fs.max>=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的 510倍;采样定理又称奈奎斯特定理。

4)时域信号的 FFT 分析:信号的谱分析就是计算信号的傅里叶变换。连续信号与系统的傅里叶分析显然不便于直接用计算机进行计算,使其应用受到限制。 而 FFT 是一种时域和频域均离散化的变换,适合数值运算,成为用计算机分析离散信号和系统的有力工具。对连续信号和系统,可以通过时域采样,应用 DFT 进 行近似谱分析。下面分别介绍用 DFT 对连续信号和离散信号(序列)进行谱分析 的基本原理和方法。

信号采集:

windows录音机录一段文件,把文件“speed”保存入 MATLAB的文件夹下 的 work文件夹中。以wav格式保存(8000kHz16位,单声道,15KB/秒)。这是WINDOWS操作系统规定的声音文件存的标准。

[y,fs,nbits]=wavread ('speech'); %把语音信号进行加载入MATLAB仿真软件平台中,采样值放在向量y中,fs 表示采样频率(hz),nbits 表示采样位数。

sound(y,fs,nbits); %回放语音信号

n = length (y) ; %求出语音信号的长度

Y=fft(y,n); %傅里叶变换

调用参数y 为被变换的时域序列向量,N DFT 变换区间长度,当N 大于y的长度时,fft函数自动在y后面补零。函数返回yN DFT变换结果向量Y。当N小于y的长度时,fft函数计算y的前面N个元素构成的N长序列的NDFT,忽略y后面的元素。

首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在matlab中利用 fft 对信号进行快速傅里叶变换,得到信号的频谱特性。

subplot(2,1,1);plot(y);title('原始信号波形')subplot(2,1,2);plot(abs(Y));title('原始信号频谱')

其程序如下:

fs =8000;nbits =16; %fs 表示采样频率(hz),nbits 表示采样位数。

[y,fs,nbits]=wavread ('speed');

sound(y,fs,nbits); %回放语音信号

n = length (y) ; %求出语音信号的长度

Y=fft(y,n); %傅里叶变换

subplot(2,1,1);plot(y);title('原始信号波形') ; xlabel('时间') ; ylabel(' 幅度') ;subplot(2,1,2);plot(abs(Y));title(' 原 始 信 号 频 谱');xlabel(' 时 间 '); ylabel('幅度');


  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值