Execute the MUSIC Algorithm on a SeaSondeRCS Object
Source:R/SeaSondeRCS_MUSIC.R
seasonder_runMUSIC.Rd
This function performs the MUSIC (MUltiple SIgnal Classification) algorithm on a given SeaSondeRCS object, executing a series of processing steps to extract direction-of-arrival (DOA) information and other related metrics from the radar cross-spectrum data.
Value
A SeaSondeRCS
object with updated MUSIC-related attributes. Specifically:
Processing steps annotated with the MUSIC start and end points.
Updated attributes and fields for covariance matrix computations, DOA estimations, and other MUSIC-related metrics.
Details
The MUSIC algorithm is executed in a series of sequential steps:
Log the start of the MUSIC algorithm.
Update the processing steps of the
SeaSondeRCS
object to include the MUSIC start text.Perform the following computations:
Compute the covariance matrix from the cross-spectrum data.
Perform eigen decomposition on the covariance matrix.
Compute the DOA functions using MUSIC-specific methods.
Extract peaks from the DOA functions, corresponding to possible signal directions.
Calculate the signal power matrix.
Test for dual solutions and compute their proportions.
Select the final set of DOAs from the computed data.
Convert the selected DOAs to geographical coordinates (latitude and longitude).
Log the completion of the MUSIC algorithm.
See also
seasonder_MUSICComputeCov
: Compute the covariance matrix.
seasonder_MUSICCovDecomposition
: Perform eigen decomposition of the covariance matrix.
seasonder_MUSICComputeDOAProjections
: Compute the direction-of-arrival functions.
seasonder_MUSICExtractPeaks
: Extract peaks from the DOA functions.
seasonder_MUSICComputeSignalPowerMatrix
: Calculate the signal power matrix.
seasonder_MUSICTestDualSolutions
: Test and analyze dual solutions in the DOA.
seasonder_MUSICComputePropDualSols
: Compute proportions for dual solutions.
seasonder_MUSICSelectDOA
: Select final DOA estimations.
seasonder_MUSIC_LonLat
: Convert DOA estimations to geographical coordinates.
Examples
# \donttest{
# Prepare a SeaSondeRCS object with MUSIC data
apm_file <- system.file("css_data/MeasPattern.txt", package = "SeaSondeR")
apm_obj <- seasonder_readSeaSondeRAPMFile(apm_file)
#> seasonder_createSeaSondeRAPM: APM object created successfully.
cs_file <- system.file("css_data/CSS_TORA_24_04_04_0700.cs", package = "SeaSondeR")
cs_obj <- seasonder_createSeaSondeRCS(cs_file, seasonder_apm_object = apm_obj)
#> new_SeaSondeRCS: SeaSondeRCS object created successfully.
cs_obj <- seasonder_initMUSICData(cs_obj)
cs_obj <- seasonder_initMUSICData(
cs_obj,
range_cells = c(rep(5,11), rep(4,11)),
doppler_bins = c(c(669:679),c(674:684))
)
cs_obj <- seasonder_SeaSondeRCSMUSICInterpolateDoppler(cs_obj)
# Run the MUSIC algorithm
cs_obj <- seasonder_runMUSIC(cs_obj)
#> seasonder_runMUSIC: MUSIC algorithm started.
#> seasonder_runMUSIC: MUSIC algorithm finished.
# Check the updated processing steps
print(seasonder_getSeaSondeRCS_ProcessingSteps(cs_obj))
#> [1] "2025-04-28 09:33:49.425408: FOR parameters set."
#> [2] "2025-04-28 09:33:49.436528: NoiseLevel for antenna 1 computed."
#> [3] "2025-04-28 09:33:49.585828: NoiseLevel for antenna 2 computed."
#> [4] "2025-04-28 09:33:49.597536: NoiseLevel for antenna 3 computed."
#> [5] "2025-04-28 09:33:49.605477: Created from /home/runner/work/_temp/Library/SeaSondeR/css_data/CSS_TORA_24_04_04_0700.cs."
#> [6] "2025-04-28 09:33:49.659715: MUSIC algorithm started."
#> [7] "2025-04-28 09:33:49.659964: MUSIC covariance matrix computation started"
#> [8] "2025-04-28 09:33:49.663095: MUSIC covariance matrix computation ended"
#> [9] "2025-04-28 09:33:49.665446: NoiseLevel for antenna 1 computed."
#> [10] "2025-04-28 09:33:49.66765: NoiseLevel for antenna 2 computed."
#> [11] "2025-04-28 09:33:49.669849: NoiseLevel for antenna 3 computed."
#> [12] "2025-04-28 09:33:49.673722: MUSIC covariance matrix decomposition started"
#> [13] "2025-04-28 09:33:49.675404: MUSIC covariance matrix decomposition ended"
#> [14] "2025-04-28 09:33:49.675622: MUSIC DOA functions computation started"
#> [15] "2025-04-28 09:33:49.703844: MUSIC DOA functions computation ended"
#> [16] "2025-04-28 09:33:49.704067: MUSIC peak extraction started"
#> [17] "2025-04-28 09:33:49.718834: MUSIC peak extraction ended"
#> [18] "2025-04-28 09:33:49.721815: MUSIC dual solutions testing started"
#> [19] "2025-04-28 09:33:49.737123: MUSIC dual solutions testing ended"
#> [20] "2025-04-28 09:33:49.737394: MUSIC DOA selection started"
#> [21] "2025-04-28 09:33:49.738629: MUSIC DOA selection ended"
#> [22] "2025-04-28 09:33:49.742913: MUSIC algorithm ended with 42.9% of dual solutions."
# }