[WIP] Work continues on resolving issues with the 2-channel synthesizer

that is currently up/down converting the signal of interest, but the
synthesizer is not correctly combining the original two channels.

Some experimentation with the tap count for the channelizer indicates
that we can cut the tap count in half and still have decent decoding
on the P25 decoder when paired to an aligned channelized output.  The
2-channel synthesized output decodes partially, but needs more work.

Resolved issue with channel gain in the channelizer that was making the
sample values so small that they were registering as zero when converted
from float to 16-bit int value in the complex wave recorder.
This commit is contained in:
Denny
2018-04-29 06:19:39 -04:00
parent e395d737f8
commit 488b2e02ce
19 changed files with 764 additions and 159 deletions

View File

@@ -49,6 +49,17 @@ public class SourceEvent
private Event mEvent;
private Number mValue;
private Source mSource;
private String mEventDescription;
/**
* Private constructor. Use the static constructor methods to create an event.
*/
private SourceEvent(Event event, Number value, String eventDescription)
{
mEvent = event;
mValue = value;
mEventDescription = eventDescription;
}
/**
* Private constructor. Use the static constructor methods to create an event.
@@ -147,6 +158,17 @@ public class SourceEvent
return new SourceEvent(Event.NOTIFICATION_FREQUENCY_CHANGE, frequency);
}
/**
* Creates a new frequency change event
*
* @param frequency in hertz
* @param eventDescription to add a tag to the event
*/
public static SourceEvent frequencyChange(long frequency, String eventDescription)
{
return new SourceEvent(Event.NOTIFICATION_FREQUENCY_CHANGE, frequency, eventDescription);
}
/**
* Creates a new frequency correction change event
*
@@ -177,6 +199,17 @@ public class SourceEvent
return new SourceEvent(Event.NOTIFICATION_SAMPLE_RATE_CHANGE, sampleRate);
}
/**
* Creates a new sample rate change event
*
* @param sampleRate in hertz
* @param eventDescription to include with the event
*/
public static SourceEvent sampleRateChange(double sampleRate, String eventDescription)
{
return new SourceEvent(Event.NOTIFICATION_SAMPLE_RATE_CHANGE, sampleRate, eventDescription);
}
/**
* Creates a new channel sample rate change event
*
@@ -250,8 +283,12 @@ public class SourceEvent
return new SourceEvent(Event.REQUEST_SOURCE_DISPOSE, source);
}
@Override
public String toString()
{
return "SOURCE EVENT:" + mEvent + " VALUE:" + (mValue != null ? mValue : "(empty)");
return "SOURCE EVENT:" + mEvent +
" VALUE:" + (mValue != null ? mValue : "(empty)") +
" SOURCE:" + (mSource != null ? mSource.getClass() : "(null)") +
" DESCRIPTION:" + (mEventDescription != null ? mEventDescription : "");
}
}