3
* Copyright 2004 Free Software Foundation, Inc.
5
* This file is part of GNU Radio
7
* GNU Radio is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; either version 3, or (at your option)
12
* GNU Radio is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
17
* You should have received a copy of the GNU General Public License
18
* along with GNU Radio; see the file COPYING. If not, write to
19
* the Free Software Foundation, Inc., 51 Franklin Street,
20
* Boston, MA 02110-1301, USA.
23
// WARNING: this file is machine generated. Edits will be over written
28
#include <gr_noise_source_s.h>
29
#include <gr_io_signature.h>
33
gr_noise_source_s_sptr
34
gr_make_noise_source_s (gr_noise_type_t type, float ampl, long seed)
36
return gr_noise_source_s_sptr (new gr_noise_source_s (type, ampl, seed));
40
gr_noise_source_s::gr_noise_source_s (gr_noise_type_t type, float ampl, long seed)
41
: gr_sync_block ("noise_source_s",
42
gr_make_io_signature (0, 0, 0),
43
gr_make_io_signature (1, 1, sizeof (short))),
51
gr_noise_source_s::work (int noutput_items,
52
gr_vector_const_void_star &input_items,
53
gr_vector_void_star &output_items)
55
short *out = (short *) output_items[0];
61
for (int i = 0; i < noutput_items; i++)
62
out[i] = gr_complex (d_ampl * ((d_rng.ran1 () * 2.0) - 1.0),
63
d_ampl * ((d_rng.ran1 () * 2.0) - 1.0));
67
for (int i = 0; i < noutput_items; i++)
68
out[i] = d_ampl * d_rng.rayleigh_complex ();
74
for (int i = 0; i < noutput_items; i++)
75
out[i] = (short)(d_ampl * ((d_rng.ran1 () * 2.0) - 1.0));
79
for (int i = 0; i < noutput_items; i++)
80
out[i] = (short)(d_ampl * d_rng.gasdev ());
84
for (int i = 0; i < noutput_items; i++)
85
out[i] = (short)(d_ampl * d_rng.laplacian ());
88
case GR_IMPULSE: // FIXME changeable impulse settings
89
for (int i = 0; i < noutput_items; i++)
90
out[i] = (short)(d_ampl * d_rng.impulse (9));
95
throw std::runtime_error ("invalid type");