mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 08:37:25 -05:00
P25 LSM decoder work in progress. Adds a CQPSK decoder based on Max's (KA1RBI) scope.py and gardner loop.
The CQPSK decoder is starting to take shape, but needs more tweaking and testing. It's not keeping a good lock on strong P25 signals. I have to add some more features to the intrumentation package to allow me to visualize the internals of the CQPSK decoder so that I can get a better sense of what needs fine tuning. The CQPSK decoder may work for anyone that wants to sync the repo and run the build script.
This commit is contained in:
@@ -80,6 +80,8 @@ public class ConstellationViewer extends JPanel
|
||||
{
|
||||
mBuffer.receive( sample );
|
||||
|
||||
ComplexSample angle = ComplexSample.multiply( sample, mPrevious.conjugate() );
|
||||
|
||||
repaint();
|
||||
}
|
||||
|
||||
@@ -105,7 +107,6 @@ public class ConstellationViewer extends JPanel
|
||||
|
||||
Graphics2D graphics = (Graphics2D) g;
|
||||
|
||||
// graphics.setBackground( Color.BLACK );
|
||||
graphics.setColor( Color.BLUE );
|
||||
|
||||
List<ComplexSample> samples = mBuffer.getElements();
|
||||
@@ -113,15 +114,12 @@ public class ConstellationViewer extends JPanel
|
||||
double centerX = (double)getHeight() / 2.0d;
|
||||
double centerY = (double)getWidth() / 2.0d;
|
||||
|
||||
// double scale = centerX / 2.0d;
|
||||
|
||||
double scale = 0.5d;
|
||||
|
||||
mCounter = 0;
|
||||
|
||||
for( ComplexSample sample: samples )
|
||||
{
|
||||
|
||||
if( mCounter > ( mOffset + mSamplesPerSymbol ) )
|
||||
{
|
||||
/**
|
||||
@@ -135,7 +133,6 @@ public class ConstellationViewer extends JPanel
|
||||
double q = ( sample.quadrature() * mPrevious.inphase() ) +
|
||||
( sample.inphase() * -mPrevious.quadrature() );
|
||||
|
||||
mLog.debug( "i:" + i + " q:" + q );
|
||||
double angle;
|
||||
|
||||
//Check for divide by zero
|
||||
@@ -165,9 +162,6 @@ public class ConstellationViewer extends JPanel
|
||||
}
|
||||
|
||||
mCounter++;
|
||||
|
||||
// mLog.debug( "Plotting x:" + ( centerX - ( sample.x() * scale ) ) +
|
||||
// " y:" + ( centerY - ( sample.y() * scale ) ) + " for sample " + sample.toString() );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user