#[non_exhaustive]pub enum FrequencyPulse {
Rectangular,
RaisedCosine,
Gaussian {
bt: f64,
},
}Expand description
The frequency pulse $g(t)$ of a CPM signal (see the module documentation).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Rectangular
$L$REC: constant over $L$ symbols (1REC is CPFSK; with $h = 1/2$, MSK).
RaisedCosine
$L$RC: a raised cosine over $L$ symbols.
Gaussian
GMSK: the Gaussian pulse of Murota & Hirade with the normalised bandwidth bt,
truncated to $L$ symbols.
Implementations§
Source§impl FrequencyPulse
impl FrequencyPulse
Sourcepub fn name(&self) -> &'static str
pub fn name(&self) -> &'static str
The short name of the pulse, rec, rc or gmsk (read back by
FrequencyPulse::from_name).
Sourcepub fn phase_response(&self, t: f64, length: usize) -> f64
pub fn phase_response(&self, t: f64, length: usize) -> f64
The phase response $q(t)$ of the pulse of length symbols at the time t in
symbol durations: 0 before 0, $1/2$ after length.
§Examples
use comnum_waveform::cpm::FrequencyPulse;
assert_eq!(FrequencyPulse::Rectangular.phase_response(0.5, 1), 0.25);
assert_eq!(FrequencyPulse::RaisedCosine.phase_response(3.0, 3), 0.5);
let g = FrequencyPulse::Gaussian { bt: 0.3 };
assert!((g.phase_response(1.5, 3) - 0.25).abs() < 1e-12); // symmetric pulseSourcepub fn from_name(name: &str, bt: f64) -> Result<FrequencyPulse>
pub fn from_name(name: &str, bt: f64) -> Result<FrequencyPulse>
Parse rec (rectangular), rc (raised-cosine) or gmsk (gaussian) with
the bandwidth bt for the Gaussian pulse.
§Errors
Error::Config for another name.
Trait Implementations§
Source§impl Clone for FrequencyPulse
impl Clone for FrequencyPulse
impl Copy for FrequencyPulse
Source§impl Debug for FrequencyPulse
impl Debug for FrequencyPulse
Source§impl PartialEq for FrequencyPulse
impl PartialEq for FrequencyPulse
impl StructuralPartialEq for FrequencyPulse
Auto Trait Implementations§
impl Freeze for FrequencyPulse
impl RefUnwindSafe for FrequencyPulse
impl Send for FrequencyPulse
impl Sync for FrequencyPulse
impl Unpin for FrequencyPulse
impl UnsafeUnpin for FrequencyPulse
impl UnwindSafe for FrequencyPulse
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