- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一语音压缩编码的实现
实验一 语音压缩编码的实现——增量调制
实验目的
会用MATLAB语言表示基本的信号
用MATLAB实现语音信号的采集
理解增量调制(DM)的原理并编程实现编译码
实验原理
1、信号是随时间变化的物理量,它的本质是时间的函数。信号可以分为时间连续信号和时间离散信号。连续信号是指除了若干不连续的时间点外,每个时间点上都有对应的数值的信号。离散信号则是只在某些不连续的点上有信号值,其它的时间点上信号没有定义的一类信号。离散信号一般可以由连续信号经过模数转换而得到。
语音信号是模拟信号,经麦克风输入计算机后,就存为数字信号。
2、增量调制编码基本原理是采用一位二进制数码“1”或“0”来表示信号在抽样时刻的值相对于预测器输出的值是增大还是减小,增大则输出“1”码,减小则输出“0”码。收端译码器每收到一个1码,译码器的输出相对于前一个时刻的值上升一个量化阶,而收到一个0码,译码器的输出相对于前一个时刻的值下降一个量化阶。
增量调制的系统结构框图如课本上图3.3-1所示。在编码端,由前一个输入信号的编码值经解码器解码可得到下一个信号的预测值。输入的模拟音频信号与预测值在比较器上相减,从而得到差值。差值的极性可以是正也可以是负。若为正,则编码输出为1;若为负,则编码输出为0。这样,在增量调制的输出端可以得到一串1位编码的DM码。
图3.3-1 增量调制的系统结构框图
实验内容与方法
(一)、用windows自带的录音机录一段自己的语音(3s内),存为“.wav”文件。
1、补充:语音信号的采集
Wavread函数常用的语法为:[y,fs,bite]=wavread(‘filename.wav’);
这里fs为采样频率,bite为采样点数。
AWGN:在某一信号中加入高斯白噪声
y = awgn(x,SNR) 在信号x中加入高斯白噪声。信噪比SNR以dB为单位。
y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为measured,则函数将在加入噪声之前测定信号强度。
用subplot命令表示出原语音信号和加噪后的语音信号,用sound(y,fs,bite)回放输入的音频信号进行对比,也可用wavplay(y,fs)回放。
2、思考题(1)查看文件属性,写出音频采样大小,频道数,采样级别,并写出位速如何计算。
思考题(2)利用函数wavread对语音信号进行采样,通过查看相应变量,写出采样点数为多少。
思考题(3)简述sound以及wavplay两个函数有何不同,为何直接输入wavplay(y),语音会变调?
(二)设输入信号为: ,增量调制的量化阶距δ=0.4单位延迟器初始值为0N=length(t); 求数组长度(即行数或列数中的较大值)
D(N)=0;令数组中每个值都为0
思考题(2)由实验的结果说明什么是斜率过载,在哪些时刻发生?什么是散粒噪声,在哪些时刻发生?如何兼顾优化这两种失真?ADPCM的主要思想是什么?
思考题(3)为什么说增量调制是PCM的特殊形式?简述PCM、增量调制以及DPCM
的不同。
(三)补充题:完成书本P25所示的自适应增量调制算法(控制可变因子M)
实验要求
(1)编制完整的实验程序,实现对信号的模拟并得出实验结果。
(2)在实验报告中写出完整的程序,并完成上述思考题。
1.
Figure1 原始信号和调制后的信号波形及频率
Figure2 加入高斯白噪声和解调后的信号波形及频率
程序1如下:
%原始语音采样后的信号分析
N=16;
fs=44100;
bits=16;
[y,fs,bits]=wavread(F:\1.wav);
figure(1)
subplot(2,2,1);
plot(y);
xlabel(时间t);
ylabel(幅值);
title(原始语音采样后的信号波形);
Y=fft(y,2^N);
Y0(2^N/2+1:2^N)=Y(1:2^N/2);
Y0(1:2^N/2)=Y(2^N/2)/2^N;
ff=fs*(-(2^N/2-1):2^N/2)/2^N;
subplot(2,2,3);
plot(ff,abs(Y0));
xlabel(频率Hz);
ylabel(幅值);
title(信号原始频率);
%信号调制
fc=9000; %载波频率
y_mod=modulate(y,fc,fs,am); %对原语音信号调制
subplot(2,2
文档评论(0)