stats :: filter function R的工作

时间:2014-03-07 04:32:22

标签: r signal-processing

我在此面前严重亏本,R中的stats过滤器命令如何实现“卷积”方法。我理解过滤器为1时的情况,但对于过滤器的任何其他值,事情会让人感到困惑。从stackoverflow中的另一个问题(simple examples of filter function, recursive option specifically)我理解“卷积”如何适用于filter = 1 例如:

f1<-1,f2<-1,f3<-1
x<-c(1:5)
filter(x,c(f1,f2))
3  5  7  9 NA
#which translates to
x[1]*f1+x[2]*f2
x[2]*f1+x[3]*f2
x[3]*f1+x[4]*f2
x[4]*f1+x[5]*f2
x[5]*f1+x[6]*f2 #x[6] is NA
#filter other than 1
#filter<-c(1,2)
filter(x,c(1,2))
4  7 10 13 NA
#and not the below ones
x[1]*f1+x[2]*f2=5
x[2]*f1+x[3]*f2=8
x[3]*f1+x[4]*f2=11

等等,这到底发生了什么?这可能是微不足道的,因为对卷积方法缺乏了解,但我无法弄清楚

2 个答案:

答案 0 :(得分:3)

过滤器以反向时间顺序应用。所以第二个例子的第一个元素是:

x[1]*2 + x[2]*1 = 2 + 2 = 4.

卷积的定义包括颠倒其中一个输入的顺序。

答案 1 :(得分:0)

测量蓝牙信标 ping 之间的时间差

使用统计过滤器的示例

其中 AP 是接入点,Location 是测试对象的测量位置

<头>
位置 日期时间 接入点 MAC RSSI
实验室@(15m) 2021-02-25 12:04:34 “1838Y-1282400000” "dc:0d:08:00:06:09" -76
实验室@(15m) 2021-02-25 12:04:34 “1838Y-1258500000” "dc:0d:08:00:06:09" -75
.省略了更多行.. ... ... ... ...
lab-loadingdock 2021-02-25 12:29:10 “1838Y-1282400000” "dc:0d:08:00:06:09" -73
lab-loadingdock 2021-02-25 12:29:13 “1838Y-1283400000” "dc:0d:08:00:06:09" -79
lab-loadingdock 2021-02-25 12:29:13 “1838Y-1258600000” "dc:0d:08:00:06:09" -86
lab-loadingdock 2021-02-25 12:29:13 “1838Y-1282400000” "dc:0d:08:00:06:09" -73
lab-loadingdock 2021-02-25 12:29:13 “1838Y-1258500000” "dc:0d:08:00:06:09" -64
lab-loadingdock 2021-02-25 12:29:15 “1838Y-1282400000” "dc:0d:08:00:06:09" -76
LabOffice 2021-02-25 13:07:06 “1838Y-1258500000” "dc:0d:08:00:06:09" -76
LabOffice 2021-02-25 13:07:06 “1838Y-1282400000” "dc:0d:08:00:06:09" -92

BLE_Beacon_data %>%
 dplyr::filter(AP=="1838Y-1283400000",Location=="lab-loadingdock")%>%
 pull(DateTime)%>%
 stats::filter(c(1,-1))