mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-26 01:39:05 -05:00
ATV Modulator: full SSB support
This commit is contained in:
parent
fe66703954
commit
13455dfff8
8
debian/changelog
vendored
8
debian/changelog
vendored
@ -1,9 +1,15 @@
|
|||||||
|
sdrangel (3.3.1-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* ATV modulator: SSB support
|
||||||
|
|
||||||
|
-- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Thu, 16 Mar 2017 23:14:18 +0100
|
||||||
|
|
||||||
sdrangel (3.3.0-1) unstable; urgency=medium
|
sdrangel (3.3.0-1) unstable; urgency=medium
|
||||||
|
|
||||||
* NFM demod: new discriminator and optional FM deviation based squelch
|
* NFM demod: new discriminator and optional FM deviation based squelch
|
||||||
* ATV modulator
|
* ATV modulator
|
||||||
|
|
||||||
-- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Thu, 02 Mar 2017 23:14:18 +0100
|
-- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Wed, 15 Mar 2017 23:14:18 +0100
|
||||||
|
|
||||||
sdrangel (3.2.0-1) unstable; urgency=medium
|
sdrangel (3.2.0-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
@ -188,6 +188,11 @@ void ATVMod::modulateSample()
|
|||||||
m_modSample.real(cos(m_modPhasor) * 29204.0f); // -1 dB
|
m_modSample.real(cos(m_modPhasor) * 29204.0f); // -1 dB
|
||||||
m_modSample.imag(sin(m_modPhasor) * 29204.0f);
|
m_modSample.imag(sin(m_modPhasor) * 29204.0f);
|
||||||
break;
|
break;
|
||||||
|
case ATVModulationLSB:
|
||||||
|
case ATVModulationUSB:
|
||||||
|
m_modSample = modulateSSB(t);
|
||||||
|
m_modSample *= 29204.0f;
|
||||||
|
break;
|
||||||
case ATVModulationAM: // AM 90%
|
case ATVModulationAM: // AM 90%
|
||||||
default:
|
default:
|
||||||
m_modSample.real((t*1.8f + 0.1f) * 16384.0f); // modulate and scale zero frequency carrier
|
m_modSample.real((t*1.8f + 0.1f) * 16384.0f); // modulate and scale zero frequency carrier
|
||||||
@ -195,6 +200,25 @@ void ATVMod::modulateSample()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Complex& ATVMod::modulateSSB(Real& sample)
|
||||||
|
{
|
||||||
|
int n_out;
|
||||||
|
Complex ci(sample, 0.0f);
|
||||||
|
fftfilt::cmplx *filtered;
|
||||||
|
|
||||||
|
n_out = m_SSBFilter->runSSB(ci, &filtered, m_running.m_atvModulation == ATVModulationUSB);
|
||||||
|
|
||||||
|
if (n_out > 0)
|
||||||
|
{
|
||||||
|
memcpy((void *) m_SSBFilterBuffer, (const void *) filtered, n_out*sizeof(Complex));
|
||||||
|
m_SSBFilterBufferIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_SSBFilterBufferIndex++;
|
||||||
|
|
||||||
|
return m_SSBFilterBuffer[m_SSBFilterBufferIndex-1];
|
||||||
|
}
|
||||||
|
|
||||||
void ATVMod::pullVideo(Real& sample)
|
void ATVMod::pullVideo(Real& sample)
|
||||||
{
|
{
|
||||||
int iLine = m_lineCount % m_nbLines2;
|
int iLine = m_lineCount % m_nbLines2;
|
||||||
|
@ -547,6 +547,7 @@ private:
|
|||||||
void pullVideo(Real& sample);
|
void pullVideo(Real& sample);
|
||||||
void calculateLevel(Real& sample);
|
void calculateLevel(Real& sample);
|
||||||
void modulateSample();
|
void modulateSample();
|
||||||
|
Complex& modulateSSB(Real& sample);
|
||||||
void applyStandard();
|
void applyStandard();
|
||||||
void openImage(const QString& fileName);
|
void openImage(const QString& fileName);
|
||||||
void openVideo(const QString& fileName);
|
void openVideo(const QString& fileName);
|
||||||
|
@ -34,6 +34,8 @@ The video signal can modulate the carrier in the following modes:
|
|||||||
|
|
||||||
- AM: Amplitude modulation. Modulation index is 90%.
|
- AM: Amplitude modulation. Modulation index is 90%.
|
||||||
- FM: Frequency modulation. Excursion is half the bandwidth available given the channel sample rate. e.g. for 4 MS/s sample rate this is ±1 MHz (2 MHz total)
|
- FM: Frequency modulation. Excursion is half the bandwidth available given the channel sample rate. e.g. for 4 MS/s sample rate this is ±1 MHz (2 MHz total)
|
||||||
|
- USB: SSB upper side band: video signal is transposed only in positive frequencies including DC component
|
||||||
|
- LSB: SSB lower side band: video signal is transposed only in megative frequencies excluding DC component
|
||||||
|
|
||||||
<h3>6: RF bandwidth</h3>
|
<h3>6: RF bandwidth</h3>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user