Как применить фильтр нижних частот и даунсамплинг в R

В настоящее время я работаю с акустическими данными, сэмплированными на частоте 96 кГц, и мне нужно уменьшить частоту дискретизации этих данных до 2 кГц. Первоначально я уменьшил частоту дискретизации в R с помощью tuneR::downsample(оригинальный файл, 2000), что сработало, однако при анализе этих файлов в Raven много шума.

Сейчас я пытаюсь применить фильтр нижних частот для удаления потенциального алиасинга, который может вызывать нечеткие сигналы в Raven. Однако, кажется, есть множество способов применения фильтра нижних частот, и я не уверен в необходимых параметрах.

Сначала я попробовал seewave:ffilter(оригинальный файл, 96000, от =0 до =1000) и использовал параметры 0-1000 кГц, поскольку фильтр, применяемый к данным с пониженной дискретизацией, не должен превышать половины новой частоты дискретизации (2000), однако, это привело к ошибке (Ошибка: векторная память исчерпана (предел достигнут?)), что кажется необычным, если делать это только с одним 30-минутным файлом.

Сейчас я пытаюсь применить фильтр Баттерворта (я не уверен, что это лучший способ, но, похоже, его часто используют другие люди, пытающиеся сделать то же самое), но я не знаю, какой фильтр заказов я следует использовать. Есть ли способ выяснить это? Хотя я видел уравнения для вычисления этого, я не знаю усиления или ослабления полосы пропускания, чтобы вычислить, какой порядок должен использоваться для моих данных.

Есть ли у кого-нибудь понимание того, какой порядок Butterworth я должен использовать / есть понимание других методов для использования с кодом.

0 ответов

Другие вопросы по тегам