Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Generate a swept-frequency sinusoidal function
ResourceFunction["ChirpFunction"][] generates a function for a chirp signal. |
“InitialFrequency" | 1 | initial frequency in Hz |
“FinalFrequency" | 100 | final frequency in Hz |
"Duration" | 1 | final time in seconds |
"Magnitude" | 1 | height of the sinusoidal peaks |
"ChirpType" | "Logarithmic" | indicates how the frequency should change. Accepted values are "Logarithmic" and "Linear" |
"Sinusoid" | Cos | Sin will give a smooth start. Cos will give an abrupt start. |
"AmplitudeRampFraction" | 0 | fraction of window length for amplitude ramps. Accepts values from 0 to 0.5. |
ChirpFunction returns a compiled function:
In[1]:= | ![]() |
Out[1]= | ![]() |
The default cosine base sinusoid goes from 1 Hz to 100 Hz logarithmically over the a time of one second:
In[2]:= | ![]() |
Out[2]= | ![]() |
Adjust the frequency range for audibility and hear the result:
In[3]:= | ![]() |
Out[4]= | ![]() |
By varying the frequency linearly, the initial lower frequencies are deemphasized:
In[5]:= | ![]() |
Out[6]= | ![]() |
Start the signal at zero:
In[7]:= | ![]() |
Out[8]= | ![]() |
See the effect of amplitude ramps using the option "AmplitudeRampFraction":
In[9]:= | ![]() |
Out[10]= | ![]() |
Options can be provided as an Association:
In[11]:= | ![]() |
Out[12]= | ![]() |
Use a longer duration:
In[13]:= | ![]() |
Out[14]= | ![]() |
The following examples show the effect of the chirp configuration on the power spectrum:
In[15]:= | ![]() |
Logarithmic chirp:
In[16]:= | ![]() |
Out[17]= | ![]() |
Linear chirp:
In[18]:= | ![]() |
Out[19]= | ![]() |
Amplitude adjusted linear chirp:
In[20]:= | ![]() |
Out[21]= | ![]() |
Amplitude adjusted logarithmic chirp:
In[22]:= | ![]() |
Out[23]= | ![]() |
Change the initial frequency:
In[24]:= | ![]() |
Out[24]= | ![]() |
Change the final frequency:
In[25]:= | ![]() |
Out[25]= | ![]() |
Change how long it takes to go from the initial to the final frequency:
In[26]:= | ![]() |
Out[26]= | ![]() |
Change the magnitude (peak values):
In[27]:= | ![]() |
Out[27]= | ![]() |
Change the function type used to vary the frequency:
In[28]:= | ![]() |
Out[28]= | ![]() |
A Sin sinusoid results in a smooth rise whereas Cos starts high resembling a step:
In[29]:= | ![]() |
Out[29]= | ![]() |
Amplitude ramps can help reduce transient response effects at the start and end:
In[30]:= | ![]() |
Out[30]= | ![]() |
The resulting function is not intended to be evaluated for times greater than the specified duration. Doing so will produce unexpected results without warning:
In[31]:= | ![]() |
Out[32]= | ![]() |
Create an interactive chirp:
In[33]:= | ![]() |
Out[33]= | ![]() |
Wolfram Language 13.0 (December 2021) or above
This work is licensed under a Creative Commons Attribution 4.0 International License