实验一:语音压缩编码的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 语音压缩编码的实现——增量调制
一、 实验目的
(1) 会用MATLAB 语言表示基本的信号
(2) 用MATLAB 实现语音信号的采集
(3) 理解增量调制(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),语音会变调?
(二)设输入信号为: ())300sin(5.0100sin t t y ππ+=,增量调制的采样频率为1000Hz ,采样时间从0到0.02s ,量化阶距δ=0.4,单位延迟器初始值为0。
思考题(1)按图3.3-1写出程序流程图,并编程实现编译码的全过程,最后用subplot 命令表示出原信号、编码输出信号以及译码输出(使用stairs(t,x)命令将译码表示为阶梯状图,在这幅图中使用hold on 命令,把原信号也一并显示出作为对比)的信号(假设理想传输,不考虑调制解调方式以及信道上的噪声)。
补充:N=length(t); 求数组长度(即行数或列数中的较大值)
D(N)=0;令数组中每个值都为0
思考题(2)由实验的结果说明什么是斜率过载,在哪些时刻发生?什么是散粒噪声,在哪些时刻发生?如何兼顾优化这两种失真?ADPCM 的主要思想是什么?
思考题(3)为什么说增量调制是PCM 的特殊形式?简述PCM 、增量调制以及DPCM 的不同。
(三)补充题:完成书本P25所示的自适应增量调制算法(控制可变因子M )
四、 实验要求
(1)编制完整的实验程序,实现对信号的模拟并得出实验结果。
(2)在实验报告中写出完整的程序,并完成上述思考题。
x 105-0.1-0.0500.050.1时间t 幅值原始语音采样后的信号波
形-4-2024x 104020406080频率Hz 幅值信号原始频率
x 105
时间t 幅值
调制后的信号波
形
-4-2024
x 104
频率Hz 幅值
信号调制后的频率
Figure1 原始信号和调制后的信号波形及频率
x 105时间t 幅值加入高斯白噪声后的波形
x 104频率Hz 幅值
加入高斯白噪声后的频
率x 105
时间t 幅值
加噪解调后的信号波形
x 104
频率Hz 幅值
加噪解调后的频率
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,2);
plot(y_mod);
xlabel('时间t');
ylabel('幅值');
title('调制后的信号波形');
YY0=fft(y_mod,2^N);
Y1(2^N/2+1:2^N)=YY0(1:2^N/2);
Y1(1:2^N/2)=YY0(2^N/2+1:2^N);
subplot(2,2,4);
plot(ff,abs(Y1));
xlabel('频率Hz');
ylabel('幅值');
title('信号调制后的频率');
%加入高斯白噪声后的语音信号分析
y_mod1=awgn(y_mod,20,'measured');