HARDT - The Ham Radio DSP Toolkit
Public Member Functions | List of all members
HIqMultiplier< T > Class Template Reference

#include <hiqmultiplier.h>

Inheritance diagram for HIqMultiplier< T >:
Inheritance graph
[legend]
Collaboration diagram for HIqMultiplier< T >:
Collaboration graph
[legend]

Public Member Functions

 HIqMultiplier (HReader< T > *reader, H_SAMPLE_RATE rate, int frequency, int oscillatorAmplitude, size_t blocksize, HProbe< T > *probe=NULL)
 
 HIqMultiplier (HWriter< T > *writer, H_SAMPLE_RATE rate, int frequency, int oscillatorAmplitude, size_t blocksize, HProbe< T > *probe=NULL)
 
 HIqMultiplier (HWriterConsumer< T > *consumer, H_SAMPLE_RATE rate, int frequency, int oscillatorAmplitude, size_t blocksize, HProbe< T > *probe=NULL)
 
 ~HIqMultiplier ()
 
void Init (H_SAMPLE_RATE rate, int frequency, int oscillatorAmplitude, size_t blocksize)
 
int Read (T *dest, size_t blocksize)
 
int Write (T *src, size_t blocksize)
 
void SetWriter (HWriter< T > *writer)
 
bool Start ()
 
bool Stop ()
 
void SetFrequency (int frequency)
 
void Mix (T *src, T *dest, size_t blocksize)
 
bool Command (HCommand *command)
 
- Public Member Functions inherited from HReader< T >
virtual ~HReader ()=default
 
HReader< T > * Reader ()
 
- Public Member Functions inherited from HObject
 HObject ()
 
- Public Member Functions inherited from HWriter< T >
virtual ~HWriter ()=default
 
HWriter< T > * Writer ()
 
- Public Member Functions inherited from HWriterConsumer< T >
HWriterConsumer< T > * Consumer ()
 

Detailed Description

template<class T>
class HIqMultiplier< T >

IQ multiplier (unlinear mixer).

Will mix the input signal with a localoscillator signal thus producing (Tin + Tlo) and (Tin - Tlo)

The localoscillator frequency can be changed by calling SetFrequency(). behaviour while the frequency is transitioning is undefined, if you make large adjustments you may want to reduce the input level while setting the new frequency to avoid clicks or noise (check if it is a problem in your actual case)

Constructor & Destructor Documentation

◆ HIqMultiplier() [1/3]

template<class T >
HIqMultiplier< T >::HIqMultiplier ( HReader< T > *  reader,
H_SAMPLE_RATE  rate,
int  frequency,
int  oscillatorAmplitude,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HIqMultiplier (frequency mixer)

◆ HIqMultiplier() [2/3]

template<class T >
HIqMultiplier< T >::HIqMultiplier ( HWriter< T > *  writer,
H_SAMPLE_RATE  rate,
int  frequency,
int  oscillatorAmplitude,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HIqMultiplier (frequency mixer)

◆ HIqMultiplier() [3/3]

template<class T >
HIqMultiplier< T >::HIqMultiplier ( HWriterConsumer< T > *  consumer,
H_SAMPLE_RATE  rate,
int  frequency,
int  oscillatorAmplitude,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HIqMultiplier (frequency mixer)

◆ ~HIqMultiplier()

template<class T >
HIqMultiplier< T >::~HIqMultiplier

Default destructor

Member Function Documentation

◆ Command()

template<class T >
bool HIqMultiplier< T >::Command ( HCommand command)
inlinevirtual

Execute or carry through a command

Implements HReader< T >.

◆ Init()

template<class T >
void HIqMultiplier< T >::Init ( H_SAMPLE_RATE  rate,
int  frequency,
int  oscillatorAmplitude,
size_t  blocksize 
)

Common initialization tasks

◆ Mix()

template<class T >
void HIqMultiplier< T >::Mix ( T *  src,
T *  dest,
size_t  blocksize 
)

Mix two signals

◆ Read()

template<class T >
int HIqMultiplier< T >::Read ( T *  dest,
size_t  blocksize 
)
virtual

Read a block of samples

Implements HReader< T >.

◆ SetFrequency()

template<class T >
void HIqMultiplier< T >::SetFrequency ( int  frequency)

Set the frequency of the local oscillator that feeds one of the inputs of the mixer

◆ SetWriter()

template<class T >
void HIqMultiplier< T >::SetWriter ( HWriter< T > *  writer)
inlinevirtual

Set writer

Implements HWriterConsumer< T >.

◆ Start()

template<class T >
bool HIqMultiplier< T >::Start
virtual

Initialize before first read

Reimplemented from HReader< T >.

◆ Stop()

template<class T >
bool HIqMultiplier< T >::Stop
virtual

Cleanup after last read

Reimplemented from HReader< T >.

◆ Write()

template<class T >
int HIqMultiplier< T >::Write ( T *  src,
size_t  blocksize 
)
virtual

Write a block of samples

Implements HWriter< T >.


The documentation for this class was generated from the following files: