Использование Интернета я нахожу эту MATLAB implementation.
Если вы пропустили первую часть (аргументы проверки), это выглядит просто написать свой R эквивалент.
# Cf - Cut-off frequency (default: half Nyquist)
# M - Number of coefficients (default: 100)
lanczos_filter_coef <- function(Cf,M=100){
lowpass_cosine_filter_coef <- function(Cf,M)
coef <- Cf*c(1,sin(pi*seq(M)*Cf)/(pi*seq(M)*Cf))
hkcs <- lowpass_cosine_filter_coef(Cf,M)
sigma <- c(1,sin(pi*seq(M)/M)/(pi*seq(M)/M))
hkB <- hkcs*sigma
hkA <- -hkB
hkA[1] <- hkA[1]+1
coef <- cbind(hkB, hkA)
coef
}
Чтобы проверить это, например:
dT <- 1
Nf <- 1/(2*dT)
Cf <- Nf/2
Cf <- Cf/Nf
lanczos_filter_coef(Cf,5)
hkB hkA
[1,] 5.000000e-01 5.000000e-01
[2,] 2.977755e-01 -2.977755e-01
[3,] 1.475072e-17 -1.475072e-17
[4,] -5.353454e-02 5.353454e-02
[5,] -4.558222e-18 4.558222e-18
[6,] 2.481571e-18 -2.481571e-18
PS Я не очень хорошо знаю MATLAB (использовал его много лет назад), так что я я использовал this link Для R/MATLAB аналогии. Я надеюсь, что кто-то с большим количеством знаний R/MATLAB/Scilab может проверить мой код.
Пожалуйста, помогите нам помочь вам, предоставив нам воспроизводимый пример (например, данные кода и примера), см. Http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible- пример для деталей. –