Skip to content

Commit

Permalink
Added physical layer spectral mask and spectrum service internals
Browse files Browse the repository at this point in the history
diagrams.
  • Loading branch information
sgalgano committed Dec 15, 2023
1 parent ac8dd28 commit 8a356b7
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 21 deletions.
Binary file added guide/images/spectralmask.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added guide/images/spectrumservice.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 12 additions & 5 deletions guide/physical-layer.txt
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,9 @@ of the spectrum which internally maps to a dedicated physical layer
the antenna's frequency of interest set using a series of energy
recorders to keep track of encountered signal energy over time.

~{{image file="images/spectrumservice.png"
scale=90}}~

Energy recorders use a logical wheel of bins, where bin width in
microseconds is set using the configuration parameter:
`noisebinsize`. Each over-the-air transmission is checked for
Expand Down Expand Up @@ -769,20 +772,20 @@ spurs. Each spectral mask must have a unique non-zero id.
</mask>
<mask id='2'>
<primary>
<width hz='500K' dBr='-50'/>
<width hz='500K' dBr='-60'/>
<width hz='500K' dBr='-30'/>
<width hz='1M' dBr='0'/>
<width hz='500K' dBr='-30'/>
<width hz='500K' dBr='-50'/>
<width hz='500K' dBr='-60'/>
</primary>
</mask>
<mask id='3'>
<primary>
<width hz='500K' dBr='-50'/>
<width hz='500K' dBr='-60'/>
<width hz='500K' dBr='-30'/>
<width hz='1M' dBr='0'/>
<width hz='500K' dBr='-30'/>
<width hz='500K' dBr='-50'/>
<width hz='500K' dBr='-60'/>
</primary>
<spurs>
<spur offset_from_center_hz='1G'>
Expand All @@ -801,6 +804,10 @@ spurs. Each spectral mask must have a unique non-zero id.
2. `<spur>` elements contain an offset from the center transmit
frequency in Hz.

~{{image file="images/spectralmask.png"
scale=50
caption="Visualization of mask id 2 shown above."}}~

By default, the physical layer uses a square mask across the entire
transmit bandwidth. When using spectral masks, the transmit bandwidth
is determined at the receiver to be the total width defined by the
Expand Down Expand Up @@ -842,7 +849,7 @@ sendDownstreamControl({SpectrumFilterAddControlMessage::create(1, // unique filt

Spectrum filters are added per receive antenna using a unique filter
index for a given center frequency (Hz) and bandwidth (hz), along with
an optional sub-bandwidth (Hz) length that subdivides spectral energy
an optional sub-band width (Hz) length that subdivides spectral energy
into sub-band width bins of specified size for each time bin in the
filter energy window. Additionally, optional match criteria can be
supplied to allow for more precise control of which energy is
Expand Down
21 changes: 12 additions & 9 deletions guide/site/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ GEM
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.15.5)
ffi (1.16.3)
forwardable-extended (2.6.0)
google-protobuf (3.24.0-x86_64-linux)
google-protobuf (3.25.1-x86_64-linux)
http_parser.rb (0.8.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
Expand All @@ -35,6 +35,8 @@ GEM
jekyll (>= 3.0, < 5.0)
jekyll-feed (0.17.0)
jekyll (>= 3.7, < 5.0)
jekyll-include-cache (0.2.1)
jekyll (>= 3.7, < 5.0)
jekyll-optional-front-matter (0.3.2)
jekyll (>= 3.0, < 5.0)
jekyll-sass-converter (3.0.0)
Expand All @@ -43,8 +45,9 @@ GEM
jekyll (>= 3.8, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
just-the-docs (0.5.4)
just-the-docs (0.7.0)
jekyll (>= 3.8.5)
jekyll-include-cache
jekyll-seo-tag (>= 2.0)
rake (>= 12.3.1)
kramdown (2.4.0)
Expand All @@ -62,19 +65,19 @@ GEM
jekyll-seo-tag (~> 2.1)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (5.0.3)
rake (13.0.6)
public_suffix (5.0.4)
rake (13.1.0)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.6)
rouge (4.1.3)
rouge (4.2.0)
safe_yaml (1.0.5)
sass-embedded (1.66.0-x86_64-linux-gnu)
sass-embedded (1.69.5-x86_64-linux-gnu)
google-protobuf (~> 3.23)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
unicode-display_width (2.4.2)
unicode-display_width (2.5.0)
webrick (1.8.1)

PLATFORMS
Expand All @@ -93,4 +96,4 @@ DEPENDENCIES
wdm (~> 0.1.1)

BUNDLED WITH
2.4.18
2.4.22
4 changes: 2 additions & 2 deletions guide/site/paradigms.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ Numeric configuration item types may be any of the following:
Non-numeric configuration item types are limited to:

* `std::string`
* [`INETAddr`](https://github.com/adjacentlink/emane/blob/master/include/emane/inetaddr.h#L43)
* [`INETAddr`](https://github.com/adjacentlink/emane/blob/master/include/emane/inetaddr.h#L44)

Both calls have parameters to specify a description string, zero or
more default values, minimum and maximum occurrence counts
Expand Down Expand Up @@ -305,7 +305,7 @@ Numeric statistic types may be any of the following:
Non-numeric statistic types are limited to:
* `std::string`
* [`INETAddr`](https://github.com/adjacentlink/emane/blob/master/include/emane/inetaddr.h#L43)
* [`INETAddr`](https://github.com/adjacentlink/emane/blob/master/include/emane/inetaddr.h#L44)
Both calls have parameters to specify the statistic name, properties,
and an optional description string.
Expand Down
15 changes: 10 additions & 5 deletions guide/site/physical-layer.md
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,8 @@ of the spectrum which internally maps to a dedicated physical layer
the antenna's frequency of interest set using a series of energy
recorders to keep track of encountered signal energy over time.

![](images/spectrumservice.png){:width="90%"; .centered}

Energy recorders use a logical wheel of bins, where bin width in
microseconds is set using the configuration parameter:
`noisebinsize`. Each over-the-air transmission is checked for
Expand Down Expand Up @@ -653,20 +655,20 @@ spurs. Each spectral mask must have a unique non-zero id.
</mask>
<mask id='2'>
<primary>
<width hz='500K' dBr='-50'/>
<width hz='500K' dBr='-60'/>
<width hz='500K' dBr='-30'/>
<width hz='1M' dBr='0'/>
<width hz='500K' dBr='-30'/>
<width hz='500K' dBr='-50'/>
<width hz='500K' dBr='-60'/>
</primary>
</mask>
<mask id='3'>
<primary>
<width hz='500K' dBr='-50'/>
<width hz='500K' dBr='-60'/>
<width hz='500K' dBr='-30'/>
<width hz='1M' dBr='0'/>
<width hz='500K' dBr='-30'/>
<width hz='500K' dBr='-50'/>
<width hz='500K' dBr='-60'/>
</primary>
<spurs>
<spur offset_from_center_hz='1G'>
Expand All @@ -686,6 +688,9 @@ spurs. Each spectral mask must have a unique non-zero id.
2. `<spur>` elements contain an offset from the center transmit
frequency in Hz.

![](images/spectralmask.png){:width="50%"; .centered}
<p style="text-align:center;font-size:75%">Visualization of mask id 2 shown above.</p><br>

By default, the physical layer uses a square mask across the entire
transmit bandwidth. When using spectral masks, the transmit bandwidth
is determined at the receiver to be the total width defined by the
Expand Down Expand Up @@ -723,7 +728,7 @@ sendDownstreamControl({SpectrumFilterAddControlMessage::create(1, // unique filt
Spectrum filters are added per receive antenna using a unique filter
index for a given center frequency (Hz) and bandwidth (hz), along with
an optional sub-bandwidth (Hz) length that subdivides spectral energy
an optional sub-band width (Hz) length that subdivides spectral energy
into sub-band width bins of specified size for each time bin in the
filter energy window. Additionally, optional match criteria can be
supplied to allow for more precise control of which energy is
Expand Down

0 comments on commit 8a356b7

Please sign in to comment.