Finishes fft interface + algorithms
This commit is contained in:
11
src/bfsk.rs
11
src/bfsk.rs
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user