Правильно интерпретировать частоты фильтра Баттерворта - PullRequest
0 голосов
/ 26 мая 2019

Я использую функцию butter из пакета signal в R для фильтрации моих данных.

Данные преобразованы Фурье (комплексные числа) - и я хочу отфильтровать определенные частоты (у меня есть частота дискретизации 256 Гц, следовательно, спектр 128 Гц и я говорю, что хочу фильтровать только данные с 4-8 Гц),

Я нахожу противоречивую документацию о том, какими должны быть правильные значения W в этой функции:

butter(n, W, type = c("low", "high", "stop", "pass"),
plane = c("z", "s"), ...)
  • они должны быть 4/256 и 8/256?

Мне трудно понять, верны ли мои результаты с 4/256 и 8/256.

strength <- ftdata
low <- 4
high <- 8
bf <- butter(5, low/256, type="high")
bfsig <- filter(bf, strength)
bf <- butter(5, high/256, type="low")
bfsig <- filter(bf, bfsig)

plot(f,bfsig, type='l')

# Where ftdata is just the output from my Fourier transform. The 5 is the order of the filter.

Я просто хочу знать, имеет ли здесь смысл "/ 256".

РЕДАКТИРОВАТЬ:

Кроме того, любая идея, почему ниже не возвращает то же самоерезультат как указано выше?

 filt <- butter(5,c(low/256,high/256), "pass")
 bfsig <- filter(filt, strength)

Это должна быть просто комбинация фильтров нижних и верхних частот.

1 Ответ

0 голосов
/ 27 мая 2019

В DSP частота рассматривается как «нормализованная частота».Нормализованная частота рассчитывается путем масштабирования диапазона частот от 0 до частоты дискретизации с 0 до 1,0.Таким образом, вы должны разделить определенные частоты на 256.

...