1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-10-02 09:46:38 -04:00

ATV Demodulator: added FM deviation for FM1 and FM2 modes

This commit is contained in:
f4exb 2017-03-23 01:15:10 +01:00
parent 016f7c1e37
commit 87c63b41bb

View File

@ -327,6 +327,11 @@ void ATVDemod::demod(Complex& c)
m_fltBufferI[0]=fltNormI; m_fltBufferI[0]=fltNormI;
m_fltBufferQ[0]=fltNormQ; m_fltBufferQ[0]=fltNormQ;
if (m_objRFRunning.m_fmDeviation != 1.0f)
{
fltVal = ((fltVal - 0.5f) / m_objRFRunning.m_fmDeviation) + 0.5f;
}
} }
else if (m_objRFRunning.m_enmModulation == ATV_AM) else if (m_objRFRunning.m_enmModulation == ATV_AM)
{ {
@ -392,8 +397,8 @@ void ATVDemod::demod(Complex& c)
else if (m_objRFRunning.m_enmModulation == ATV_FM3) else if (m_objRFRunning.m_enmModulation == ATV_FM3)
{ {
float rawDeviation; float rawDeviation;
fltVal = (m_objPhaseDiscri.phaseDiscriminatorDelta(c, magSq, rawDeviation)/ m_objRFRunning.m_fmDeviation) + 0.5f; fltVal = m_objPhaseDiscri.phaseDiscriminatorDelta(c, magSq, rawDeviation) + 0.5f;
fltVal = fltVal < 0.0f ? 0.0f : fltVal > 1.0f ? 1.0f : fltVal; //fltVal = fltVal < 0.0f ? 0.0f : fltVal > 1.0f ? 1.0f : fltVal;
m_objMagSqAverage.feed(magSq); m_objMagSqAverage.feed(magSq);
fltNorm = sqrt(magSq); fltNorm = sqrt(magSq);
} }
@ -782,10 +787,10 @@ void ATVDemod::applySettings()
m_bfoFilter.setFrequencies(m_objRFConfig.m_fltBFOFrequency, m_objConfigPrivate.m_intTVSampleRate); m_bfoFilter.setFrequencies(m_objRFConfig.m_fltBFOFrequency, m_objConfigPrivate.m_intTVSampleRate);
} }
// if (m_objRFConfig.m_fmDeviation != m_objRFRunning.m_fmDeviation) if (m_objRFConfig.m_fmDeviation != m_objRFRunning.m_fmDeviation)
// { {
// m_objPhaseDiscri.setFMScaling(m_objRFConfig.m_fmDeviation); m_objPhaseDiscri.setFMScaling(1.0f / m_objRFConfig.m_fmDeviation);
// } }
m_objRunning = m_objConfig; m_objRunning = m_objConfig;
m_objRFRunning = m_objRFConfig; m_objRFRunning = m_objRFConfig;