source: Sophya/trunk/ArchTOIPipe/TestPipes/tstnoisecancel.cc@ 2396

Last change on this file since 2396 was 1945, checked in by aubourg, 24 years ago

avec stdlib

File size: 1.7 KB
Line 
1#include <math.h>
2#include "tstnoisecancel.h"
3#include "noisegen.h"
4#include "wienerdecor.h"
5#include "asciitoiwtr.h"
6#include "toimanager.h"
7#include "toisegment.h"
8
9TstNoiseCancel::TstNoiseCancel() {
10
11}
12
13void TstNoiseCancel::init() {
14 declareInput("noise");
15 declareOutput("signal");
16 declareOutput("probe");
17 declareOutput("theoric");
18}
19
20void TstNoiseCancel::run() {
21 int snb = getMinIn();
22 int sne = getMaxIn();
23
24 //cout << "TstNoiseCancel " << snb << " - " << sne << endl;
25
26 double v1=0;
27 double v2=0;
28 for (int i=snb; i<=sne; i++) {
29 double noise = getData(0, i);
30 v1 = 0.8*v1 + noise;
31 v2 = -0.6*v2 + noise;
32
33
34 double sig = sin(i * 0.05 * 3.1415926);
35
36 putData(0, i, sig+v1);
37 putData(1, i, v2);
38 putData(2, i, sig);
39 }
40
41 //cout << "tstnoisecancel done" << endl;
42}
43
44int main() {
45 TOIManager* mgr = TOIManager::getManager();
46 mgr->setRequestedSample(100,300);
47
48 NoiseGenGauss gauss(1);
49 TstNoiseCancel correlnoise;
50 WienerDecorrelator wiener(200, 20);
51 ASCIITOIWriter wtr("noisecancel.out");
52
53 TOISegmented* toi = new TOISegmented("gaussnoise");
54 gauss.addOutput("noise", toi);
55 correlnoise.addInput("noise", toi);
56
57 toi = new TOISegmented("signal");
58 correlnoise.addOutput("signal" , toi);
59 wiener.addInput("signal", toi);
60 wtr.addInput("signal", toi);
61
62 toi = new TOISegmented("probe");
63 correlnoise.addOutput("probe", toi);
64 wiener.addInput("probe", toi);
65 wtr.addInput("probe", toi);
66
67 toi = new TOISegmented("filtered");
68 wiener.addOutput("signal", toi);
69 wtr.addInput("filtered", toi);
70
71 toi = new TOISegmented("theoric");
72 correlnoise.addOutput("theoric", toi);
73 wtr.addInput("theoric", toi);
74
75 gauss.start(); correlnoise.start(); wiener.start(); wtr.start();
76
77 mgr->joinAll();
78}
Note: See TracBrowser for help on using the repository browser.