U8 PIR_Signal_Correlation(void) { #ifdef PIR_SIGNAL_CORRELATION_EN U16 i; float Pxy = 0.0f; double xy = 0; double x = 0; double y = 0; float average_X = 0; float average_Y = 0; if((pir_correla.buf_len < 20) && (!pir_correla.buff_full_flag)) { pir_correla.buf_len = 0; return 1; } for (i = 0; i < pir_correla.buf_len; i++) { average_X += pir_correla.buf[0][i]; average_Y += pir_correla.buf[1][i]; } average_X /= pir_correla.buf_len; average_Y /= pir_correla.buf_len; for (i = 0; i < pir_correla.buf_len; i++) { xy += (pir_correla.buf[0][i] - average_X)*(pir_correla.buf[1][i] - average_Y); x += (pir_correla.buf[0][i] - average_X)*(pir_correla.buf[0][i] - average_X); y += (pir_correla.buf[1][i] - average_Y)*(pir_correla.buf[1][i] - average_Y); } Pxy = (float) xy / (sqrt(x) * sqrt(y)); DBG_INFC(DEBUG_PIR,YELLOW"[PIR] pir correlation %.2f\r\n", Pxy); pir_correla.Pxy = fabs(Pxy); pir_correla.buf_len = 0; pir_correla.info_print_flag = _TRUE; if(pir_correla.Pxy > PIR_SIGNAL_CORRELATION) { return 1; } pir_trig.false_trig_type = FALSE_TRIG_TYPE_CORRELATION; return 0; #else return 1; #endif }
时间: 2024-04-01 11:37:36 浏览: 63
这是一段 C 语言代码,主要实现了一个函数 U8 PIR_Signal_Correlation()。该函数的功能是计算 PIR 信号的相关性,该功能是否启用取决于宏定义 PIR_SIGNAL_CORRELATION_EN 是否被定义。如果该宏未被定义,则该函数直接返回 1。否则,该函数会对 PIR 信号的缓存数据进行相关性计算,并将结果存储在变量 Pxy 中。最后,如果 Pxy 大于预设的阈值 PIR_SIGNAL_CORRELATION,则该函数返回 1,否则返回 0。
相关问题
pd.DataFrame(pir_data['pir_col_data'], index=pir_data['pir_col_data'].index).to_excel(writer, sheet_name=file_name1, index=True)
这是一个将一个名为`pir_data`的字典中的`pir_col_data`键所对应的数据转换成 pandas 的 DataFrame 格式,并将其写入到 Excel 文件中的代码。其中,`index`参数为 `True` 表示将 DataFrame 的索引写入到 Excel 文件中。`writer` 是一个 pandas.ExcelWriter 对象,用于写入 Excel 文件;`sheet_name` 参数表示要写入的工作表名称,`file_name1` 是一个变量,表示要写入的 Excel 文件的名称。
# with pd.ExcelWriter('new_result.xlsx') as writer: # # 写入 pir 数据 # pd.DataFrame(pir_data['pir_col_data'], index=pir_data['pir_col_data'].index).to_excel(writer, sheet_name=file_name1, index=True)
这段代码使用了 `pandas.ExcelWriter` 来创建并打开一个新的 Excel 文件 `new_result.xlsx`,然后将 `pir_data` 中的 `pir_col_data` 键所对应的数据转换成 pandas 的 DataFrame 格式,并写入到 Excel 文件中名为 `file_name1` 的工作表中。参数 `index=True` 表示将 DataFrame 的索引也写入到 Excel 文件中。
使用 `with` 关键字可以不用显式地调用 `writer.save()` 方法来保存 Excel 文件,当 `with` 代码块结束时,`pandas.ExcelWriter` 会自动关闭文件并保存修改。
如果你想在同一个 Excel 文件中写入多个工作表的数据,可以在 `with` 代码块内多次使用 `pd.DataFrame.to_excel()` 方法来写入数据,只需指定不同的工作表名称即可。比如:
```python
with pd.ExcelWriter('new_result.xlsx') as writer:
# 写入 pir 数据
pd.DataFrame(pir_data['pir_col_data'], index=pir_data['pir_col_data'].index).to_excel(writer, sheet_name='pir_data', index=True)
# 写入其他数据
...
# 写入更多数据
...
```
在上述代码中,我们在同一个 Excel 文件中分别写入了名为 `pir_data`、`其他数据`、`更多数据` 的工作表。
阅读全文