1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Maxima 5.45.1 Manual: Functions and Variables for FFTPACK5</title>
<meta name="description" content="Maxima 5.45.1 Manual: Functions and Variables for FFTPACK5">
<meta name="keywords" content="Maxima 5.45.1 Manual: Functions and Variables for FFTPACK5">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="maxima_0.html#Top" rel="start" title="Top">
<link href="maxima_368.html#Function-and-Variable-Index" rel="index" title="Function and Variable Index">
<link href="maxima_toc.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="maxima_110.html#Functions-for-numerical-solution-of-equations" rel="next" title="Functions for numerical solution of equations">
<link href="maxima_108.html#Functions-and-Variables-for-fast-Fourier-transform" rel="previous" title="Functions and Variables for fast Fourier transform">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
body {color: black; background: white; margin-left: 8%; margin-right: 13%;
font-family: "FreeSans", sans-serif}
h1 {font-size: 150%; font-family: "FreeSans", sans-serif}
h2 {font-size: 125%; font-family: "FreeSans", sans-serif}
h3 {font-size: 100%; font-family: "FreeSans", sans-serif}
a[href] {color: rgb(0,0,255); text-decoration: none;}
a[href]:hover {background: rgb(220,220,220);}
div.textbox {border: solid; border-width: thin; padding-top: 1em;
padding-bottom: 1em; padding-left: 2em; padding-right: 2em}
div.titlebox {border: none; padding-top: 1em; padding-bottom: 1em;
padding-left: 2em; padding-right: 2em; background: rgb(200,255,255);
font-family: sans-serif}
div.synopsisbox {
border: none; padding-top: 1em; padding-bottom: 1em; padding-left: 2em;
padding-right: 2em; background: rgb(255,220,255);}
pre.example {border: 1px solid rgb(180,180,180); padding-top: 1em;
padding-bottom: 1em; padding-left: 1em; padding-right: 1em;
background-color: rgb(238,238,255)}
div.spacerbox {border: none; padding-top: 2em; padding-bottom: 2em}
div.image {margin: 0; padding: 1em; text-align: center}
div.categorybox {border: 1px solid gray; padding-top: 0px; padding-bottom: 0px;
padding-left: 1em; padding-right: 1em; background: rgb(247,242,220)}
img {max-width:80%; max-height: 80%; display: block; margin-left: auto; margin-right: auto}
-->
</style>
<link rel="icon" href="figures/favicon.ico">
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Functions-and-Variables-for-FFTPACK5"></a>
<div class="header">
<p>
Next: <a href="maxima_110.html#Functions-for-numerical-solution-of-equations" accesskey="n" rel="next">Functions for numerical solution of equations</a>, Previous: <a href="maxima_108.html#Functions-and-Variables-for-fast-Fourier-transform" accesskey="p" rel="previous">Functions and Variables for fast Fourier transform</a> [<a href="maxima_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="maxima_368.html#Function-and-Variable-Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Functions-and-Variables-for-FFTPACK5-1"></a>
<h3 class="section">22.3 Functions and Variables for FFTPACK5</h3>
<p><code>FFTPACK5</code> provides several routines to compute Fourier
transforms for both real and complex sequences and their inverses.
The forward transform is defined the same as for <code>fft</code>. The
major difference is the length of the sequence is not constrained to
be a power of two. In fact, any length is supported, but it is most
efficient when the length has the form <em>2^r*3^s*5^t</em>.
</p>
<p><code>load(fftpack5)</code> loads this function.
</p>
<a name="fftpack5_005ffft"></a><a name="Item_003a-Numerical_002fdeffn_002ffftpack5_005ffft"></a><dl>
<dt><a name="index-fftpack5_005ffft"></a>Function: <strong>fftpack5_fft</strong> <em>(<var>x</var>)</em></dt>
<dd>
<p>Like <code>fft</code> (<code><a href="maxima_108.html#fft">fft</a></code>), this computes the fast Fourier transform
of a complex sequence. However, the length of <var>x</var> is not limited
to a power of 2.
</p>
<p><code>load(fftpack5)</code> loads this function.
</p>
<p>Examples:
</p>
<p>Real data.
</p>
<div class="example">
<pre class="example">(%i1) load("fftpack5") $
(%i2) fpprintprec : 4 $
(%i3) L : [1, 2, 3, 4, -1, -2 ,-3, -4] $
(%i4) L1 : fftpack5_fft(L);
(%o4) [0.0, 1.811 %i - 0.1036, 0.0, 0.3107 %i + 0.6036, 0.0,
0.6036 - 0.3107 %i, 0.0, (- 1.811 %i) - 0.1036]
(%i5) L2 : fftpack5_inverse_fft(L1);
(%o5) [1.0, 4.441e-16 %i + 2.0, 1.837e-16 %i + 3.0, 4.0 - 4.441e-16 %i,
- 1.0, (- 4.441e-16 %i) - 2.0, (- 1.837e-16 %i) - 3.0, 4.441e-16
%i - 4.0]
(%i6) lmax (abs (L2-L));
(%o6) 4.441e-16
(%i7) L : [1, 2, 3, 4, 5, 6]$
(%i8) L1 : fftpack5_fft(L);
(%o8) [3.5, (- 0.866 %i) - 0.5, (- 0.2887 %i) - 0.5, (- 1.48e-16 %i) - 0.5,
0.2887 %i - 0.5, 0.866
%%i - 0.5]
(%i9) L2 : fftpack5_inverse_fft (L1);
(%o9) [1.0 - 1.48e-16 %i, 3.701e-17 %i + 2.0, 3.0 - 1.48e-16 %i,
4.0 - 1.811e-16 %i, 5.0 - 1.48e-16 %i, 5.881e-16
%i + 6.0]
(%i10) lmax (abs (L2-L));
(%o10) 9.064e-16
</pre></div>
<p>Complex data.
</p>
<div class="example">
<pre class="example">(%i1) load("fftpack5") $
(%i2) fpprintprec : 4 $
(%i3) L : [1, 1 + %i, 1 - %i, -1, -1, 1 - %i, 1 + %i, 1] $
(%i4) L1 : fftpack5_inverse_fft (L);
(%o4) [4.0, 2.828 %i + 2.828, (- 2.0 %i) - 2.0, 4.0, 0.0,
(- 2.828 %i) - 2.828, 2.0 %i - 2.0, 4.0]
(%i5) L2 : fftpack5_fft(L1);
(%o5) [1.0, 1.0 %i + 1.0, 1.0 - 1.0 %i, (- 2.776e-17 %i) - 1.0, - 1.0,
1.0 - 1.0 %i, 1.0 %i + 1.0, 1.0 -
%2.776e-17 %i]
(%i6) lmax(abs(L2-L));
(%o6) 1.11e-16
</pre></div>
<div class=categorybox>·<p>Categories: <a href="maxima_369.html#Category_003a-Package-fftpack5">Package fftpack5</a>
</div></p></dd></dl>
<a name="fftpack5_005finverse_005ffft"></a><a name="Item_003a-Numerical_002fdeffn_002ffftpack5_005finverse_005ffft"></a><dl>
<dt><a name="index-fftpack5_005finverse_005ffft"></a>Function: <strong>fftpack5_inverse_fft</strong> <em>(<var>y</var>)</em></dt>
<dd>
<p>Computes the inverse complex Fourier transform, like
<code>inverse_fft</code>, but is not constrained to be a power of two.
</p>
<div class=categorybox>·<p>Categories: <a href="maxima_369.html#Category_003a-Package-fftpack5">Package fftpack5</a>
</div></p></dd></dl>
<a name="fftpack5_005freal_005ffft"></a><a name="Item_003a-Numerical_002fdeffn_002ffftpack5_005freal_005ffft"></a><dl>
<dt><a name="index-fftpack5_005freal_005ffft"></a>Function: <strong>fftpack5_real_fft</strong> <em>(<var>x</var>)</em></dt>
<dd>
<p>Computes the fast Fourier transform of a real-valued sequence <var>x</var>,
just like <code>real_fft</code>, except the length is not constrained to be
a power of two.
</p>
<p>Examples:
</p>
<div class="example">
<pre class="example">(%i1) fpprintprec : 4 $
(%i2) L : [1, 2, 3, 4, 5, 6] $
(%i3) L1 : fftpack5_real_fft(L);
(%o3) [3.5, (- 0.866 %i) - 0.5, (- 0.2887 %i) - 0.5, - 0.5]
(%i4) L2 : fftpack5_inverse_real_fft(L1, 6);
(%o4) [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
(%i5) lmax(abs(L2-L));
(%o5) 1.332e-15
(%i6) fftpack5_inverse_real_fft(L1, 7);
(%o6) [0.5, 2.083, 2.562, 3.7, 4.3, 5.438, 5.917]
</pre></div>
<p>The last example shows how important it to set the length correctly
for <code>fftpack5_inverse_real_fft</code>.
</p>
<div class=categorybox>·<p>Categories: <a href="maxima_369.html#Category_003a-Package-fftpack5">Package fftpack5</a>
</div></p></dd></dl>
<a name="fftpack5_005finverse_005freal_005ffft"></a><a name="Item_003a-Numerical_002fdeffn_002ffftpack5_005finverse_005freal_005ffft"></a><dl>
<dt><a name="index-fftpack5_005finverse_005freal_005ffft"></a>Function: <strong>fftpack5_inverse_real_fft</strong> <em>(<var>y</var>, <var>n</var>)</em></dt>
<dd>
<p>Computes the inverse Fourier transform of <var>y</var>, which must have a
length of <code>floor(n/2) + 1</code>. The length of sequence produced by the
inverse transform must be specified by <var>n</var>. This is required
because the length of <var>y</var> does not uniquely determine <var>n</var>.
The last element of <var>y</var> is always real if <var>n</var> is even, but it
can be complex when <var>n</var> is odd.
</p>
<div class=categorybox>·<p>Categories: <a href="maxima_369.html#Category_003a-Package-fftpack5">Package fftpack5</a>
</div></p></dd></dl>
<a name="Item_003a-Numerical_002fnode_002fFunctions-for-numerical-solution-of-equations"></a><hr>
<div class="header">
<p>
Next: <a href="maxima_110.html#Functions-for-numerical-solution-of-equations" accesskey="n" rel="next">Functions for numerical solution of equations</a>, Previous: <a href="maxima_108.html#Functions-and-Variables-for-fast-Fourier-transform" accesskey="p" rel="previous">Functions and Variables for fast Fourier transform</a> [<a href="maxima_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="maxima_368.html#Function-and-Variable-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|