立体声或双声道音频信号有左右两个声道
利用 MATLAB实现双声道分离
两路声道合并和两个单声道组合成一个双声道等效果
实际上是利用了MATLAB的矩阵抽取
矩阵相加和矩阵重组运算
例 2现以例 1生成的 XPquit.wav为例 实现分离 合并和组合处理的程序如下
clear; close all; clc;
[x,FS,NBITS]=wavread('XPquit.WAV'); % 将 WAV 文件转换成变量
x1=x(:,1); % 抽取第 1 声道
x2=x(:,2); % 抽取第 2 声道
wavwrite(x1,FS,NBITS,'XPquit1.WAV'); % 实现 1 声道分离
wavwrite(x2,FS,NBITS,'XPquit2.WAV'); % 实现 2 声道分离
%如果合并位置不对前面补
%声道长度不对后面补
x12=x1+x2; % 两路单声道列向量矩阵变量合并
x12m=max(max(x12),abs(min(x12))), % 找出极值
y12=x12./x12m; % 归一化处理
wavwrite(y12,FS,NBITS,'XPquit12.WAV'); % 实现两路声道合并
%如果组合位置不对前面补 --声道长度不对后面补
x3=[x1,x2]; % 两路单声道变量组合
wavwrite(x3,FS,NBITS,'XPquit3.WAV'); % 实现两路声道组合
可以试听声道分离 合并与组合的效果 也可对各文件大小进行比较