File: real2DFFTExample_8cc-example.html

package info (click to toggle)
mffm-fftw 1.4-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 1,204 kB
  • ctags: 295
  • sloc: cpp: 704; makefile: 88
file content (84 lines) | stat: -rw-r--r-- 6,186 bytes parent folder | download
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Example Documentation</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.18 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="examples.html">Examples</a> &nbsp; </center>
<hr><h1>real2DFFTExample.cc</h1> This is an example of how to use the class.
<p>
<div class="fragment"><pre><span class="comment">/* Copyright 2001,2002 Matt Flax &lt;flatmax@ieee.org&gt;</span>
<span class="comment">   This file is part of the MFFM FFTw Wrapper library.</span>
<span class="comment"></span>
<span class="comment">   MFFM MFFM FFTw Wrapper library is free software; you can </span>
<span class="comment">   redistribute it and/or modify</span>
<span class="comment">   it under the terms of the GNU General Public License as published by</span>
<span class="comment">   the Free Software Foundation; either version 2 of the License, or</span>
<span class="comment">   (at your option) any later version.</span>
<span class="comment">   </span>
<span class="comment">   MFFM FFTw Wrapper library is distributed in the hope that it will be useful,</span>
<span class="comment">   but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<span class="comment">   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<span class="comment">   GNU General Public License for more details.</span>
<span class="comment">   </span>
<span class="comment">   You have received a copy of the GNU General Public License</span>
<span class="comment">   along with the MFFM FFTw Wrapper library</span>
<span class="comment">*/</span>
<span class="preprocessor">#include &lt;string.h&gt;</span>
<span class="preprocessor">#include "real2DFFT.H"</span>
<span class="preprocessor">#include &lt;iomanip.h&gt;</span>
<span class="keyword">using</span> <span class="keyword">namespace </span>std;

<span class="keywordtype">int</span> main(<span class="keywordtype">void</span>){
  <span class="keywordtype">int</span> x=8, y=8;
  <a name="_a0"></a><a class="code" href="classreal2DFFTData.html">real2DFFTData</a> *fftData = <span class="keyword">new</span> <a class="code" href="classreal2DFFTData.html">real2DFFTData</a>(x,y);
  <a name="_a1"></a><a class="code" href="classreal2DFFT.html">real2DFFT</a> *fft= <span class="keyword">new</span> <a class="code" href="classreal2DFFT.html">real2DFFT</a>(fftData);

  <span class="comment">// clear the data</span>
  fftData-&gt;<a name="a2"></a><a class="code" href="classreal2DFFTData.html#a14">clearInput</a>();
  fftData-&gt;<a name="a3"></a><a class="code" href="classreal2DFFTData.html#a15">clearOutput</a>();

  <span class="keywordtype">int</span> temp=x/2, temp2=y/2;
  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j=0;j&lt;x;j++)
    fftData-&gt;<a name="a4"></a><a class="code" href="classreal2DFFTData.html#m0">in</a>[temp2+j*x]=10000.0;
  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j=0;j&lt;y;j++)
    fftData-&gt;<a class="code" href="classreal2DFFTData.html#m0">in</a>[temp*y+j]=10000.0;
  <span class="comment">//  fftData-&gt;in[temp*y+(y-1)/2]=20000.0;</span>

  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0;i&lt;fftData-&gt;<a name="a5"></a><a class="code" href="classreal2DFFTData.html#a2">getXSize</a>();i++){
    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j=0;j&lt;fftData-&gt;<a name="a6"></a><a class="code" href="classreal2DFFTData.html#a3">getYSize</a>();j++)
      cout&lt;&lt;fftData-&gt;<a class="code" href="classreal2DFFTData.html#m0">in</a>[i*x+j]&lt;&lt;<span class="charliteral">'\t'</span>;
    cout&lt;&lt;endl;
  }
  cout&lt;&lt;<span class="charliteral">'\n'</span>&lt;&lt;endl;
  fft-&gt;<a name="a7"></a><a class="code" href="classreal2DFFT.html#a2">fwdTransform</a>();
  fftData-&gt;<a name="a8"></a><a class="code" href="classreal2DFFTData.html#a6">reScale</a>();
  fftData-&gt;<a name="a9"></a><a class="code" href="classreal2DFFTData.html#a7">compPowerSpec</a>();
  fft-&gt;<a name="a10"></a><a class="code" href="classreal2DFFT.html#a3">invTransform</a>();

  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0;i&lt;fftData-&gt;<a class="code" href="classreal2DFFTData.html#a2">getXSize</a>();i++){
    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j=0;j&lt;fftData-&gt;<a class="code" href="classreal2DFFTData.html#a3">getYSize</a>();j++)
      cout&lt;&lt;fftData-&gt;<a class="code" href="classreal2DFFTData.html#m0">in</a>[i*x+j]&lt;&lt;<span class="charliteral">'\t'</span>;
    cout&lt;&lt;endl;
  }
  cout&lt;&lt;<span class="charliteral">'\n'</span>&lt;&lt;endl;
  <span class="comment">/*  for (int i=0;i&lt;fftData.getXSize();i++){</span>
<span class="comment">    for (int j=0;j&lt;fftData.getYHalfSize();j++)</span>
<span class="comment">      cout&lt;&lt;fftData.out[i][j].im&lt;&lt;'\t';</span>
<span class="comment">    cout&lt;&lt;endl;</span>
<span class="comment">    }*/</span>
  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0;i&lt;x;i++){
    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j=0;j&lt;y/2+1;j++)
      cout&lt;&lt;fftData-&gt;<a name="a11"></a><a class="code" href="classreal2DFFTData.html#m1">power</a>[i*(y/2+1)+j]&lt;&lt;<span class="charliteral">'\t'</span>;
    cout&lt;&lt;endl;
  }
  <span class="keyword">delete</span> fftData;
  <span class="keyword">delete</span> fft;
}
</pre></div><hr><address style="align: right;"><small>Generated on Sun Aug 10 20:34:00 2003 for MFFM FFTw Wrapper by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.18 </small></address>
</body>
</html>