您的位置:首页 > 编程语言 > MATLAB

matlab 声道分离合并与组合

2017-02-07 09:58 381 查看
立体声或双声道音频信号有左右两个声道

利用 MATLAB 实现双声道分离 

两路声道合并和两个单声道组合成一个双声道等效果 

实际上是利用了MATLAB 的矩阵抽取 

矩阵相加和矩阵重组运算

例 2 现以例 1 生成的 XPquit.wav 为例 实现分离 合并和组合处理的程序如下

clear; 
close all; 
clc;
[x,FS]=audioread('012617102-scuba-diver-3.WAV'); % 将 WAV 文件转换成变量
x1=x(:,1); % 抽取第 1 声道
x2=x(:,2); % 抽取第 2 声道
audiowrite('012617102-scuba-diver-2quit1.WAV',x1,FS); % 实现 1 声道分离
audiowrite('012617102-scuba-diver-2quit2.WAV',x2,FS); % 实现 2 声道分离
%如果合并位置不对前面补 
%声道长度不对后面补 
x12=x1+x2; % 两路单声道列向量矩阵变量合并
x12m=max(max(x12),abs(min(x12))), % 找出极值
y12=x12./x12m; % 归一化处理
audiowrite('012617102-scuba-diver-2quit11.WAV',y12,FS); % 实现两路声道合并
%如果组合位置不对前面补 --声道长度不对后面补 
x3=[x1,x2]; % 两路单声道变量组合
audiowrite('012617102-scuba-diver-2quit12.WAV',x3,FS); % 实现两路声道组合


可以试听声道分离 合并与组合的效果 也可对各文件大小进行比较
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: