Отфильтруйте частоту питания из сигнала с низкой частотой дискретизации
У меня есть некоторый записанный сигнал с частотой дискретизации 100 Гц. Я хочу отфильтровать частоту 60 Гц из сигнала. Я использую butter()
фильтр от signal
пакет в R. Но это не позволяет нам отфильтровывать частоты, превышающие частоту Найквиста. Поэтому, когда я пытаюсь применить фильтр Баттерворта
butter(5,W=c(58,62)/100*2,type="stop")
Я получаю
Error in butter.default(5, W = c(58, 62)/100 * 2, type = "stop") :
butter: critical frequencies must be in (0 1)
На странице руководства по фильтрам Чебышева упоминается то же требование к отфильтрованным частотам.
Могу ли я сделать что-нибудь здесь, не повышая частоту сигнала? Какие другие фильтры я могу использовать?
1 ответ
Вы не можете отфильтровать частоту 60 Гц, потому что в сэмплированном сигнале такой частоты нет из-за теоремы Найквиста.
Однако то, что вы можете найти в сэмплированном сигнале, это псевдоним частоты 60 Гц. Он расположен на частоте 40 Гц из-за эффекта свертывания на частоте 50 Гц (половина частоты дискретизации). Вы можете отфильтровать эту частоту, но вы также потеряете информацию об исходной частоте 40 Гц.