У меня есть несколько очень коротких сигналов от осциллографа (50–200 тыс. Отсчетов), зарегистрированных в течение примерно 2 мсек. Это акустические сигналы с зарегистрированным сигналом искры ЭСР (электростатического разряда). Я хотел бы получить некоторые частотные данные этого сигнала в почти акустическом диапазоне частот (примерно до 30 кГц) с как можно более высоким временным разрешением.
Я попытался построить спектрограмму (спектрограмму в октаве) для просмотра сигнала, но результат на самом деле бесполезен. Используя specgram( x, N, fs );
, где x
- мой сигнал частоты дискретизации fs
, я получаю график, начинающийся с очень высоких частот около 500 МГц для низких значений N, и я получаю лучшее разрешение по частоте для больших значений N (например, 2 ^ 12-13), но окно слишком широкий, и я получаю только 2 значения спектра по всей длине сигнала.
Я понимаю, что это может быть ограничение преобразования Фурье, которое, вероятно, используется функцией specgram (на самом деле, я мало что знаю об анализе сигналов).
Есть ли другой способ получить информацию о частоте (как функции времени) такого сигнала? Я кое-что читал о вейвлетах, но когда я попытался использовать dwt
функцию пакета signal, я получил эту ошибку:
error: 'wfilters' undefined near line 51 column 14
error: called from
dwt at line 51 column 12
Даже если бы это сработало, я не уверен, знаю ли я, как на самом деле использовать вывод этих вейвлет-функций ...