Channel analyzer NG: updated documentation + fixes

pull/183/merge
f4exb 2018-05-21 01:40:21 +02:00
rodzic f2f34ad9a9
commit 3f373b9e91
8 zmienionych plików z 40 dodań i 11 usunięć

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 101 KiB

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 102 KiB

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 16 KiB

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 19 KiB

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -258,7 +258,7 @@ private:
break;
case ChannelAnalyzerNGSettings::InputAutoCorr:
{
std::complex<float> a = m_corr->run(s/(SDR_RX_SCALEF/1024.0f), 0);
std::complex<float> a = m_corr->run(s/(SDR_RX_SCALEF/512.0f), 0);
if (m_settings.m_ssb & !m_usb) { // invert spectrum for LSB
m_sampleBuffer.push_back(Sample(a.imag(), a.real()));

Wyświetl plik

@ -390,6 +390,7 @@ ChannelAnalyzerNGGUI::ChannelAnalyzerNGGUI(PluginAPI* pluginAPI, DeviceUISet *de
m_channelMarker.setBandwidth(m_rate);
m_channelMarker.setSidebands(ChannelMarker::usb);
m_channelMarker.setCenterFrequency(0);
m_channelMarker.setTitle("Channel Analyzer NG");
m_channelMarker.blockSignals(false);
m_channelMarker.setVisible(true); // activate signal on the last setting only
setTitleColor(m_channelMarker.getColor());

Wyświetl plik

@ -43,6 +43,7 @@ void ChannelAnalyzerNGSettings::resetToDefaults()
m_pllPskOrder = 1;
m_inputType = InputSignal;
m_rgbColor = QColor(128, 128, 128).rgb();
m_title = "Channel Analyzer NG";
}
QByteArray ChannelAnalyzerNGSettings::serialize() const
@ -63,6 +64,7 @@ QByteArray ChannelAnalyzerNGSettings::serialize() const
s.writeBool(12, m_fll);
s.writeU32(13, m_pllPskOrder);
s.writeS32(14, (int) m_inputType);
s.writeString(15, m_title);
return s.final();
}
@ -107,6 +109,7 @@ bool ChannelAnalyzerNGSettings::deserialize(const QByteArray& data)
d.readU32(13, &m_pllPskOrder, 1);
d.readS32(14, &tmp, 0);
m_inputType = (InputType) tmp;
d.readString(15, &m_title, "Channel Analyzer NG");
return true;
}

Wyświetl plik

@ -37,51 +37,76 @@ Note: the spectrum view (Channel spectrum) is not presented here.
Use the wheels to adjust the frequency shift in Hz from the center frequency of reception. Left click on a digit sets the cursor position at this digit. Right click on a digit sets all digits on the right to zero. This effectively floors value at the digit position. Wheels are moved with the mousewheel while pointing at the wheel or by selecting the wheel with the left mouse click and using the keyboard arrows. Pressing shift simultaneously moves digit by 5 and pressing control moves it by 2.
<h3>3: Toggle the rational downsampler</h3>
<h3>2: Locked loop</h3>
Locks a PLL or FLL (depends on control 3) on the signal and mixes its NCO with the input signal. This is mostly useful for carrier recovery on PSK modulations (PLL is used). This effectively de-rotates the signal and symbol points (constellation) can be seen in XY mode with real part as X and imagiary part as Y.
<h3>3: Locked loop mode</h3>
Use this combo to control the locked loop type:
- 1: PLL with no phase modulation. Locks to CW carrier.
- 2: PLL for BPSK modulation (bi-phase). Locks to a BPSK transmission
- 4: PLL for QPSK modulation (quad-phase). Locks to a QPSK transmission
- 8: PLL for 8-PSK modulation (octo-phase). Locks to a 8-PSK transmission
- 16: PLL for 16-PSK modulation (16-phase). Locks to a 16-PSK transmission
- F: FLL. Actually a frequency follower. This effectively implements an AFC for FM modulations.
<h3>4: Toggle the rational downsampler</h3>
The input channel sample rate is given by the source device sample rate possibly downsampled by a power of two in the source device plugin. This input sample rate can be optionally downsampled to any value using a rational downsampler. This allows a precise control of the timings independently of the source plugin sample rate. Some devices are flexible on their sample rate some like the Airspy are not.
<h3>4: Rational downsampler output rate</h3>
<h3>5: Rational downsampler output rate</h3>
Use the wheels to adjust the sample rate that will be used in the rest of the signal processing in the channel. Left click on a digit sets the cursor position at this digit. Right click on a digit sets all digits on the right to zero. This effectively floors value at the digit position. The minimum value is 2000 S/s and the maximum value is the source plugin output sample rate. Wheels are moved with the mousewheel while pointing at the wheel or by selecting the wheel with the left mouse click and using the keyboard arrows. Pressing shift simultaneously moves digit by 5 and pressing control moves it by 2.
<h3>5: Downsampler by a power of two</h3>
<h3>6: Downsampler by a power of two</h3>
This combo can select a further downsampling by a power of two. This downsampling applies on the signal coming either directly from the source plugin when the rational downsampler is disabled or from the output of the rational downsampler if it is engaged.
<h3>6: Processing sample rate</h3>
<h3>7: Processing sample rate</h3>
This is the resulting sample rate that will be used by the spectrum and scope visualizations
<h3>7. Channel power</h3>
<h3>8: signal selection</h3>
Use this combo to select which (complex) signal to use as the display source:
- Sig: the main signal possibly mixed with PLL/FLL output (see 2 and 3)
- Lock: the output signal (NCO) from PLL or FLL
- ACorr: Auto-correlation of the main signal. It is a fixed 4096 point auto-correlation using FFT technique thus spanning the length of 4096 samples. The trace may show more samples in which case you will see the successive auto-correlation results.
&#9758; Auto-correlation hint: because there is always a peak of magnitude at t=0 triggering on the magnitude will make sure the trace starts at t=0
<h3>9. Channel power</h3>
Average total power in dB relative to a +/- 1.0 amplitude signal received in the pass band.
<h3>8. Select lowpass filter cut-off frequency</h3>
<h3>10. Select lowpass filter cut-off frequency</h3>
In SSB mode this filter is a complex filter that can lowpass on either side of the center frequency. It is therefore labeled as "LP". For negative frequencies (LSB) the cut-off frequency is therefore negative. In fact setting a negative frequency in SSB mode automatically turns on the LSB mode processing and the spectrum is reversed.
In normal (DSB) mode this filter is a real filter that lowpass on both sides of the zero (center) frequency symmetrically. Therefore it acts as a bandpass filter centered on the zero frequency and therefore it is labeled as "BP". The value displayed in (9) is the full bandwidth of the filter.
<h3>9. Lowpass filter cut-off frequency</h3>
<h3>11. Lowpass filter cut-off frequency</h3>
In SSB mode this is the complex cut-off frequency and is negative for LSB.
In normal (DSB) mode this is the full bandwidth of the real lowpass filter centered around zero frequency.
<h3>10. SSB filtering</h3>
<h3>12. SSB filtering</h3>
When this toggle is engaged the signal is filtered either above (USB) or below (LSB) the channel center frequency. The sideband is selected according to the sign of the lowpass filter cut-off frequency (8): if positive the USB is selected else the LSB. In LSB mode the spectrum is reversed.
When SSB is off the lowpass filter is actually a bandpass filter around the channel center frequency.
<h3>11. Select highpass filter cut-off frequency</h3>
<h3>13. Select highpass filter cut-off frequency</h3>
In SSB mode this controls the cut-off frequency of the complex highpass filter which is the filter closest to the zero frequency. This cut-off frequency is always at least 0.1 kHz in absolute value below the lowpass filter cut-off frequency (8).
In normal (DSB) mode this filter is not active.
<h3>12. Highpass filter cut-off frequency</h3>
<h3>14. Highpass filter cut-off frequency</h3>
This is the cut-off frequency of the highpass filter in kHz. It is zero or negative in LSB mode.