From 65b50f1ed0b38037dda404a49abda9c809af9bcb Mon Sep 17 00:00:00 2001 From: ttt-4 Date: Tue, 24 Feb 2015 15:02:53 +0530 Subject: polezero plot --- gr-input/grc/plzr_plot.xml | 37 +++++++++++++++++++++++ gr-input/python/plzr_plot.py | 71 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 gr-input/grc/plzr_plot.xml create mode 100644 gr-input/python/plzr_plot.py diff --git a/gr-input/grc/plzr_plot.xml b/gr-input/grc/plzr_plot.xml new file mode 100644 index 000000000..833149ea5 --- /dev/null +++ b/gr-input/grc/plzr_plot.xml @@ -0,0 +1,37 @@ + + + plzr_plot + plzr_plot + Python_Blocks + import gnuradio.plzr_plot + gnuradio.plzr_plot.plzr_plot($order) + + + Order of transfer function + order + 1 + real + + + + + + + in + float + 2 + + + diff --git a/gr-input/python/plzr_plot.py b/gr-input/python/plzr_plot.py new file mode 100644 index 000000000..e1b0ff3fc --- /dev/null +++ b/gr-input/python/plzr_plot.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python +# +# Copyright 2015 <+YOU OR YOUR COMPANY+>. +# +# This 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. +# +# This software 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 this software; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# +import sys +import time +import numpy +from gnuradio import gr +import sciscipy + +class plzr_plot(gr.sync_block): + """ + docstring for block add_python + """ + def __init__(self,order): + sys.setrecursionlimit(2000) + a = [] +# self.flag = 0 + self.b = [0,0,0,0,0,0] + self.c = [0,0,0,0,0,0] + self.i = 0 + self.order=int(order)+1 + gr.sync_block.__init__(self, + name="plzr_plot", + in_sig=[numpy.float32,numpy.float32], + out_sig=None) + + def plot(self,b,c): + string1 = "s=%s; h=syslin('c'," + string2 = str(b[4])+"*s^4+"+str(b[3])+"*s^3+"+str(b[2])+"*s^2+"+str(b[1])+"*s+"+str(b[0])+"," + string3 = str(c[4])+"*s^4+"+str(c[3])+"*s^3+"+str(c[2])+"*s^2+"+str(c[1])+"*s+"+str(c[0])+");" + string4 = "plzr(h);" + + string = string1 + string2 +string3 + string4 + sciscipy.eval(string) + + + + def work(self, input_items, output_items): + print "I am input", input_items + print "I am output", output_items + k = self.order + for i in range(0,k): + self.b[i] = input_items[0][i] + print "I am value of b\n",self.b + + + for j in range(0,k): + self.c[j] = input_items[1][j] + print "I am vlaue of c\n", self.c + + self.plot(self.b,self.c) + in0 = input_items[0] + # <+signal processing here+> + return len(input_items[0]) + -- cgit