port more from osmocom-analog

This commit is contained in:
2025-04-10 20:25:11 -04:00
parent 8a6e51c877
commit 3c2f3365e8
4 changed files with 130 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
struct SampleRate {
factor: f64,
filter_cutoff: f64,
down: DownSampler,
up: UpSampler,
}
struct DownSampler {
lp: IIRFilter,
last_sample: Sample,
in_index: f64,
}
struct UpSampler {
lp: IIRFilter,
current_sample: Sample,
last_sample: Sample,
in_index: f64,
}
impl SampleRate {
pub fn init(&mut self, low_samplerate: f64, high_samplerate: f64, filter_cutoff: f64) -> Result<(), i32> {
// Implementation goes here
Ok(())
// or Err(error_code) if there's an error
}
pub fn downsample(&mut self, state: SampleRate, samples: Sample, input_num: i32) -> Result<(), i32> {
Ok(())
}
pub fn upsample_input_num(&mut self, state: SampleRate, output_num: i32) -> Result<(), i32> {
Ok(())
}
pub fn upsample_output_num(&mut self, state: SampleRate, input_num: i32) -> Result<(), i32> {
Ok(())
}
pub fn upsample(&mut self, state: SampleRate, input: Sample, input_num: i32, output: Sample, output_num: i32) {
}
}