- switch to use radio_float_t

- RX/TX Buffers: fixed interfacing from radio_float_t  to float I/O

git-svn-id: http://moon:8086/svn/software/trunk/projects/mpsk_rx_gui@931 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2022-06-02 08:29:09 +00:00
parent 4f4fc52c01
commit 2acd47103c
6 changed files with 65 additions and 61 deletions
+1 -3
View File
@@ -152,10 +152,8 @@ void MainComponent::audioDeviceIOCallback (const float** inputChannelData,
(void) numInputChannels;
(void) numOutputChannels;
RMap rf((RealScalar*)inputChannelData[0], numSamples);
m_pTransmitterControl->getData(outputChannelData[0], numSamples);
// m_pReceiver->processPassband(rf, numSamples);
m_rxBuf.write(rf, numSamples);
m_rxBuf.write(inputChannelData[0], numSamples);
}
+5 -6
View File
@@ -1,5 +1,4 @@
#include <cmath>
#include <float.h>
#include "Receiver.hpp"
#include "MinMaxLemire.h"
#include <cpp/radio/Frame.hpp>
@@ -365,7 +364,7 @@ void Receiver::processPassband(RVec const &rf, uint32_t len)
const ScopedLock sl (m_lock);
uint32_t len_down;
float test4normal;
radio_float_t test4normal;
if (!m_ReceiverEnable)
{
@@ -401,7 +400,7 @@ void Receiver::processPassband(RVec const &rf, uint32_t len)
}
void Receiver::processBaseband(float *pI, float *pQ, uint32_t len)
void Receiver::processBaseband(radio_float_t *pI, radio_float_t *pQ, uint32_t len)
{
for (uint32_t i=0; i < len/2; i++)
{
@@ -630,10 +629,10 @@ void Receiver::processBaseband(CVec const &iq, uint32_t len)
// Lock-detector development
cpx_t winner_diff = Cpx(0,0);
float winner_d = 1000;
radio_float_t winner_d = 1000;
int winner_i = 0;
cpx_t diff;
float d;
radio_float_t d;
for (int i=0; i < 4; i++)
{
diff = CpxSubS(IQ_soft, m_trackers_[i]);
@@ -779,7 +778,7 @@ void Receiver::initFilterArm()
}
// Interface
void Receiver::setSamplerate(float samplerate_hz)
void Receiver::setSamplerate(radio_float_t samplerate_hz)
{
const ScopedLock sl (m_lock);
+37 -37
View File
@@ -106,18 +106,18 @@ enum str_state
typedef struct _minmax_t
{
float min, max;
radio_float_t min, max;
} minmax_t;
typedef struct _cpx_minmax_t
{
cpx_t min, max;
float magMin, magMax;
float phiAtMinI;
float phiAtMaxI;
float phiAtMinQ;
float phiAtMaxQ;
radio_float_t magMin, magMax;
radio_float_t phiAtMinI;
radio_float_t phiAtMaxI;
radio_float_t phiAtMinQ;
radio_float_t phiAtMaxQ;
} cpx_minmax_t;
@@ -160,10 +160,10 @@ typedef struct _statistics_t
typedef struct _params_t
{
uint32_t numBitsPerSymbol;
float symbolrate;
float samplerate;
float ddc_freq;
float CPR_phase;
radio_float_t symbolrate;
radio_float_t samplerate;
radio_float_t ddc_freq;
radio_float_t CPR_phase;
bool dfeAutoUpdateEnable;
bool strAutoControlEnable;
bool cprAutoControlEnable;
@@ -180,9 +180,9 @@ typedef struct _params_t
lead_lag_coeff_t cpr_loopfilter_coeff[2];
uint32_t cpr_loopfilter_coeff_index;
float eqMuCma;
float eqMuDfe;
float agcMu[2];
radio_float_t eqMuCma;
radio_float_t eqMuDfe;
radio_float_t agcMu[2];
uint32_t agcMu_index;
enum str_state strState;
@@ -196,31 +196,31 @@ typedef struct _status_t
uint32 numSymbolsReceived;
frame_statistics_t frameStatRx;
float noiseStr;
float noiseCpr;
radio_float_t noiseStr;
radio_float_t noiseCpr;
float EB_N0;
float powerRF_dB;
float powerDDC_dB;
float powerMF_dB;
float powerCPR_dB;
float powerAGC_dB;
float powerEQ_dB;
float powerDecison_dB;
float powerMagDecision_dB;
float powerPhiDecision_dB;
radio_float_t EB_N0;
radio_float_t powerRF_dB;
radio_float_t powerDDC_dB;
radio_float_t powerMF_dB;
radio_float_t powerCPR_dB;
radio_float_t powerAGC_dB;
radio_float_t powerEQ_dB;
radio_float_t powerDecison_dB;
radio_float_t powerMagDecision_dB;
radio_float_t powerPhiDecision_dB;
float snrCurrent_dB;
float snrCma_dB;
float snrDfeOn_dB;
float snrDfeOff_dB;
float snrSymbolMagnitude_dB;
float snrSymbolPhase_dB;
radio_float_t snrCurrent_dB;
radio_float_t snrCma_dB;
radio_float_t snrDfeOn_dB;
radio_float_t snrDfeOff_dB;
radio_float_t snrSymbolMagnitude_dB;
radio_float_t snrSymbolPhase_dB;
float deltaFrequencyCPR;
float deltaFrequencySTR;
radio_float_t deltaFrequencyCPR;
radio_float_t deltaFrequencySTR;
float agcGain[2];
radio_float_t agcGain[2];
minmax_t rfMinMax;
cpx_minmax_t ddcMinMax;
@@ -235,7 +235,7 @@ public:
ReceiverInterface() {}
virtual ~ReceiverInterface() {}
virtual void setSamplerate(float samplerate_hz) = 0;
virtual void setSamplerate(radio_float_t samplerate_hz) = 0;
virtual void setParams(const params_t &params) = 0;
virtual const params_t& getParams() = 0;
@@ -278,7 +278,7 @@ public:
~Receiver(void);
void init();
void free();
void processBaseband(float *pI, float *pQ, uint32_t len);
void processBaseband(radio_float_t *pI, radio_float_t *pQ, uint32_t len);
void processPassband(RVec const &rf, uint32_t len);
void setBufSize(uint32 size);
uint32 getNumSoftSym();
@@ -399,7 +399,7 @@ private:
void initDDC();
// Interface
void setSamplerate(float samplerate_hz) override;
void setSamplerate(radio_float_t samplerate_hz) override;
void setParams(const params_t &params) override;
params_t& getParams() override;
status_t& getStatus() override;
+7 -1
View File
@@ -28,8 +28,14 @@ public:
{
}
void write(RVec const &data, uint32_t len)
void write(float const *pData, uint32_t len)
{
RVec data(len);
for (int i=0; i < len; i++)
{
data[i] = pData[i];
}
if (m_numfill.get() >= numBuffers)
return;
+9 -8
View File
@@ -41,9 +41,9 @@ private:
RVec m_bufferRF;
CVec m_bufferSym;
CVec m_bufferSymRcf;
float m_samplerate;
float m_ddcFrequency;
float m_symbolrate;
radio_float_t m_samplerate;
radio_float_t m_ddcFrequency;
radio_float_t m_symbolrate;
uint32_t m_numBitPerSymbol;
radio_float_t *m_pCoeffRCF;
radio_float_t m_kRcf;
@@ -95,31 +95,31 @@ private:
bufferResize(size);
paramChanged();
}
void setSamplerate(float samplerate_hz) override
void setSamplerate(radio_float_t samplerate_hz) override
{
m_samplerate = samplerate_hz;
m_carrierFreq = samplerate_hz/4;
m_symbolrate = samplerate_hz/4;
paramChanged();
}
void setCarrierFrequency(float frequency_hz) override
void setCarrierFrequency(radio_float_t frequency_hz) override
{
const ScopedLock sl (m_lock);
m_carrierFreq = frequency_hz;
m_duc.init(m_carrierFreq/m_samplerate, 0);
}
float getCarrierFrequency() override
radio_float_t getCarrierFrequency() override
{
return m_carrierFreq;
}
void setSymbolRate(float symbolrate_bit_per_sec) override
void setSymbolRate(radio_float_t symbolrate_bit_per_sec) override
{
m_symbolrate = symbolrate_bit_per_sec;
paramChanged();
}
float getSymbolRate() override
radio_float_t getSymbolRate() override
{
return m_symbolrate;
}
@@ -132,6 +132,7 @@ private:
paramChanged();
}
void getData(float *pRF, uint32_t len) override
{
uint32_t res;
+6 -6
View File
@@ -13,14 +13,14 @@ public:
virtual void reset() = 0;
virtual void setBuffersize(uint32_t size) = 0;
virtual void setSamplerate(float samplerate_hz) = 0;
virtual void setCarrierFrequency(float frequency_hz) = 0;
virtual float getCarrierFrequency() = 0;
virtual void setSymbolRate(float symbolrate_bit_per_sec) = 0;
virtual float getSymbolRate() = 0;
virtual void setSamplerate(radio_float_t samplerate_hz) = 0;
virtual void setCarrierFrequency(radio_float_t frequency_hz) = 0;
virtual radio_float_t getCarrierFrequency() = 0;
virtual void setSymbolRate(radio_float_t symbolrate_bit_per_sec) = 0;
virtual radio_float_t getSymbolRate() = 0;
virtual void setNumBitPerSymbol(uint32_t numBitPerSymbol) = 0;
virtual void getData(float *pRF, uint32_t len) = 0;
};
#endif
#endif