Хм. Если вы пытаетесь создать эффект реверберации, то H должен быть просто вектором, мне кажется, у вас есть матрица с 10 столбцами. При создании эффекта реверберации вы обычно получаете свою импульсную характеристику и сворачиваете ее с аудиосигналом. В этом случае h кажется довольно произвольным, и я не знаю, даст ли это вам количество реверберации, которое вы ищете. Однако, если вы хотите реализовать h как импульсную характеристику для реверберации, все, что вам нужно сделать, это свернуть ваш аудиосигнал с импульсной характеристикой y.
[x, fs] = audioread('myaudio.wav');
y = conv(x,h);
Если у вас есть импульсный отклик от записи и импульсный отклик от комнаты, в которой была сделана запись, вы можете применить деконволюцию для удаления реверберации, используя функцию деконвекции в Matlab.
Вы должны быть в состоянии выработать формулу, чтобы h был просто экспоненциально затухающим вектором, который умирает примерно через 300 мс (хотя на самом деле услышать это может быть сложно)
Если вы хотите по-настоящему продвинуться в расчетах импульсного отклика, я рекомендую попробовать подход к созданию импульсного отклика с использованием источника изображения. Ознакомьтесь со следующей статьей (старой, но золотой);
http://www.umiacs.umd.edu/~ramani/cmsc828d_audio/AllenBerkley79.pdf
Если вы заинтересованы в слепой деконволюции, это может вас заинтересовать.
https://www.academia.edu/1370250/Predictive_deconvolution_and_kurtosis_maximization_for_speech_dereverberation
Небольшое предостережение, деконволюция и комнатная реверберация — дело очень хитрое. Приведенная выше модель источника изображения, хотя и интересная и эффективная, на самом деле не отражает сложности реверберации и дереверберации. Есть несколько вещей, которые могут повлиять на звук (стоячие волны и т. д.). Я не могу гарантировать вам, что простое вычисление RT60 с использованием только затухающего экспоненциального вектора и деконволюции даст потрясающие результаты. Тем не менее, стоит попробовать и много веселья!
person
PicnicTripper
schedule
02.07.2015