2015-01-20 1 views
0

Я измеряю импульсную характеристику микрофона. В начале графика у меня есть некоторая задержка, а затем самое высокое значение составляет 40 мс и уменьшается до 45 мс. Когда я беру преобразование Фурье, я хочу использовать только часть между 35-45 мс. когда я использую разные микрофоны, задержка уменьшается или увеличивается, поэтому пиковое значение смещается. Таким образом, диапазон времени, который я хочу, также изменяется. Как я могу получить этот диапазон, который содержит наибольшую ценность, автоматически в MATLAB?Удельная часть импульсного отклика matlab

ответ

0

Если у вас есть вектор y измерений и хотите интервал длины 2r+1 измерения вы могли бы сделать:

center = find(y==max(y));   % find the peak value 

y_edited = y(center-r:center+r); % look at r samples before and after this peak 

Затем выполняют преобразование Фурье на y_edited. Обратите внимание, что шум вашего сигнала может повлиять на вашу производительность.

+0

Да, у моего сигнала есть некоторый шум, и мой fft-результат колеблется так сильно. Я знаю, что мой микрофон имеет плоскую частотную характеристику, но я не вижу этого в своем fft и impresp. – puCCa

+0

@puCCa, если вам нужна дополнительная помощь, я предлагаю добавить дополнительную информацию к исходному вопросу, например, график вашего импульсного ответа и его преобразования Фурье и как вы думаете, что это ДОЛЖНО выглядеть. Насколько я могу судить, код, который я предоставил, должен отвечать на ваш первоначальный вопрос, но, учитывая ваш комментарий, вам, возможно, придется искать фильтрацию, а не окна. Я не могу точно сказать, но без дополнительной информации. –

Смежные вопросы