mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 08:37:25 -05:00
Adds airspy USB tuner support and updates the spectral display
component. -Airspy supported with 10 and 2.5 MSps sample rates. Additional decimation may be added later. -Spectral display updated to include smoothing and filtering options. Note: the decimated output of a tuner channel from the airspy is 48,076.9 samples per second, versus the normal 48 kHz decimated rate. This is 1.0015 times the normal rate and doesn't appear to impact the decoders or audio processing. Therefore, no fractional resampling has been added.
This commit is contained in:
@@ -66,10 +66,11 @@ import spectrum.OverlayPanel.ChannelDisplay;
|
||||
import spectrum.converter.ComplexDecibelConverter;
|
||||
import spectrum.converter.DFTResultsConverter;
|
||||
import spectrum.menu.AveragingItem;
|
||||
import spectrum.menu.DBScaleItem;
|
||||
import spectrum.menu.FFTWidthItem;
|
||||
import spectrum.menu.FFTWindowTypeItem;
|
||||
import spectrum.menu.FrameRateItem;
|
||||
import spectrum.menu.SmoothingItem;
|
||||
import spectrum.menu.SmoothingTypeItem;
|
||||
|
||||
import com.jidesoft.swing.JideSplitPane;
|
||||
|
||||
@@ -79,6 +80,7 @@ import controller.channel.ChannelEvent;
|
||||
import controller.channel.ChannelEventListener;
|
||||
import controller.channel.ChannelUtils;
|
||||
import dsp.filter.Window.WindowType;
|
||||
import dsp.filter.smoothing.SmoothingFilter.SmoothingType;
|
||||
|
||||
/**
|
||||
* Spectral Display Panel - comprises a DFTProcessor coupled with a waterfall
|
||||
@@ -387,6 +389,9 @@ public class SpectralDisplayPanel extends JPanel
|
||||
//Register the dft processor to receive samples from the tuner
|
||||
mTuner.addListener( (Listener<ComplexBuffer>)mDFTProcessor );
|
||||
|
||||
mDFTConverter.setSampleSize( mTuner.getSampleSize() );
|
||||
mSpectrumPanel.setSampleSize( mTuner.getSampleSize() );
|
||||
|
||||
//Fire frequency and sample rate change events so that everyone
|
||||
//can init
|
||||
try
|
||||
@@ -597,14 +602,6 @@ public class SpectralDisplayPanel extends JPanel
|
||||
|
||||
if( event.getComponent() != mWaterfallPanel )
|
||||
{
|
||||
/**
|
||||
* DB Scale menu
|
||||
*/
|
||||
JMenu dbScaleMenu = new JMenu( "Scale: 0 to dBm" );
|
||||
dbScaleMenu.add(
|
||||
new DBScaleItem( mSpectrumPanel, -100 ) );
|
||||
displayMenu.add( dbScaleMenu );
|
||||
|
||||
/**
|
||||
* Averaging menu
|
||||
*/
|
||||
@@ -666,6 +663,26 @@ public class SpectralDisplayPanel extends JPanel
|
||||
fftWindowType.add(
|
||||
new FFTWindowTypeItem( mDFTProcessor, type ) );
|
||||
}
|
||||
|
||||
if( event.getComponent() != mWaterfallPanel )
|
||||
{
|
||||
/**
|
||||
* Smoothing menu
|
||||
*/
|
||||
JMenu smoothingMenu = new JMenu( "Smoothing" );
|
||||
|
||||
if( mSpectrumPanel.getSmoothingType() != SmoothingType.NONE )
|
||||
{
|
||||
smoothingMenu.add( new SmoothingItem( mSpectrumPanel, 5 ) );
|
||||
smoothingMenu.add( new JSeparator() );
|
||||
}
|
||||
smoothingMenu.add( new SmoothingTypeItem( mSpectrumPanel, SmoothingType.GAUSSIAN ) );
|
||||
smoothingMenu.add( new SmoothingTypeItem( mSpectrumPanel, SmoothingType.TRIANGLE ) );
|
||||
smoothingMenu.add( new SmoothingTypeItem( mSpectrumPanel, SmoothingType.RECTANGLE ) );
|
||||
smoothingMenu.add( new SmoothingTypeItem( mSpectrumPanel, SmoothingType.NONE ) );
|
||||
|
||||
displayMenu.add( smoothingMenu );
|
||||
}
|
||||
|
||||
if( contextMenu != null )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user