real_fourier_stf_signal
Graph.real_fourier_stf_signal(duration, initial_coefficient_lower_bound=-1, initial_coefficient_upper_bound=1, fixed_frequencies=None, optimizable_frequency_count=None, randomized_frequency_count=None)
Create a real sampleable signal constructed from Fourier components.
Use this function to create a signal defined in terms of Fourier (sine/cosine) basis signals that can be optimized by varying their coefficients and, optionally, their frequencies.
Parameters
- duration (float) – The total duration τ of the signal.
- initial_coefficient_lower_bound (float , optional) – The lower bound cmin on the initial coefficient values. Defaults to -1.
- initial_coefficient_upper_bound (float , optional) – The upper bound cmax on the initial coefficient values. Defaults to 1.
- fixed_frequencies (np.ndarray or None , optional) – A 1D array containing the fixed non-zero frequencies {fm} to use for the Fourier basis. If provided, must be non-empty and specified in the inverse units of duration (for example if duration is in seconds, these values must be given in Hertz).
- optimizable_frequency_count (int or None , optional) – The number of non-zero frequencies M to use, if the frequencies can be optimized. Defaults to 0.
- randomized_frequency_count (int or None , optional) – The number of non-zero frequencies M to use, if the frequencies are to be randomized but fixed. Defaults to 0.
Returns
The optimizable, real-valued, sampleable signal built from the appropriate Fourier components.
Return type
WARNING
You must provide exactly one of fixed_frequencies, optimizable_frequency_count, or randomized_frequency_count.
SEE ALSO
Graph.real_fourier_pwc_signal
: Corresponding operation for Pwc.
Notes
This function sets the basis signal frequencies {fm} depending on the chosen mode:
- For fixed frequencies, you provide the frequencies directly.
- For optimizable frequencies, you provide the number of frequencies M, and this function creates M unbounded optimizable variables {fm}, with initial values in the ranges {[(m−1)/τ,m/τ]}.
- For randomized frequencies, you provide the number of frequencies M, and this function creates M randomized constants {fm} in the ranges {[(m−1)/τ,m/τ]}.
After this function creates the M frequencies {fm}, it produces the signal
α′(t)=v0+m=1∑M[vmcos(2πtfm)+wmsin(2πtfm)],where {vm,wm} are (unbounded) optimizable variables, with initial values bounded by cmin and cmax. This function produces the final signal α(t).
You can use the signals created by this function for chopped random basis (CRAB) optimization 1.