mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-13 00:57:31 -05:00
Closes #25.
Resolves issue with tuning RTL2832 based tuners into the range of 799.555894 and 801.584395. The pre-defined sample rates were slightly off and causing issues with this tuning range. I recalculated the sample rates and removed any that were not integral multiples of the 48,000 Hz desired channel rate. Updated the sample bit depth for RTL2832 and HackRF tuners. Even though the sample bit depth is 8 bits for each, the displayed noise floor was off, so I increased the bit depth for each.
This commit is contained in:
@@ -116,109 +116,4 @@ public class Oscillator
|
||||
{
|
||||
return mCurrentAngle.real();
|
||||
}
|
||||
|
||||
public static void main( String[] args )
|
||||
{
|
||||
Oscillator o = new Oscillator( 1536, 4096 );
|
||||
|
||||
o.rotate();
|
||||
|
||||
float[] samples = new float[ 8192 ];
|
||||
|
||||
for( int x = 0; x < 8192; x++ )
|
||||
{
|
||||
samples[ x ] = o.inphase();
|
||||
|
||||
o.rotate();
|
||||
}
|
||||
|
||||
logLargest( "Real: ", samples, false );
|
||||
|
||||
HilbertTransform ht = new HilbertTransform();
|
||||
|
||||
float[] transformed = ht.filter( samples );
|
||||
|
||||
logLargest( "Hilbert: ", transformed, true );
|
||||
|
||||
FloatFFT_1D fft = new FloatFFT_1D( 4096 );
|
||||
|
||||
fft.complexForward( transformed );
|
||||
|
||||
logLargest( "DFT:", transformed, true );
|
||||
}
|
||||
|
||||
private static void logLargest( String label, float[] samples, boolean complex )
|
||||
{
|
||||
float largestI = 0.0f;
|
||||
int indexLargestI = 0;
|
||||
float largestQ = 0.0f;
|
||||
int indexLargestQ = 0;
|
||||
|
||||
float smallestI = 0.0f;
|
||||
int indexsmallestI = 0;
|
||||
float smallestQ = 0.0f;
|
||||
int indexsmallestQ = 0;
|
||||
|
||||
for( int x = 0; x < samples.length; x++ )
|
||||
{
|
||||
if( complex )
|
||||
{
|
||||
if( x % 2 == 0 )
|
||||
{
|
||||
if( samples[ x ] > largestI )
|
||||
{
|
||||
largestI = samples[ x ];
|
||||
indexLargestI = x;
|
||||
}
|
||||
if( samples[ x ] < smallestI )
|
||||
{
|
||||
smallestI = samples[ x ];
|
||||
indexsmallestI = x;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( samples[ x ] > largestQ )
|
||||
{
|
||||
largestQ = samples[ x ];
|
||||
indexLargestQ = x;
|
||||
}
|
||||
if( samples[ x ] < smallestQ )
|
||||
{
|
||||
smallestQ = samples[ x ];
|
||||
indexsmallestQ = x;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( samples[ x ] > largestI )
|
||||
{
|
||||
largestI = samples[ x ];
|
||||
indexLargestI = x;
|
||||
}
|
||||
if( samples[ x ] < smallestI )
|
||||
{
|
||||
smallestI = samples[ x ];
|
||||
indexsmallestI = x;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if( complex )
|
||||
{
|
||||
mLog.debug( label +
|
||||
" largestI (" + indexLargestI + "): " + largestI +
|
||||
" smallestI (" + indexsmallestI + "): " + smallestI +
|
||||
" largestQ (" + indexLargestQ + "): " + largestQ +
|
||||
" smallestQ (" + indexsmallestQ + "): " + smallestQ );
|
||||
}
|
||||
else
|
||||
{
|
||||
mLog.debug( label +
|
||||
" largest (" + indexLargestI + "): " + largestI +
|
||||
" smallest (" + indexsmallestI + "): " + smallestI );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user