ESPectre SDK 2.8.0-280-gac7af68
Wi-Fi CSI motion sensing for ESP32 firmware
Loading...
Searching...
No Matches
csi_format.h File Reference
#include <array>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <cstring>
#include "csi_types.h"
#include "utils.h"

Go to the source code of this file.

Namespaces

namespace  espectre

Enumerations

enum class  espectre::Ht20BinLayout : uint8_t { espectre::UNKNOWN = 0 , espectre::CENTERED , espectre::CLASSIC }

Functions

uint8_t espectre::ht20_bins_with_energy (const int8_t *csi_data, const uint8_t *bins, uint8_t count)
Ht20BinLayout espectre::detect_ht20_bin_layout (const int8_t *csi_data, size_t csi_len)
 Identify which HT20 bin ordering a 64-subcarrier payload uses.
void espectre::rotate_ht20_classic_to_centered (const int8_t *csi_data, int8_t *out)
 Rotate a classic-order HT20 payload into the centered convention.
float espectre::calculate_spatial_turbulence (const float *magnitudes, const uint8_t *subcarriers, uint8_t num_subcarriers, uint16_t max_subcarrier=64)
 Calculate spatial turbulence from pre-calculated magnitudes.
uint8_t espectre::extract_subcarrier_amplitudes (const int8_t *csi_data, size_t csi_len, const uint8_t *subcarriers, uint8_t num_subcarriers, float *out, uint8_t out_capacity)
 Extract subcarrier amplitudes from raw CSI data (I/Q pairs).
uint8_t espectre::extract_packet_subcarrier_amplitudes (const int8_t *csi_data, size_t csi_len, float *out, uint8_t out_capacity)
 Extract one packet-wide amplitude frame for reuse by multiple feature paths.
uint8_t espectre::fill_packet_subcarrier_energies (const int8_t *csi_data, size_t csi_len, float *out, uint8_t out_capacity)
 Fill one packet-wide squared-magnitude frame for energy-domain consumers.
void espectre::energies_to_amplitudes_in_place (float *values, uint8_t count)
uint8_t espectre::select_subcarrier_amplitudes (const float *packet_amplitudes, uint8_t packet_count, const uint8_t *subcarriers, uint8_t num_subcarriers, float *out, uint8_t out_capacity)
 Select the configured tones from a packet-wide amplitude frame.
uint8_t espectre::select_adjacent_aggregated_subcarrier_amplitudes (const float *packet_amplitudes, uint8_t packet_count, const uint8_t *subcarriers, uint8_t num_subcarriers, uint8_t width, float *out, uint8_t out_capacity)
 Select adjacent-bin mean amplitudes from a packet-wide amplitude frame.
uint8_t espectre::extract_adjacent_aggregated_subcarrier_amplitudes (const int8_t *csi_data, size_t csi_len, const uint8_t *subcarriers, uint8_t num_subcarriers, uint8_t width, float *out, uint8_t out_capacity)
 Extract one mean magnitude per selected tone from adjacent live HT20 bins.
float espectre::calculate_spatial_turbulence_from_amplitudes (const float *amplitudes, uint8_t count)
float espectre::calculate_spatial_turbulence_from_csi (const int8_t *csi_data, size_t csi_len, const uint8_t *subcarriers, uint8_t num_subcarriers)
 Calculate spatial turbulence directly from raw CSI data (I/Q pairs).

Variables

constexpr uint8_t espectre::HT20_CLASSIC_ONLY_NULL_BINS [] = {29, 30, 31, 33, 34, 35}
constexpr uint8_t espectre::HT20_CENTERED_ONLY_NULL_BINS [] = {1, 2, 3, 61, 62, 63}