Mixed radix, begining rader
This commit is contained in:
19
src/main.rs
19
src/main.rs
@ -12,10 +12,11 @@ mod nco;
|
||||
|
||||
use bfsk::BFSKMod;
|
||||
use complex::Complex;
|
||||
use fft::rader;
|
||||
use complex::Complex32;
|
||||
use nco::Nco;
|
||||
|
||||
use crate::fft::FFT;
|
||||
use crate::fft::{dft::NaiveDFT, mixed_radix::MixedRadixFFT, rader::{compute_prime_primitive_root, RaderFFT}, radix2::Radix2FFT, DFT};
|
||||
|
||||
// Utilities
|
||||
fn map<T>(input: T, in_min: T, in_max: T, out_min: T, out_max: T) -> T
|
||||
@ -40,22 +41,26 @@ fn test() {
|
||||
let mut o1 = Nco::new(freq1);
|
||||
let mut o2 = Nco::new(freq2);
|
||||
|
||||
let mut vals = [Complex32::zero(); 8192];
|
||||
for x in vals.iter_mut() {
|
||||
let mut fft = RaderFFT::create(4799);
|
||||
let mut dft = NaiveDFT::create(4799);
|
||||
let vals = fft.get_input();
|
||||
let vals_dft = dft.get_input();
|
||||
for (x, y) in vals.iter_mut().zip(vals_dft.iter_mut()) {
|
||||
*x = o1.cexp() + o2.cexp();
|
||||
*y = *x;
|
||||
//*x = o2.cexp(); //+ o2.cexp();
|
||||
//*x = *x * (1. / x.mag());
|
||||
o1.step();
|
||||
o2.step();
|
||||
}
|
||||
|
||||
let mut fft = FFT::new(13);
|
||||
let output = fft.run_fft(&vals);
|
||||
fft.execute();
|
||||
let output = fft.get_output();
|
||||
|
||||
let mut f = File::create("out.csv").unwrap();
|
||||
for (i, v) in output.iter().enumerate() {
|
||||
for (i, (v, v2)) in output.iter().zip(dft.get_output()).enumerate() {
|
||||
f.write_all(
|
||||
format!("{},{},{},\n", i as f32 / 8192., v.mag(), v.arg())
|
||||
format!("{},{},{},\n", i as f32 / 8192., v.mag(), v2.mag())
|
||||
.to_string()
|
||||
.as_bytes(),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user