From c19ac69a0e8939b7b084ddb5a5739c3b5c3e1ca7 Mon Sep 17 00:00:00 2001 From: Christos Falas Date: Tue, 11 Feb 2025 11:16:27 +0000 Subject: [PATCH] Allow skipping subcarriers This is useful for when processing from files which are larger than can be processed in real-time. --- where_fi/config/models.py | 5 +++-- where_fi/processing/preprocess.py | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/where_fi/config/models.py b/where_fi/config/models.py index eaa937c..f3f11d2 100644 --- a/where_fi/config/models.py +++ b/where_fi/config/models.py @@ -17,6 +17,7 @@ class Preprocessing(BaseModel): return (self.lowcut, self.highcut) bandpass: Bandpass + subcarrier_step: int class MUSIC(BaseModel): @@ -67,8 +68,8 @@ class Config(BaseModel): @property def delta_f(self) -> int: if self.frame_format == "HESU": - return 78_125 - return 312_500 + return 78_125 * self.preprocessing.subcarrier_step + return 312_500 * self.preprocessing.subcarrier_step @model_validator(mode="after") def channels(self) -> Self: diff --git a/where_fi/processing/preprocess.py b/where_fi/processing/preprocess.py index 01c4718..877fda5 100644 --- a/where_fi/processing/preprocess.py +++ b/where_fi/processing/preprocess.py @@ -34,8 +34,8 @@ class Preprocessor: h, ) - # Skip every other subcarrier - # h_hat = h_hat[::2, :, :] + # Skip subcarrierss per config + h_hat = h_hat[:: config.preprocessing.subcarrier_step, :, :] # logger.info(f"CSI shape: {h_hat.shape}") h_hat = np.multiply(h_hat, h_hat.conj() / abs(h_hat.conj()))