Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
nco: improvement of NCO object with VCO precision
Restoring promised precision of object created with type==LIQUID_VCO. API and performance characteristics changed. Introducing two VCO implementations (selected by object type at runtime): - LIQUID_VCO_INTERP, which is fully compatible with LIQUID_NCO type API and aliased to LIQUID_VCO type for backward compatibility; - LIQUID_VCO_DIRECT, which frequency (phase) can be setup with nco_set_vcodirect_frequency() only, and methods nco_<set/adjust/get>_<frequency/phase>(), nco_pll_step() are unavailable for it. Additional improvements and refactoring: - get rid of 'float' type/literals specifics (where appropriate); - sine/cosine lookup table calculation optimized to use T type operations only (where appropriate); - hard-coded NCO sine table size numbers macrofied and used with both LIQUID_NCO and LIQUID_VCO_INTERP types; - cosmetic tweaks of comments and documentation. Fixes #179
- Loading branch information