diff --git a/previews/PR618/.documenter-siteinfo.json b/previews/PR618/.documenter-siteinfo.json
index c49f116b..c6f7a2ee 100644
--- a/previews/PR618/.documenter-siteinfo.json
+++ b/previews/PR618/.documenter-siteinfo.json
@@ -1 +1 @@
-{"documenter":{"julia_version":"1.11.2","generation_timestamp":"2025-01-14T15:30:33","documenter_version":"1.8.0"}}
\ No newline at end of file
+{"documenter":{"julia_version":"1.11.2","generation_timestamp":"2025-01-15T08:09:08","documenter_version":"1.8.0"}}
\ No newline at end of file
diff --git a/previews/PR618/appendix/index.html b/previews/PR618/appendix/index.html
index 40f74332..d014f894 100644
--- a/previews/PR618/appendix/index.html
+++ b/previews/PR618/appendix/index.html
@@ -1,2 +1,2 @@
-
Convolution of two arrays. A convolution algorithm is automatically chosen among direct convolution, FFT, or FFT overlap-save, depending on the size of the input, unless explicitly specified with the algorithm keyword argument; see conv! for details.
Convolution of two arrays u and v with the result stored in out. out must be large enough to store the entire result; if it is even larger, the excess entries will be zeroed.
out, u, and v can be N-dimensional arrays, with arbitrary indexing offsets. If none of them has offset axes, size(out,d) ≥ size(u,d) + size(v,d) - 1 must hold. If both input and output have offset axes, firstindex(out,d) ≤ firstindex(u,d) + firstindex(v,d) and lastindex(out,d) ≥ lastindex(u,d) + lastindex(v,d) must hold (for d = 1,...,N). A mix of offset and non-offset axes is not permitted.
The algorithm keyword allows choosing the algorithm to use:
:direct: Evaluates the convolution sum in time domain.
:fft_simple: Evaluates the convolution as a product in the frequency domain.
:fft_overlapsave: Evaluates the convolution block-wise as a product in the frequency domain, overlapping the resulting blocks.
:fft: Selects the faster of :fft_simple and :fft_overlapsave (as estimated from the input size).
:fast: Selects the fastest of :direct, :fft_simple and :fft_overlapsave (as estimated from the input size).
:auto (default): Equivalent to :fast if the data type is known to be suitable for FFT-based computation, equivalent to :direct otherwise.
Warning
The choices made by :fft, :fast, and :auto are based on performance heuristics which may not result in the fastest algorithm in all cases. If best performance for a certain size/type combination is required, it is advised to do individual benchmarking and explicitly specify the desired algorithm.
Convolution of two arrays. A convolution algorithm is automatically chosen among direct convolution, FFT, or FFT overlap-save, depending on the size of the input, unless explicitly specified with the algorithm keyword argument; see conv! for details.
Convolution of two arrays u and v with the result stored in out. out must be large enough to store the entire result; if it is even larger, the excess entries will be zeroed.
out, u, and v can be N-dimensional arrays, with arbitrary indexing offsets. If none of them has offset axes, size(out,d) ≥ size(u,d) + size(v,d) - 1 must hold. If both input and output have offset axes, firstindex(out,d) ≤ firstindex(u,d) + firstindex(v,d) and lastindex(out,d) ≥ lastindex(u,d) + lastindex(v,d) must hold (for d = 1,...,N). A mix of offset and non-offset axes is not permitted.
The algorithm keyword allows choosing the algorithm to use:
:direct: Evaluates the convolution sum in time domain.
:fft_simple: Evaluates the convolution as a product in the frequency domain.
:fft_overlapsave: Evaluates the convolution block-wise as a product in the frequency domain, overlapping the resulting blocks.
:fft: Selects the faster of :fft_simple and :fft_overlapsave (as estimated from the input size).
:fast: Selects the fastest of :direct, :fft_simple and :fft_overlapsave (as estimated from the input size).
:auto (default): Equivalent to :fast if the data type is known to be suitable for FFT-based computation, equivalent to :direct otherwise.
Warning
The choices made by :fft, :fast, and :auto are based on performance heuristics which may not result in the fastest algorithm in all cases. If best performance for a certain size/type combination is required, it is advised to do individual benchmarking and explicitly specify the desired algorithm.
With two arguments, compute the cross-correlation of two vectors, by calculating the similarity between u and v with various offsets of v. Delaying u relative to v will shift the result to the right. If one argument is provided, calculate xcorr(u, u; kwargs...).
The size of the output depends on the padmode keyword argument: with padmode = :none the length of the result will be length(u) + length(v) - 1, as with conv. With padmode = :longest, the shorter of the arguments will be padded so they are of equal length. This gives a result with length 2*max(length(u), length(v))-1, with the zero-lag condition at the center.
The keyword argument scaling can be provided. Possible arguments are the default :none and :biased. :biased is valid only if the vectors have the same length, or only one vector is provided, dividing the result by length(u).
This document was generated with Documenter.jl version 1.8.0 on Wednesday 15 January 2025. Using Julia version 1.11.2.
diff --git a/previews/PR618/estimation/index.html b/previews/PR618/estimation/index.html
index 5d983908..c5690488 100644
--- a/previews/PR618/estimation/index.html
+++ b/previews/PR618/estimation/index.html
@@ -8,8 +8,8 @@
julia> esprit(x, M, p, Fs)
2-element Vector{Float64}:
2502.2704154274957
-399.8420984461712sourceDSP.Estimation.jacobsen — Function
jacobsen(x::AbstractVector, Fs::Real = 1.0)
Estimate the largest frequency in the complex signal x using Jacobsen's algorithm [Jacobsen2007]. Argument Fs is the sampling frequency. All frequencies are expressed in Hz.
If the signal x is real, the estimated frequency is guaranteed to be positive, but it may be highly inaccurate (especially for frequencies close to zero or to Fs/2).
If the sampling frequency Fs is not provided, then it is assumed that Fs = 1.0.
Estimate the largest frequency in the complex signal x using Jacobsen's algorithm [Jacobsen2007]. Argument Fs is the sampling frequency. All frequencies are expressed in Hz.
If the signal x is real, the estimated frequency is guaranteed to be positive, but it may be highly inaccurate (especially for frequencies close to zero or to Fs/2).
If the sampling frequency Fs is not provided, then it is assumed that Fs = 1.0.
Algorithms by Quinn and Quinn & Fernandes for frequency estimation. Given a signal x and an initial guess f0, estimate and return the frequency of the largest sinusoid in x. Fs is the sampling frequency. All frequencies are expressed in Hz.
If the initial guess f0 is not provided, then a guess is calculated using Jacobsen's estimator. If the sampling frequency Fs is not provided, then it is assumed that Fs = 1.0.
The following keyword arguments control the algorithm's behavior:
tol: the algorithm stops when the absolute value of the difference between two consecutive estimates is less than tol. Defaults to 1e-6.
maxiters: the maximum number of iterations to run. Defaults to 20.
Returns a tuple (estimate, reachedmaxiters), where estimate is the estimated frequency, and reachedmaxiters is true if the algorithm finished after running for maxiters iterations (this may indicate that the algorithm did not converge).
If the signal x is real, then the algorithm used is [Quinn1991]. If the signal is complex, the algorithm is [Quinn2009].
Roy1986R Roy, A Paulraj and T Kailath, ESPRIT - A subspace approach to estimation of parameters of cisoids in noise, IEEE Trans. Acoustics, Speech, Signal Process., 34, 1340-1342 (1986). http://ieeexplore.ieee.org/abstract/document/1164935/.
Jacobsen2007E Jacobsen and P Kootsookos, "Fast, Accurate Frequency Estimators", Chapter 10 in "Streamlining Digital Signal Processing", edited by R. Lyons, 2007, IEEE Press.
Quinn1991B Quinn and J Fernandes, "A fast efficient technique for the estimation of frequency", Biometrika, Vol. 78 (1991).
Quinn2009B Quinn, "Recent advances in rapid frequency estimation", Digital Signal Processing, Vol. 19 (2009), Elsevier.
Settings
This document was generated with Documenter.jl version 1.8.0 on Tuesday 14 January 2025. Using Julia version 1.11.2.