-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Documenter.jl
committed
Aug 19, 2023
1 parent
d8138ae
commit 496b5e1
Showing
22 changed files
with
1,160 additions
and
2 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
v0.4.0 | ||
v0.6.0 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
v0.6.0 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Array signal processing · SignalAnalysis.jl</title><script data-outdated-warner src="assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.045/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="index.html">SignalAnalysis.jl</a></span></div><form class="docs-search" action="search.html"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="index.html">Home</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="signals.html">Creating & managing signals</a></li><li><a class="tocitem" href="generate.html">Generating signals</a></li><li><a class="tocitem" href="basic.html">Basic signal analysis</a></li><li><a class="tocitem" href="dsp.html">Signal processing</a></li><li><a class="tocitem" href="tfa.html">Time-frequency analysis</a></li><li class="is-active"><a class="tocitem" href="array.html">Array signal processing</a></li><li><a class="tocitem" href="rand.html">Random noise generation</a></li><li><a class="tocitem" href="plot.html">Plot recipes</a></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Manual</a></li><li class="is-active"><a href="array.html">Array signal processing</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href="array.html">Array signal processing</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/org-arl/SignalAnalysis.jl/blob/master/docs/src/array.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="Array-signal-processing"><a class="docs-heading-anchor" href="#Array-signal-processing">Array signal processing</a><a id="Array-signal-processing-1"></a><a class="docs-heading-anchor-permalink" href="#Array-signal-processing" title="Permalink"></a></h1><article class="docstring"><header><a class="docstring-binding" id="SignalAnalysis.Bartlett" href="#SignalAnalysis.Bartlett"><code>SignalAnalysis.Bartlett</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Frequency-domain Bartlett beamformer.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/org-arl/SignalAnalysis.jl/blob/fa182dd4c6d63f73d06de96ca6f106cff83d006c/src/array.jl#L9-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="SignalAnalysis.Capon" href="#SignalAnalysis.Capon"><code>SignalAnalysis.Capon</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Frequency-domain Capon beamformer with diagonal loading factor <code>γ</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/org-arl/SignalAnalysis.jl/blob/fa182dd4c6d63f73d06de96ca6f106cff83d006c/src/array.jl#L14-L16">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="SignalAnalysis.Music" href="#SignalAnalysis.Music"><code>SignalAnalysis.Music</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Frequency-domain MUSIC beamformer with <code>nsignals</code> signals.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/org-arl/SignalAnalysis.jl/blob/fa182dd4c6d63f73d06de96ca6f106cff83d006c/src/array.jl#L21-L23">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="SignalAnalysis.beamform-NTuple{4, Any}" href="#SignalAnalysis.beamform-NTuple{4, Any}"><code>SignalAnalysis.beamform</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia hljs">beamform(s, f, n, sd; fs=framerate(s), method=Bartlett()) | ||
beamform(s, f, sd; fs=framerate(s), method=Bartlett())</code></pre><p>Narrowband frequency-domain beamformer. Takes in passband signals <code>s</code> and produces beamformer output for all directions specified by the steering delays <code>sd</code>. The beamformer output is an energy estimate (or equivalent) for each steering direction. The beamforming only uses a narrowband signal cenetered at frequency <code>f</code> with a bandwidth of about <code>fs/n</code>.</p><p>If <code>n</code> is not specified, or is 1, then the input signal is assumed to be narrowband, and centered at frequency <code>f</code>.</p><p>The narrowband assumption requires that the bandwidth be no greater than about 5/T, where T is the maximum time taken for a signal to propagate through the array.</p><p>Several beamforming methods are available:</p><ul><li><a href="array.html#SignalAnalysis.Bartlett"><code>Bartlett</code></a><code>()</code></li><li><a href="array.html#SignalAnalysis.Capon"><code>Capon</code></a><code>(γ)</code></li><li><a href="array.html#SignalAnalysis.Music"><code>Music</code></a><code>(nsignals)</code></li></ul><p>Custom beamformers can be implemented by creating a subtype of <code>SignalAnalysis.Beamformer</code> and implementing the <code>SignalAnalysis.beamformer()</code> method dispatched on that type.</p><p><strong>Example:</strong></p><pre><code class="language-julia-repl hljs">julia> x = cw(100.0, 1.0, 44100.0); | ||
julia> sd = steering(0.0:1.0:3.0, 1500.0, range(0.0, π; length=181)); | ||
julia> bfo = beamform([x x x x], 100.0, 4096, sd; method=Capon(0.1)) | ||
181-element Array{Float64,1}: | ||
0.12406290296318974 | ||
0.1240975045516605 | ||
⋮ | ||
0.12406290296318974</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/org-arl/SignalAnalysis.jl/blob/fa182dd4c6d63f73d06de96ca6f106cff83d006c/src/array.jl#L137-L174">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="SignalAnalysis.beamform-Tuple{Any, Any}" href="#SignalAnalysis.beamform-Tuple{Any, Any}"><code>SignalAnalysis.beamform</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia hljs">beamform(s, sd; fs=framerate(s))</code></pre><p>Broadband time-domain delay-and-sum beamformer. Takes in passband or baseband signals <code>s</code> and produces beamformer output for all directions specified by the steering delays <code>sd</code>. The beamformer output is a timeseries signal for each steering direction.</p><p><strong>Example:</strong></p><pre><code class="language-julia-repl hljs">julia> x = cw(100.0, 1.0, 44100.0); | ||
julia> sd = steering(0.0:1.0:3.0, 1500.0, range(0.0, π; length=181)); | ||
julia> bfo = beamform([x x x x], sd) | ||
SampledSignal @ 44100.0 Hz, 44100×181 Array{Complex{Float64},2}: | ||
⋮</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/org-arl/SignalAnalysis.jl/blob/fa182dd4c6d63f73d06de96ca6f106cff83d006c/src/array.jl#L109-L125">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="SignalAnalysis.steering-Tuple{AbstractMatrix{T} where T, Any, AbstractVector{T} where T}" href="#SignalAnalysis.steering-Tuple{AbstractMatrix{T} where T, Any, AbstractVector{T} where T}"><code>SignalAnalysis.steering</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia hljs">steering(rxpos, c, θ) | ||
</code></pre><p>Computes steering delays for specified receiver positions <code>rxpos</code>, signal propagation speed <code>c</code>, and angles <code>θ</code>. Array <code>θ</code> can be a 1D array of angles or 2D array with (azimuth, elevation) pair in each row. The delays are computed with a far-field assumption, i.e., for plane incoming waves.</p><p><strong>Examples:</strong></p><pre><code class="language-julia-repl hljs">julia> steering(0.0:1.0:5.0, 1500.0, range(0.0, π; length=181)) | ||
6×181 Array{Float64,2}: | ||
0.00166667 0.00166641 … -0.00166641 -0.00166667 | ||
0.001 0.000999848 -0.000999848 -0.001 | ||
0.000333333 0.000333283 -0.000333283 -0.000333333 | ||
-0.000333333 -0.000333283 0.000333283 0.000333333 | ||
-0.001 -0.000999848 0.000999848 0.001 | ||
-0.00166667 -0.00166641 … 0.00166641 0.00166667 | ||
|
||
julia> rxpos = [ # can be 2D or 3D coordinates | ||
0.0 1.0 2.0 3.0 4.0 5.0 | ||
0.0 0.0 0.0 0.0 0.0 0.0 | ||
]; | ||
julia> steering(rxpos, 1500.0, range(0.0, π; length=181)) | ||
6×181 Array{Float64,2}: | ||
0.00166667 0.00166641 … -0.00166641 -0.00166667 | ||
0.001 0.000999848 -0.000999848 -0.001 | ||
0.000333333 0.000333283 -0.000333283 -0.000333333 | ||
-0.000333333 -0.000333283 0.000333283 0.000333333 | ||
-0.001 -0.000999848 0.000999848 0.001 | ||
-0.00166667 -0.00166641 … 0.00166641 0.00166667 | ||
|
||
julia> rxpos = [ | ||
0.0 0.0 0.5 0.5 | ||
0.0 0.5 0.0 0.5 | ||
0.0 0.0 0.0 0.0 | ||
]; | ||
julia> θ = deg2rad.(reduce(vcat, hcat.(LinRange(-20,20,41)', LinRange(-10,10,21)))) # 2D array with (azimuth, elevation) in each row | ||
julia> steering(rxpos, 1500.0, θ) | ||
4×861 Array{Float64,2}: | ||
9.80987e-5 9.83857e-5 9.86427e-5 … 0.00021154 0.000210989 0.000210373 | ||
0.000210373 0.000210989 0.00021154 9.86427e-5 9.83857e-5 9.80987e-5 | ||
-0.000210373 -0.000210989 -0.00021154 -9.86427e-5 -9.83857e-5 -9.80987e-5 | ||
-9.80987e-5 -9.83857e-5 -9.86427e-5 -0.00021154 -0.000210989 -0.000210373</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/org-arl/SignalAnalysis.jl/blob/fa182dd4c6d63f73d06de96ca6f106cff83d006c/src/array.jl#L28">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="tfa.html">« Time-frequency analysis</a><a class="docs-footer-nextpage" href="rand.html">Random noise generation »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 0.27.25 on <span class="colophon-date" title="Saturday 19 August 2023 19:09">Saturday 19 August 2023</span>. Using Julia version 1.6.7.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> |
Oops, something went wrong.