pub struct ToneReservation {
pub reserved: Vec<usize>,
pub ratio_db: f64,
pub iterations: usize,
pub step: f64,
}Expand description
Tone reservation (Tellado 2000): a few subcarriers carry no data but a peak-cancelling signal. Every iteration projects the excess of the peaks above the target amplitude (the clipping noise) onto the reserved tones, by least squares, and subtracts it: a gradient descent on the peak excess that never touches the data tones.
Fields§
§reserved: Vec<usize>Indices of the reserved tones among the active subcarriers.
ratio_db: f64Target amplitude, in dB above the average power.
iterations: usizeIterations.
step: f64Step of every iteration (1: the full projection).
Implementations§
Trait Implementations§
Source§impl Clone for ToneReservation
impl Clone for ToneReservation
Source§impl Debug for ToneReservation
impl Debug for ToneReservation
Source§impl PaprReduction for ToneReservation
impl PaprReduction for ToneReservation
Source§fn data_len(&self, ofdm: &Ofdm) -> usize
fn data_len(&self, ofdm: &Ofdm) -> usize
Data symbols per block (all the active subcarriers by default).
Source§fn reduce(&self, ofdm: &Ofdm, data: &[C64]) -> Result<(Vec<C64>, usize)>
fn reduce(&self, ofdm: &Ofdm, data: &[C64]) -> Result<(Vec<C64>, usize)>
The time block (without prefix) of one block of data, and its side information. Read more
Source§fn recover(
&self,
ofdm: &Ofdm,
active: Vec<C64>,
_side: usize,
) -> Result<Vec<C64>>
fn recover( &self, ofdm: &Ofdm, active: Vec<C64>, _side: usize, ) -> Result<Vec<C64>>
The data of a block from the values of its active subcarriers and its side
information (despreading only, by default). Read more
Source§fn restore_time(&self, _block: &mut [C64])
fn restore_time(&self, _block: &mut [C64])
Undo a memoryless transformation of the time block at the receiver (the
expansion of companding); nothing by default.
Source§impl PartialEq for ToneReservation
impl PartialEq for ToneReservation
impl StructuralPartialEq for ToneReservation
Auto Trait Implementations§
impl Forget for ToneReservation
impl Freeze for ToneReservation
impl RefUnwindSafe for ToneReservation
impl Send for ToneReservation
impl Sync for ToneReservation
impl Unpin for ToneReservation
impl UnsafeUnpin for ToneReservation
impl UnwindSafe for ToneReservation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more