语音信号处理基础(四)—语音编辑
实验目的
1.掌握语音信号线性叠加的方法,实现非等长语音信号的叠加
2.熟悉语音信号卷积原理,实现两语音卷积。
3.熟悉语音信号升采样/降采样方法。
实验原理
1.信号的叠加
两个信号X1和X2,通过短时信号的补零,使两语音信号有相同的长度,叠加信号为
X n e w = X 1 + X 2 X_{new}=X_1+X_2 Xnew=X1+X2
叠加白噪声通过生成随机信号的方法来实现
举例
在一个音频信号上叠加一个信噪比为10dB的高斯白噪声,并播放声音对比
实现代码
%语音信号叠加
clc
clear all
[x,fs]=audioread('C2_2_y.wav');
s=1:length(x);
t=s/fs;
xmax=max(abs(x)); %归一化处理
x=x/xmax;
y=awgn(x,10); %在原始信号上叠加信噪比为10dB的高斯白噪声
ymax=max(abs(y));
y1=y/ymax;
subplot(211)
plot(t,x); %画出原始信号的幅度谱
xlabel('时间/s');
ylabel('归一化幅值');
title('(a)原始信号');
subplot(212)
plot(t,y1); %画出加10dB高斯白噪声后归一化的幅度谱
xlabel('时间/s');
ylabel('归一化幅值');
title('(b)随机序列');
sound(x); %播放原始语音
pause(7);
sound(y1); %播放加10dB高斯白噪声后的语音
运行结果
2.信号的卷积
两序列卷积的定义为
y ( n ) = ∑ k = − ∞ ∞ x 1 ( k ) x 2 ( n − k ) = x 1 ( n ) ∗ x 2 ( n ) y(n)=\sum_{k=-\infty}^{\infty} x_{1}(k) x_{2}(n-k)=x_{1}(n) * x_{2}(n) y(n)=k=−∞∑∞x1