diff --git a/SRC/cic_impulse_response.py b/SRC/cic_impulse_response.py new file mode 100644 --- /dev/null +++ b/SRC/cic_impulse_response.py @@ -0,0 +1,41 @@ +class GenericInterator(object): + """docstring for GenericInterator""" + def __init__(self): + super(GenericInterator, self).__init__() + self.y = 0 + + def integrator(self, x): + self.y = self.y + x + return self.y + +class GenericDerivator(object): + """docstring for GenericInterator""" + def __init__(self): + super(GenericDerivator, self).__init__() + self.y = 0 + self.x_tmp1 = 0 + self.x_tmp2 = 0 + + def derivator(self, x): + self.y = x - self.x_tmp2 + self.x_tmp2 = self.x_tmp1 + self.x_tmp1 = x + return self.y + +if __name__ == "__main__": + i0 = GenericInterator() + i1 = GenericInterator() + i2 = GenericInterator() + c0 = GenericDerivator() + c1 = GenericDerivator() + c2 = GenericDerivator() + for i in range(10): + for j in range(32): + i2.integrator(i1.y) + i1.integrator(i0.y) + i0.integrator(127) + if j == 0: + c0.derivator(i2.y) + c1.derivator(c0.y) + c2.derivator(c1.y) + print i, j, i0.y, i1.y, " *** ", i2.y, c0.y, c1.y, c2.y, c2.y / 2**16 diff --git a/lfr_emulator.sublime-project b/lfr_emulator.sublime-project new file mode 100644 --- /dev/null +++ b/lfr_emulator.sublime-project @@ -0,0 +1,8 @@ +{ + "folders": + [ + { + "path": "/run/media/admin/EADA65D1DA659B19/opt/LFR_EMULATOR" + } + ] +} diff --git a/lfr_emulator.sublime-workspace b/lfr_emulator.sublime-workspace new file mode 100644 --- /dev/null +++ b/lfr_emulator.sublime-workspace @@ -0,0 +1,225 @@ +{ + "auto_complete": + { + "selected_items": + [ + [ + "stage", + "stage" + ] + ] + }, + "buffers": + [ + { + "file": "twiddle_factors_128_dot_vhd_generation.py", + "settings": + { + "buffer_size": 2751, + "line_ending": "Windows" + } + }, + { + "file": "lfr_emulator.sublime-project", + "settings": + { + "buffer_size": 94, + "line_ending": "Unix" + } + } + ], + "build_system": "", + "command_palette": + { + "height": 332.0, + "selected_items": + [ + ], + "width": 392.0 + }, + "console": + { + "height": 0.0 + }, + "distraction_free": + { + "menu_visible": true, + "show_minimap": false, + "show_open_files": false, + "show_tabs": false, + "side_bar_visible": false, + "status_bar_visible": false + }, + "file_history": + [ + "/run/media/admin/EADA65D1DA659B19/opt/LFR_EMULATOR/main.py", + "/run/media/admin/EADA65D1DA659B19/opt/LFR_EMULATOR/fft_8_decimation_in_frequency.py", + "/run/media/admin/EADA65D1DA659B19/opt/LFR_EMULATOR/twiddle_factors.py", + "/run/media/admin/EADA65D1DA659B19/opt/LFR_EMULATOR/index_transform_decimation_in_frequency.py", + "/home/admin/PYTHON/lfrprocessing/tests_cooleytukey.py", + "/home/admin/PYTHON/lfrprocessing/fft.py", + "/home/admin/PYTHON/lfrprocessing/cicfilter_testbench.py", + "/home/admin/PYTHON/lfrprocessing/cicfilter.py", + "/home/admin/PYTHON/lfrprocessing/filters.py", + "/home/admin/PYTHON/lfrprocessing/processing_chain.py", + "/home/admin/PYTHON/lfrprocessing/filters_LFR.py", + "/home/admin/PYTHON/lfrprocessing.sublime-project", + "/home/admin/.config/sublime-text-2/Packages/User/Distraction Free.sublime-settings" + ], + "find": + { + "height": 0.0 + }, + "find_in_files": + { + "height": 0.0, + "where_history": + [ + ] + }, + "find_state": + { + "case_sensitive": false, + "find_history": + [ + "group_range" + ], + "highlight": true, + "in_selection": false, + "preserve_case": false, + "regex": false, + "replace_history": + [ + "nb_groups" + ], + "reverse": false, + "show_context": true, + "use_buffer2": true, + "whole_word": false, + "wrap": true + }, + "groups": + [ + { + "selected": 1, + "sheets": + [ + { + "buffer": 0, + "file": "twiddle_factors_128_dot_vhd_generation.py", + "settings": + { + "buffer_size": 2751, + "regions": + { + }, + "selection": + [ + [ + 933, + 933 + ] + ], + "settings": + { + "syntax": "Packages/Python/Python.tmLanguage", + "translate_tabs_to_spaces": false + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "type": "text" + }, + { + "buffer": 1, + "file": "lfr_emulator.sublime-project", + "settings": + { + "buffer_size": 94, + "regions": + { + }, + "selection": + [ + [ + 0, + 0 + ] + ], + "settings": + { + "syntax": "Packages/JavaScript/JSON.tmLanguage" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "type": "text" + } + ] + } + ], + "incremental_find": + { + "height": 0.0 + }, + "input": + { + "height": 0.0 + }, + "layout": + { + "cells": + [ + [ + 0, + 0, + 1, + 1 + ] + ], + "cols": + [ + 0.0, + 1.0 + ], + "rows": + [ + 0.0, + 1.0 + ] + }, + "menu_visible": true, + "output.exec": + { + "height": 208.0 + }, + "replace": + { + "height": 62.0 + }, + "save_all_on_build": true, + "select_file": + { + "height": 0.0, + "selected_items": + [ + ], + "width": 0.0 + }, + "select_project": + { + "height": 0.0, + "selected_items": + [ + ], + "width": 0.0 + }, + "show_minimap": true, + "show_open_files": false, + "show_tabs": true, + "side_bar_visible": true, + "side_bar_width": 267.0, + "status_bar_visible": true +}