Finishes fft interface + algorithms

This commit is contained in:
2025-09-24 21:30:45 +02:00
parent 3cc4144747
commit f62ef05cb8
8 changed files with 169 additions and 88 deletions

View File

@ -3,7 +3,7 @@
use std::f32::consts::PI;
use crate::complex::{Complex, Complex32};
use crate::fft::{self, DFT, windows};
use crate::fft::{self, windows};
use crate::map;
use crate::nco::Nco;
@ -57,7 +57,7 @@ pub struct BFSKDem {
// State
sample_index: u32,
fft: Box<dyn DFT>,
//fft: Box<dyn DFT>,
}
impl BFSKDem {
@ -66,19 +66,21 @@ impl BFSKDem {
samples_per_bit,
deviation,
sample_index: 0,
fft: fft::create_fft(samples_per_bit as usize, fft::FFTDirection::Forward),
//fft: fft::create_fft(samples_per_bit as usize, fft::FFTDirection::Forward),
}
}
pub fn demod(&mut self, baseband: &[Complex32]) -> bool {
assert!(baseband.len() >= self.samples_per_bit as usize);
/*
self.fft
.get_input()
.iter_mut()
.enumerate()
.for_each(|(i, x)| *x = baseband[i]);
self.fft.execute(windows::rectanguar);
*/
let bin_id = map(
self.deviation,
@ -91,6 +93,7 @@ impl BFSKDem {
let bin_width = 5;
/*
let mut positive_energy = 0.0;
for i in (bin_id - bin_width)..(bin_id + bin_width) {
if i >= 0 && i < self.samples_per_bit as i32 {
@ -108,5 +111,7 @@ impl BFSKDem {
}
return positive_energy < negative_energy;
*/
false
}
}