-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SCOS Actions 3.0.0 #25
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aromanielloNTIA
changed the title
DSP Refactor + Code Reuse Improvements
Add DSP modules, DSP Refactoring + Code Reuse Improvements
Jul 20, 2022
Merged
dboulware
requested changes
Aug 18, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks really good. See minor comments in line.
dboulware
reviewed
Aug 23, 2022
dboulware
approved these changes
Aug 23, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The major components of this update are:
import scos_actions.actions.fft
would need to be changed toimport scos_actions.signal_processing.fft
in any software depending onscos_actions
)Testing
All tests are passing and the changes have been tested using a mock USRP and the seadog03 sensor (Tektronix 507A). Running
scos-sensor
branchactions-dsp-refactor
will point a USRP sensor to this branch (and usescos-usrp
branchactions-dsp-update
. Theactions-dsp-refactor-tek
does the same for a Tektronix sensor (usingscos-tekrsa
branchactions-dsp-update
).A much more descriptive list of changes:
scipy.fft.fft
added in 1.6.0, and to support NumPy higher than 1.22.0)black
, sincepre-commit
specifies the version and installs it as needed.pip-tools
, sincepip-tools
is recommended for dependency management in the README.pre-commit-config.yaml
: Fixed broken Markdown linting, updatedblack
version, switchedisort
source to non-deprecated repository, removed deprecatedseed-isort-config
. Addedpyupgrade
hook and multiple other default hooks.signal_processing/apd.py
with routines for estimating the APD with parameterized downsamplingsignal_processing/power_analysis.py
with routines for time domain power calculations, generalized power detectors (frequency or time domain), and quantile filteringsignal_processing/unit_conversion.py
with routines for unit conversion, which now use NumExpr to speed up computation on large arrayssignal_processing/filtering.py
with routines for digital filtering. Currently contains routines to generate IIR and FIR filters using SciPy, as well as a few useful filter analysis methods.get_enr
andget_temperature
out of the Y-factor action, and intosignal_processing/calibration.py
, alongside the Y-factor calculation/scos_actions/actions/fft.py
to/scos_actions/signal_processing/fft.py
fft.py
to contain a generally-applicable set of reusable FFT-related routines:fft.get_fft_frequencies
now returns a list instead of a NumPy array, ready to be stored in metadata without conversion in each action.fft.get_fft_window
now supports many more window types usingscipy.signal.get_window()
, and is also backwards-compatible for previously allowed inputs like 'Flat Top' or 'Hanning' ('flattop' and 'hann', respectively, in SciPy syntax)numpy.fft.fft
toscipy.fft.fft
to leverage parallel processing for faster FFT computationunit_conversion.py
orpower_analysis.py
as applicablepower_analysis.py
:power_analysis.create_power_detector()
. Apply to power samples usingpower_analysis.apply_power_detector()
.fft.py
which then has to be reversed in the action definition).utils
:actions/action_utils.py
and moved its functionality intoutils.py
action_utils.py
with a more generalget_parameter()
method, which includes basic error handling.get_iteration_parameters
withget_iterable_parameters
, which now allows for creating an iterable result for single-frequency measurements as well as replicating values which are specified once for multi-frequency measurements (i.e. a multi-frequency action can now include one gain value and multiple frequencies, and the gain value will be used for all iterations). This also results in simplified multi-frequency action definitions.actions/interfaces/signals.py
which caused warnings when running tests