gpt4 book ai didi

r - 在 R 程序中使用 lanczos 低通滤波器

转载 作者:行者123 更新时间:2023-12-02 15:36:12 24 4
gpt4 key购买 nike

我想知道是否有任何包允许我们使用 Lanczos 过滤器。我找到了其他滤波器,例如 butterworth,但我正在寻找 Lanczos 低通滤波器。

Lanczos 过滤器与巴特沃斯过滤器有何不同?任何建议或提示表示赞赏。

谢谢。

最佳答案

使用网络我找到这个 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 知识的人可以测试我的代码。

关于r - 在 R 程序中使用 lanczos 低通滤波器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17264119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com