summaryrefslogtreecommitdiff
path: root/gr-utils/octave/plot_cic_decimator_response.m
blob: 8f06aeafedd10116781fb7bc404c02c5fedd8578 (plain)
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
#
# Copyright 2004 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING.  If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
#

function plot_cic_decimator_response (R, N, M)
  ## R = decimation rate
  ## N = number of stages (4)
  ## M = 1
  gain = (R*M)^N
  npoints = 1024;
  w = 0:1/npoints:1-1/npoints;
  w = w * 1 * pi;
  ## w = w * R;
  length(w);
  num = sin (w*R*M/2);
  length (num);
  ## H = sin (w*R*M/2) ./ sin (w/2)
  denom = sin(w/2);
  length (denom);
  H = (num ./ denom) .^ N;
  H(1) = gain;
  H = H ./ gain;
  plot (R*w/(2*pi), 10 * log10 (H));
  ## plot (R*w/(2*pi), H);
endfunction