convolve
位于 stats
包(package)。 说明
使用快速傅里叶变换来计算两个序列的几种卷积。
用法
convolve(x, y, conj = TRUE, type = c("circular", "open", "filter"))
参数
x, y |
要进行卷积的相同长度的数字序列。 |
conj |
逻辑性;如果 |
type |
特点;部分匹配 对于 |
细节
使用快速傅里叶变换 fft
来提高效率。
如果 circular
为 true,则输入序列 x
和 y
必须具有相同的长度。
请注意,两个序列 x
和 y
的卷积的通常定义由 convolve(x, rev(y), type = "o")
给出。
值
如果 r <- convolve(x, y, type = "open")
和 n <- length(x)
, m <- length(y)
,则
其中对于 来说,总和是所有有效索引 的总和。
如果 type == "circular"
,则需要 ,并且上述情况对于 成立,而 对于 成立。
例子
require(graphics)
x <- c(0,0,0,100,0,0,0)
y <- c(0,0,1, 2 ,1,0,0)/4
zapsmall(convolve(x, y)) # *NOT* what you first thought.
zapsmall(convolve(x, y[3:5], type = "f")) # rather
x <- rnorm(50)
y <- rnorm(50)
# Circular convolution *has* this symmetry:
all.equal(convolve(x, y, conj = FALSE), rev(convolve(rev(y),x)))
n <- length(x <- -20:24)
y <- (x-10)^2/1000 + rnorm(x)/8
Han <- function(y) # Hanning
convolve(y, c(1,2,1)/4, type = "filter")
plot(x, y, main = "Using convolve(.) for Hanning filters")
lines(x[-c(1 , n) ], Han(y), col = "red")
lines(x[-c(1:2, (n-1):n)], Han(Han(y)), lwd = 2, col = "dark blue")
参考
Brillinger, D. R. (1981) Time Series: Data Analysis and Theory, Second Edition. San Francisco: Holden-Day.
也可以看看
相关用法
- R constrOptim 线性约束优化
- R confint 模型参数的置信区间
- R contrast (可能稀疏)对比矩阵
- R contrasts 获取和设置对比矩阵
- R cor 相关性、方差和协方差(矩阵)
- R cor.test 配对样本之间的关联/相关性测试
- R complete.cases 查找完整案例
- R cov.wt 加权协方差矩阵
- R cophenetic 层次聚类的共表距离
- R coef 提取模型系数
- R cancor 典型相关性
- R cutree 将树切割成数据组
- R cpgram 绘制累积周期图
- R chisq.test 计数数据的皮尔逊卡方检验
- R checkMFClasses 检查传递给模型框架的变量类型的函数
- R cmdscale 经典(公制)多维标度
- R case+variable.names 拟合模型的案例和变量名称
- R stlmethods STL 对象的方法
- R medpolish 矩阵的中值波兰(稳健双向分解)
- R naprint 调整缺失值
- R summary.nls 总结非线性最小二乘模型拟合
- R summary.manova 多元方差分析的汇总方法
- R formula 模型公式
- R nls.control 控制 nls 中的迭代
- R aggregate 计算数据子集的汇总统计
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Convolution of Sequences via FFT。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。