2016-12-29 168 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請看現在 –