summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-input/grc/CMakeLists.txt23
-rw-r--r--gr-input/grc/Calculation_Calculator.xml40
-rw-r--r--gr-input/grc/Transfer_Function_Denominator.xml33
-rw-r--r--gr-input/grc/Transfer_Function_Numerator.xml33
-rw-r--r--gr-input/grc/Transfer_Function_Transfer_Function.xml66
-rw-r--r--gr-input/python/CMakeLists.txt29
-rw-r--r--gr-input/python/Calculator.py92
-rw-r--r--gr-input/python/Denominator.py96
-rw-r--r--gr-input/python/Numerator.py96
-rw-r--r--gr-input/python/Transfer_Function.py100
10 files changed, 608 insertions, 0 deletions
diff --git a/gr-input/grc/CMakeLists.txt b/gr-input/grc/CMakeLists.txt
index f89d28bcc..10bc2d8ad 100644
--- a/gr-input/grc/CMakeLists.txt
+++ b/gr-input/grc/CMakeLists.txt
@@ -29,4 +29,27 @@ install(FILES
COMPONENT "input_python"
)
+install(FILES
+ Transfer_Function_Numerator.xml
+ DESTINATION ${GRC_BLOCKS_DIR}
+ COMPONENT "input_python"
+)
+
+install(FILES
+ Transfer_Function_Denominator.xml
+ DESTINATION ${GRC_BLOCKS_DIR}
+ COMPONENT "input_python"
+)
+
+install(FILES
+ Calculation_Calculator.xml
+ DESTINATION ${GRC_BLOCKS_DIR}
+ COMPONENT "input_python"
+)
+
+install(FILES
+ Transfer_Function_Transfer_Function.xml
+ DESTINATION ${GRC_BLOCKS_DIR}
+ COMPONENT "input_python"
+)
diff --git a/gr-input/grc/Calculation_Calculator.xml b/gr-input/grc/Calculation_Calculator.xml
new file mode 100644
index 000000000..4a29b896e
--- /dev/null
+++ b/gr-input/grc/Calculation_Calculator.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<block>
+ <name>Calculator</name>
+ <key>Calculation_Calculator</key>
+ <category>Calculation</category>
+ <import>import gnuradio.input.Calculator</import>
+ <make>gnuradio.input.Calculator.Calculator($num_inputs)
+self.$(id).set_parameters($Exp,$num_inputs)</make>
+
+<param>
+<name>Expression</name>
+<key>Exp</key>
+<type>string</type>
+</param>
+
+<param>
+<name>Num inputs</name>
+<key>num_inputs</key>
+<value>1</value>
+<type>int</type>
+</param>
+
+ <sink>
+ <name>in0</name>
+ <type>float</type>
+ <nports>$num_inputs</nports>
+ </sink>
+<!--
+ <sink>
+ <name>in1</name>
+ <type>float</type>
+ <nports>4</nports>
+ </sink> -->
+
+
+ <source>
+ <name>out</name>
+ <type>float</type>
+ </source>
+</block>
diff --git a/gr-input/grc/Transfer_Function_Denominator.xml b/gr-input/grc/Transfer_Function_Denominator.xml
new file mode 100644
index 000000000..5ea581a98
--- /dev/null
+++ b/gr-input/grc/Transfer_Function_Denominator.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<block>
+ <name>Denominator</name>
+ <key>Transfer_Function_Denominator</key>
+ <category>Transfer Function</category>
+ <import>import gnuradio.input.Denominator</import>
+ <make>gnuradio.input.Denominator.Denominator($num_inputs)</make>
+
+<param>
+<name>Num inputs</name>
+<key>num_inputs</key>
+<value>1</value>
+<type>int</type>
+</param>
+
+ <sink>
+ <name>in0</name>
+ <type>float</type>
+ <nports>$num_inputs</nports>
+ </sink>
+<!--
+ <sink>
+ <name>in1</name>
+ <type>float</type>
+ <nports>4</nports>
+ </sink> -->
+
+
+ <source>
+ <name>out</name>
+ <type>float</type>
+ </source>
+</block>
diff --git a/gr-input/grc/Transfer_Function_Numerator.xml b/gr-input/grc/Transfer_Function_Numerator.xml
new file mode 100644
index 000000000..8bb367a62
--- /dev/null
+++ b/gr-input/grc/Transfer_Function_Numerator.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<block>
+ <name>Numerator</name>
+ <key>Transfer_Function_Numerator</key>
+ <category>Transfer Function</category>
+ <import>import gnuradio.input.Numerator</import>
+ <make>gnuradio.input.Numerator.Numerator($num_inputs)</make>
+
+<param>
+<name>Num inputs</name>
+<key>num_inputs</key>
+<value>1</value>
+<type>int</type>
+</param>
+
+ <sink>
+ <name>in0</name>
+ <type>float</type>
+ <nports>$num_inputs</nports>
+ </sink>
+<!--
+ <sink>
+ <name>in1</name>
+ <type>float</type>
+ <nports>4</nports>
+ </sink> -->
+
+
+ <source>
+ <name>out</name>
+ <type>float</type>
+ </source>
+</block>
diff --git a/gr-input/grc/Transfer_Function_Transfer_Function.xml b/gr-input/grc/Transfer_Function_Transfer_Function.xml
new file mode 100644
index 000000000..203fe4a7b
--- /dev/null
+++ b/gr-input/grc/Transfer_Function_Transfer_Function.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<block>
+ <name>Transfer Function</name>
+ <key>Transfer_Function_Transfer_Function</key>
+ <category>Transfer Function</category>
+ <import>import gnuradio.input.Transfer_Function</import>
+ <make>gnuradio.input.Transfer_Function.Transfer_Function($order,$itype,$tstart,$tstop,$tstep)</make>
+
+<param>
+ <name>Order of transfer function</name>
+ <key>order</key>
+ <value>1</value>
+ <type>real</type>
+
+</param>
+
+
+ <param>
+ <name>Input Types</name>
+ <key>itype</key>
+ <type>enum</type>
+ <option><name>Impulse</name><key>11</key></option>
+ <option><name>Step</name><key>12</key></option>
+ <option><name>Ramp</name><key>13</key></option>
+ </param>
+
+ <param>
+<name>tstart</name>
+<key>tstart</key>
+<value>0</value>
+<type>real</type>
+</param>
+
+<param>
+<name>tstop</name>
+<key>tstop</key>
+<value>0</value>
+<type>real</type>
+</param>
+
+<param>
+<name>tstep</name>
+<key>tstep</key>
+<value>0</value>
+<type>real</type>
+</param>
+
+
+ <sink>
+ <name>in</name>
+ <type>float</type>
+ <nports>2</nports>
+ </sink>
+<!--
+ <sink>
+ <name>in1</name>
+ <type>float</type>
+ <nports>4</nports>
+ </sink> -->
+
+
+ <source>
+ <name>out</name>
+ <type>float</type>
+ </source>
+</block>
diff --git a/gr-input/python/CMakeLists.txt b/gr-input/python/CMakeLists.txt
index 992012646..45717a4f0 100644
--- a/gr-input/python/CMakeLists.txt
+++ b/gr-input/python/CMakeLists.txt
@@ -55,6 +55,35 @@ GR_PYTHON_INSTALL(
COMPONENT "input_python"
)
+GR_PYTHON_INSTALL(
+ FILES
+ Numerator.py
+ DESTINATION ${GR_PYTHON_DIR}/gnuradio/input
+ COMPONENT "input_python"
+)
+
+GR_PYTHON_INSTALL(
+ FILES
+ Denominator.py
+ DESTINATION ${GR_PYTHON_DIR}/gnuradio/input
+ COMPONENT "input_python"
+)
+
+GR_PYTHON_INSTALL(
+ FILES
+ Calculator.py
+ DESTINATION ${GR_PYTHON_DIR}/gnuradio/input
+ COMPONENT "input_python"
+)
+
+GR_PYTHON_INSTALL(
+ FILES
+ Transfer_Function.py
+ DESTINATION ${GR_PYTHON_DIR}/gnuradio/input
+ COMPONENT "input_python"
+)
+
+
diff --git a/gr-input/python/Calculator.py b/gr-input/python/Calculator.py
new file mode 100644
index 000000000..7180bba53
--- /dev/null
+++ b/gr-input/python/Calculator.py
@@ -0,0 +1,92 @@
+#!/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 time
+import numpy
+from gnuradio import gr
+
+class Calculator(gr.sync_block):
+ """
+ docstring for block add_python
+ """
+ def __init__(self,num_inputs):
+ number = num_inputs
+ a = []
+ for i in range(0,number):
+ a.append(numpy.float32)
+ print "value of a",a
+ gr.sync_block.__init__(self,
+ name="add_python",
+ in_sig=a,
+ out_sig=[numpy.float32])
+ def set_parameters(self,Exp,num_inputs):
+ self.Exp = Exp
+ self.num_inputs = num_inputs
+
+ #print "I am over slept"
+ #print len(self.ret_array)
+
+
+ def work(self, input_items, output_items):
+ try:
+ a0 = input_items[0]
+ except IndexError:
+ pass
+ try:
+ a1 = input_items[1]
+ except IndexError:
+ pass
+ try:
+ a2 = input_items[2]
+ except IndexError:
+ pass
+ try:
+ a3 = input_items[3]
+ except IndexError:
+ pass
+ try:
+ a4 = input_items[4]
+ except IndexError:
+ pass
+ try:
+ a5 = input_items[5]
+ except IndexError:
+ pass
+ try:
+ a6 = input_items[6]
+ except IndexError:
+ pass
+ try:
+ a7 = input_items[7]
+ except IndexError:
+ pass
+ try:
+ a8 = input_items[8]
+ except IndexError:
+ pass
+ try:
+ a9 = input_items[9]
+ except IndexError:
+ pass
+ out = output_items[0]
+ out[:] = eval(self.Exp)
+# print "i am length",len(output_items[0][:5])
+# print "value of out",out
+ return len(output_items[0])
diff --git a/gr-input/python/Denominator.py b/gr-input/python/Denominator.py
new file mode 100644
index 000000000..394b081bc
--- /dev/null
+++ b/gr-input/python/Denominator.py
@@ -0,0 +1,96 @@
+#!/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 time
+import numpy
+from gnuradio import gr
+
+class Denominator(gr.sync_block):
+ """
+ docstring for block add_python
+ """
+ def __init__(self,num_inputs):
+ number = num_inputs
+ a = []
+# out_arr=[]
+ for i in range(0,number):
+ a.append(numpy.float32)
+ print "value of a",a
+ gr.sync_block.__init__(self,
+ name="denomenator",
+ in_sig=a,
+ out_sig=[numpy.float32])
+
+ def work(self, input_items, output_items):
+ b=[0,0,0,0,0,0,0,0,0,0]
+ try:
+ b[0] = input_items[0][0]
+ except IndexError:
+ pass
+ try:
+ b[1] = input_items[1][0]
+ except IndexError:
+ pass
+ try:
+ b[2] = input_items[2][0]
+ except IndexError:
+ pass
+ try:
+ b[3] = input_items[3][0]
+ except IndexError:
+ pass
+ try:
+ b[4] = input_items[4][0]
+ except IndexError:
+ pass
+ try:
+ b[5] = input_items[5][0]
+ except IndexError:
+ pass
+ try:
+ b[6] = input_items[6][0]
+ except IndexError:
+ pass
+ try:
+ b[7] = input_items[7][0]
+ except IndexError:
+ pass
+ try:
+ b[8] = input_items[8][0]
+ except IndexError:
+ pass
+ try:
+ b[9] = input_items[9][0]
+ except IndexError:
+ pass
+ out = output_items[0][:5]
+ out_arr=[]
+ time.sleep(0.001)
+
+# print "value of b",b
+ for i in range(0,len(input_items)):
+ out_arr.append(b[i])
+# print "I am input items",input_items[i][0]
+# print "out_array",out_arr
+ out[:] = out_arr
+# print "i am length",len(output_items[0][:])
+# print "value of out",out
+ return len(output_items[0][:])
+
diff --git a/gr-input/python/Numerator.py b/gr-input/python/Numerator.py
new file mode 100644
index 000000000..de35d2dc8
--- /dev/null
+++ b/gr-input/python/Numerator.py
@@ -0,0 +1,96 @@
+#!/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 time
+import numpy
+from gnuradio import gr
+
+class Numerator(gr.sync_block):
+ """
+ docstring for block add_python
+ """
+ def __init__(self,num_inputs):
+ number = num_inputs
+ a = []
+# out_arr=[]
+ for i in range(0,number):
+ a.append(numpy.float32)
+ print "value of a",a
+ gr.sync_block.__init__(self,
+ name="numerator",
+ in_sig=a,
+ out_sig=[numpy.float32])
+
+ def work(self, input_items, output_items):
+ b=[0,0,0,0,0,0,0,0,0,0]
+ try:
+ b[0] = input_items[0][0]
+ except IndexError:
+ pass
+ try:
+ b[1] = input_items[1][0]
+ except IndexError:
+ pass
+ try:
+ b[2] = input_items[2][0]
+ except IndexError:
+ pass
+ try:
+ b[3] = input_items[3][0]
+ except IndexError:
+ pass
+ try:
+ b[4] = input_items[4][0]
+ except IndexError:
+ pass
+ try:
+ b[5] = input_items[5][0]
+ except IndexError:
+ pass
+ try:
+ b[6] = input_items[6][0]
+ except IndexError:
+ pass
+ try:
+ b[7] = input_items[7][0]
+ except IndexError:
+ pass
+ try:
+ b[8] = input_items[8][0]
+ except IndexError:
+ pass
+ try:
+ b[9] = input_items[9][0]
+ except IndexError:
+ pass
+ out = output_items[0][:5]
+ out_arr=[]
+ time.sleep(0.001)
+
+# print "value of b",b
+ for i in range(0,len(input_items)):
+ out_arr.append(b[i])
+# print "I am input items",input_items[i][0]
+# print "out_array",out_arr
+ out[:] = out_arr
+# print "i am length",len(output_items[0][:])
+ print "value of out",out
+ return len(output_items[0][:])
+
diff --git a/gr-input/python/Transfer_Function.py b/gr-input/python/Transfer_Function.py
new file mode 100644
index 000000000..d53c55e48
--- /dev/null
+++ b/gr-input/python/Transfer_Function.py
@@ -0,0 +1,100 @@
+#!/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 time
+import numpy
+from gnuradio import gr
+import sciscipy
+
+class Transfer_Function(gr.sync_block):
+ """
+ docstring for block add_python
+ """
+ def __init__(self,order,itype,tstart,tstop,tstep):
+ a = []
+ self.b = [0,0,0,0,0,0]
+ self.c = [0,0,0,0,0,0]
+ self.i = 0
+ self.order=int(order)+1
+ self.itype = itype
+ self.tstart = tstart
+ self.tstop = tstop
+ self.tstep = tstep
+ gr.sync_block.__init__(self,
+ name="tf_rises",
+ in_sig=[numpy.float32,numpy.float32],
+ out_sig=[numpy.float32])
+
+ #print "I am over slept"
+ #print len(self.ret_array)
+
+ def find_resp(self,b,c):
+ if (self.itype == 11):
+ typo = "'imp'"
+ elif (self.itype == 12):
+ typo = "'step'"
+ else:
+ typo = "t"
+# print "self b",self.b
+ 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 = "t="+str(self.tstart)+":"+str(self.tstep)+":"+str(self.tstop)+";"
+ string5 = "deff('u=input(t)','u=50');"
+ string6 = "r=tf2ss(h); a=csim("+typo+",t,r);"
+ string = string1+string2+string3+string4+string5+string6
+ print "I am strin g",string
+ sciscipy.eval(string)
+ self.a = sciscipy.read("a")
+ print "value of a\n",self.a
+
+
+
+
+
+ def work(self, input_items, output_items):
+
+ print "input value:\n",input_items
+ for i in range(0,5):
+ self.b[i] = input_items[0][i]
+ # print "I am b[i]", b[i]
+ #print "I am BBBBB", self.b
+
+ for j in range(0,5):
+ self.c[j] = input_items[1][j]
+ #print "I am c[j]", c[j]
+ #print "I am CCCCC", self.c
+ self.find_resp(self.b,self.c)
+
+
+ out = output_items[0]
+ self.i+=1
+ print "I am self i\n",self.i
+ if self.i >= len(self.a):
+ self.i = 0
+ print "len of out\n",len(out)
+ #time.sleep(0.125)
+ out[:] = numpy.float32(self.a[self.i])
+ #print
+ print "i am out\n",out
+
+ return len(output_items[0])
+
+