2016-12-29 92 views
1

我试图结合两个音频信号,但不能使用min运算符。我需要音轨同时播放,这是我目前拥有的解决方案,但有问题。它只起到最短轨道的时间,这是我到目前为止的代码:最大值未被识别

mLength = min([length(s1), length(s2)]); 

s1 = s1(1:mLength); 
s2 = s2(1:mLength); 
s3 = s1 + s2; 

s1可能为6秒长和s2可能在10秒之久。将它们结合在一起会给我6秒的时间。

我基本上需要将min更改为max。在这样做,它给了我错误Index exceeds matrix dimensions.

任何人都知道我可以做到这一点?这样一个琐碎的问题需要花费很长时间才能解决,谢谢!

+0

为什么不能编辑[今天早上的问题](http://stackoverflow.com/questions/41381270/match-audio-duration-when-joining-multiple-tracks)? – excaza

+0

@excaza道歉,但它失去了,我觉得只是重新格式化它更容易。从今早开始一直在努力 –

+0

我强烈建议花时间再次阅读[help](http://stackoverflow.com/help)部分。这不是您第一次忽视SO的指导方针,继续这样做可能会导致暂停或禁止。 – excaza

回答

1

这里有一个简单的方法:

mLength = max(length(s1), length(s2)); 
s1(mLength+1,:) = 0; 
s2(mLength+1,:) = 0; 
s3 = s1(1:mLength,:) + s2(1:mLength,:); 

该分配在最大位置零加1的这个最长信号的影响仅仅是追加一个零。在最短的一个上,它根据需要自动填充零。既然这两个信号具有相同的长度,则可以添加它们,而忽略最后一个额外的零。

+0

为快速回复和简单回复而欢呼。恐怕你的解决方案给了我'尝试在模糊的维度上增长数组。'任何想法? –

+0

哦,它们是立体声的,对吧?等一下 –

+0

@ Paji.R请看现在 –