port more from osmocom-analog
This commit is contained in:
45
cellular/src/samplerate.rs
Normal file
45
cellular/src/samplerate.rs
Normal 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) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user