1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 |
@@ -0,0 +1,322 | |||||
|
1 | { | |||
|
2 | "auto_complete": | |||
|
3 | { | |||
|
4 | "selected_items": | |||
|
5 | [ | |||
|
6 | [ | |||
|
7 | "MEM", | |||
|
8 | "MEM_IN_SM_Empty" | |||
|
9 | ], | |||
|
10 | [ | |||
|
11 | "out_re", | |||
|
12 | "out_ren" | |||
|
13 | ], | |||
|
14 | [ | |||
|
15 | "fft", | |||
|
16 | "fft_reg" | |||
|
17 | ], | |||
|
18 | [ | |||
|
19 | "address_MEM", | |||
|
20 | "address_MEM_IN_SM_0" | |||
|
21 | ], | |||
|
22 | [ | |||
|
23 | "wfr", | |||
|
24 | "wfrm0" | |||
|
25 | ], | |||
|
26 | [ | |||
|
27 | "print", | |||
|
28 | "print_reg_fft" | |||
|
29 | ], | |||
|
30 | [ | |||
|
31 | "sin", | |||
|
32 | "sineWave" | |||
|
33 | ], | |||
|
34 | [ | |||
|
35 | "if", | |||
|
36 | "ifmain if __name__ == '__main__'" | |||
|
37 | ], | |||
|
38 | [ | |||
|
39 | "address_", | |||
|
40 | "address_MEM_IN_SM_0" | |||
|
41 | ], | |||
|
42 | [ | |||
|
43 | "wf", | |||
|
44 | "wfrm0" | |||
|
45 | ], | |||
|
46 | [ | |||
|
47 | "address_FIFO_F0_", | |||
|
48 | "address_FIFO_F0_4" | |||
|
49 | ], | |||
|
50 | [ | |||
|
51 | "add", | |||
|
52 | "address_CTRL" | |||
|
53 | ], | |||
|
54 | [ | |||
|
55 | "wfrm", | |||
|
56 | "wfrm1" | |||
|
57 | ], | |||
|
58 | [ | |||
|
59 | "index", | |||
|
60 | "indexTransformDecimationInFrequency" | |||
|
61 | ], | |||
|
62 | [ | |||
|
63 | "in", | |||
|
64 | "indexTransformDecimationInFrequency" | |||
|
65 | ], | |||
|
66 | [ | |||
|
67 | "dft", | |||
|
68 | "dft_val" | |||
|
69 | ], | |||
|
70 | [ | |||
|
71 | "butter", | |||
|
72 | "butterflyProcessor" | |||
|
73 | ], | |||
|
74 | [ | |||
|
75 | "chec", | |||
|
76 | "checkbox_sy_lfr_bw" | |||
|
77 | ], | |||
|
78 | [ | |||
|
79 | "send", | |||
|
80 | "sendLoadCommonPar" | |||
|
81 | ], | |||
|
82 | [ | |||
|
83 | "groupbo", | |||
|
84 | "groupbox_tc_lfr_load_common_par" | |||
|
85 | ], | |||
|
86 | [ | |||
|
87 | "l", | |||
|
88 | "layout_tc" | |||
|
89 | ], | |||
|
90 | [ | |||
|
91 | "button", | |||
|
92 | "button_tc_lfr_load_common_par" | |||
|
93 | ], | |||
|
94 | [ | |||
|
95 | "a", | |||
|
96 | "addWidget" | |||
|
97 | ], | |||
|
98 | [ | |||
|
99 | "group", | |||
|
100 | "groupbox_tc_lfr_load_common_par" | |||
|
101 | ], | |||
|
102 | [ | |||
|
103 | "c", | |||
|
104 | "common" | |||
|
105 | ], | |||
|
106 | [ | |||
|
107 | "laben", | |||
|
108 | "label_UNKNOWN_nb" | |||
|
109 | ], | |||
|
110 | [ | |||
|
111 | "UN", | |||
|
112 | "UNKNOWN_nb" | |||
|
113 | ] | |||
|
114 | ] | |||
|
115 | }, | |||
|
116 | "buffers": | |||
|
117 | [ | |||
|
118 | { | |||
|
119 | "file": "test_fft/test_fft_mini_lfr.py", | |||
|
120 | "settings": | |||
|
121 | { | |||
|
122 | "buffer_size": 4505, | |||
|
123 | "line_ending": "Unix" | |||
|
124 | } | |||
|
125 | } | |||
|
126 | ], | |||
|
127 | "build_system": "", | |||
|
128 | "command_palette": | |||
|
129 | { | |||
|
130 | "height": 392.0, | |||
|
131 | "selected_items": | |||
|
132 | [ | |||
|
133 | ], | |||
|
134 | "width": 392.0 | |||
|
135 | }, | |||
|
136 | "console": | |||
|
137 | { | |||
|
138 | "height": 146.0 | |||
|
139 | }, | |||
|
140 | "distraction_free": | |||
|
141 | { | |||
|
142 | "menu_visible": true, | |||
|
143 | "show_minimap": false, | |||
|
144 | "show_open_files": false, | |||
|
145 | "show_tabs": false, | |||
|
146 | "side_bar_visible": false, | |||
|
147 | "status_bar_visible": false | |||
|
148 | }, | |||
|
149 | "file_history": | |||
|
150 | [ | |||
|
151 | "/opt/LFR_EMULATOR/test_fft/functions_evaluations.py", | |||
|
152 | "/opt/LFR_EMULATOR/SRC/processing_chain.py", | |||
|
153 | "/opt/LFR_EMULATOR/main.py", | |||
|
154 | "/opt/LFR_EMULATOR/fft_8_decimation_in_frequency.py", | |||
|
155 | "/opt/LFR_EMULATOR/SRC/basic_parameters_Int.py", | |||
|
156 | "/opt/LFR_EMULATOR/butterfly_processor.py", | |||
|
157 | "/opt/LFR_EMULATOR/index_transform_decimation_in_frequency.py", | |||
|
158 | "/opt/LFR_EMULATOR/efficient_complex_multiplier.py", | |||
|
159 | "/opt/LFR_EMULATOR/twiddle_factors.py", | |||
|
160 | "/opt/LFR_EMULATOR/SRC/filters.py", | |||
|
161 | "/opt/LFR_EMULATOR/SRC/test_cases1.py", | |||
|
162 | "/opt/VALIDATION/lfrverif/LFR_SVS/SVS-0001/Step02/UploadDumpMemory.py", | |||
|
163 | "/opt/VALIDATION/lfrverif/LFR_SVS/SVS-0001/Step02/UploadDumpMemory (copy).py", | |||
|
164 | "/opt/VALIDATION/lfrverif/LFR_SVS/SVS-0001/Step01/grspw_registers.py", | |||
|
165 | "/opt/VALIDATION/lfrverif/LFR_SVS/SVS-0002/tc_during_matrix_transmission.py", | |||
|
166 | "/opt/VALIDATION/lfrverif/common/actions_tc_lfr_launcher.py", | |||
|
167 | "/opt/VALIDATION/lfrverif/common/test_monitor.py", | |||
|
168 | "/opt/VALIDATION/validation.sublime-workspace", | |||
|
169 | "/opt/VALIDATION/validation.sublime-project", | |||
|
170 | "/opt/PYTHON/lfrverif/test1/test1main.py", | |||
|
171 | "/opt/PYTHON/lfrverif/test1/test1launcher.py", | |||
|
172 | "/opt/PYTHON/lfrverif/common/crcforlfr.py", | |||
|
173 | "/opt/PYTHON/lfrverif/common/tcparams.py", | |||
|
174 | "/opt/PYTHON/lfrverif/test1/testgui.py", | |||
|
175 | "/opt/PYTHON/lfrverif/test1/tcmonitor.py", | |||
|
176 | "/opt/PYTHON/lfrverif/test1/lppmoncfg.py", | |||
|
177 | "/opt/PYTHON/lfrverif/test1/wfdisplay.py", | |||
|
178 | "/opt/PYTHON/lfrverif/test1/lppmonplot.py", | |||
|
179 | "/opt/PYTHON/lfrverif/test1/tmmonitor.py" | |||
|
180 | ], | |||
|
181 | "find": | |||
|
182 | { | |||
|
183 | "height": 34.0 | |||
|
184 | }, | |||
|
185 | "find_in_files": | |||
|
186 | { | |||
|
187 | "height": 0.0, | |||
|
188 | "where_history": | |||
|
189 | [ | |||
|
190 | "/opt/VALIDATION/lfrverif", | |||
|
191 | "/opt/VALIDATION/lfrverif/LFR_SVS" | |||
|
192 | ] | |||
|
193 | }, | |||
|
194 | "find_state": | |||
|
195 | { | |||
|
196 | "case_sensitive": false, | |||
|
197 | "find_history": | |||
|
198 | [ | |||
|
199 | "def displayInfoSendTc", | |||
|
200 | "dump", | |||
|
201 | "tc_lfr_dump_par", | |||
|
202 | "processpac", | |||
|
203 | "WriteSPWDelay", | |||
|
204 | "sendPacket", | |||
|
205 | "sendLoadCommonPar" | |||
|
206 | ], | |||
|
207 | "highlight": true, | |||
|
208 | "in_selection": false, | |||
|
209 | "preserve_case": false, | |||
|
210 | "regex": false, | |||
|
211 | "replace_history": | |||
|
212 | [ | |||
|
213 | ], | |||
|
214 | "reverse": false, | |||
|
215 | "show_context": true, | |||
|
216 | "use_buffer2": true, | |||
|
217 | "whole_word": false, | |||
|
218 | "wrap": true | |||
|
219 | }, | |||
|
220 | "groups": | |||
|
221 | [ | |||
|
222 | { | |||
|
223 | "selected": 0, | |||
|
224 | "sheets": | |||
|
225 | [ | |||
|
226 | { | |||
|
227 | "buffer": 0, | |||
|
228 | "file": "test_fft/test_fft_mini_lfr.py", | |||
|
229 | "settings": | |||
|
230 | { | |||
|
231 | "buffer_size": 4505, | |||
|
232 | "regions": | |||
|
233 | { | |||
|
234 | }, | |||
|
235 | "selection": | |||
|
236 | [ | |||
|
237 | [ | |||
|
238 | 1524, | |||
|
239 | 1524 | |||
|
240 | ] | |||
|
241 | ], | |||
|
242 | "settings": | |||
|
243 | { | |||
|
244 | "syntax": "Packages/Python/Python.tmLanguage", | |||
|
245 | "translate_tabs_to_spaces": false | |||
|
246 | }, | |||
|
247 | "translation.x": 0.0, | |||
|
248 | "translation.y": 1998.0, | |||
|
249 | "zoom_level": 1.0 | |||
|
250 | }, | |||
|
251 | "type": "text" | |||
|
252 | } | |||
|
253 | ] | |||
|
254 | } | |||
|
255 | ], | |||
|
256 | "incremental_find": | |||
|
257 | { | |||
|
258 | "height": 0.0 | |||
|
259 | }, | |||
|
260 | "input": | |||
|
261 | { | |||
|
262 | "height": 0.0 | |||
|
263 | }, | |||
|
264 | "layout": | |||
|
265 | { | |||
|
266 | "cells": | |||
|
267 | [ | |||
|
268 | [ | |||
|
269 | 0, | |||
|
270 | 0, | |||
|
271 | 1, | |||
|
272 | 1 | |||
|
273 | ] | |||
|
274 | ], | |||
|
275 | "cols": | |||
|
276 | [ | |||
|
277 | 0.0, | |||
|
278 | 1.0 | |||
|
279 | ], | |||
|
280 | "rows": | |||
|
281 | [ | |||
|
282 | 0.0, | |||
|
283 | 1.0 | |||
|
284 | ] | |||
|
285 | }, | |||
|
286 | "menu_visible": true, | |||
|
287 | "output.exec": | |||
|
288 | { | |||
|
289 | "height": 28.0 | |||
|
290 | }, | |||
|
291 | "replace": | |||
|
292 | { | |||
|
293 | "height": 0.0 | |||
|
294 | }, | |||
|
295 | "save_all_on_build": true, | |||
|
296 | "select_file": | |||
|
297 | { | |||
|
298 | "height": 0.0, | |||
|
299 | "selected_items": | |||
|
300 | [ | |||
|
301 | ], | |||
|
302 | "width": 0.0 | |||
|
303 | }, | |||
|
304 | "select_project": | |||
|
305 | { | |||
|
306 | "height": 500.0, | |||
|
307 | "selected_items": | |||
|
308 | [ | |||
|
309 | [ | |||
|
310 | "", | |||
|
311 | "/opt/PYTHON/waveform_analysis/wfmr_plots.sublime-project" | |||
|
312 | ] | |||
|
313 | ], | |||
|
314 | "width": 380.0 | |||
|
315 | }, | |||
|
316 | "show_minimap": true, | |||
|
317 | "show_open_files": false, | |||
|
318 | "show_tabs": true, | |||
|
319 | "side_bar_visible": true, | |||
|
320 | "side_bar_width": 289.0, | |||
|
321 | "status_bar_visible": true | |||
|
322 | } |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
@@ -0,0 +1,38 | |||||
|
1 | import numpy as np | |||
|
2 | ||||
|
3 | from __main__ import RMAPPlugin0 | |||
|
4 | ||||
|
5 | def getWaveFromRecord( cwf, bufferSize, offset, column ): | |||
|
6 | yVector = cwf[(0+offset):(bufferSize+offset), column] | |||
|
7 | return yVector | |||
|
8 | ||||
|
9 | def sineWave( bufferSize, nbPeriod, amplitude): | |||
|
10 | deltaX = nbPeriod * 2 * np.pi / bufferSize | |||
|
11 | xVector = np.arange( bufferSize ) * deltaX | |||
|
12 | yVector = np.int16( amplitude * np.sin( xVector ) ) | |||
|
13 | return yVector | |||
|
14 | ||||
|
15 | def continuous( bufferSize, value ): | |||
|
16 | tmpVector = np.empty( bufferSize ) | |||
|
17 | tmpVector.fill( value ) | |||
|
18 | yVector = np.int16( tmpVector ) | |||
|
19 | return yVector | |||
|
20 | ||||
|
21 | def generateDataToWrite( bufferSize, wfrm0, wfrm1 ): | |||
|
22 | dataVector = [] | |||
|
23 | for k in range(bufferSize): | |||
|
24 | dataVector.append( ( wfrm1[k] << 16) + wfrm0[k] ) | |||
|
25 | return dataVector | |||
|
26 | ||||
|
27 | def print_reg_fft( address_CTRL ): | |||
|
28 | fft_reg = RMAPPlugin0.Read( address_CTRL, 1) | |||
|
29 | out_ren = (fft_reg[0] & 0x0000001f) | |||
|
30 | out_reuse = (fft_reg[0] & 0x000003e0) >> 5 | |||
|
31 | out_locked = (fft_reg[0] & 0x00007c00) >> 10 | |||
|
32 | MEM_IN_SM_Full = (fft_reg[0] & 0x000f8000) >> 15 | |||
|
33 | MEM_IN_SM_Empty = (fft_reg[0] & 0x01f00000) >> 20 | |||
|
34 | print "out_ren = " + bin( out_ren ) \ | |||
|
35 | + ", out_reuse = " + bin( out_reuse ) \ | |||
|
36 | + ", out_locked = " + bin( out_locked ) \ | |||
|
37 | + ", MEM_IN_SM_Full = " + bin( MEM_IN_SM_Full ) \ | |||
|
38 | + ", MEM_IN_SM_Empty = " + bin( MEM_IN_SM_Empty ) |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
@@ -0,0 +1,13 | |||||
|
1 | import numpy as np | |||
|
2 | import matplotlib.pyplot as plt | |||
|
3 | ||||
|
4 | def sineWave( bufferSize, nbPeriod): | |||
|
5 | deltaX = nbPeriod * 2 * np.pi / bufferSize | |||
|
6 | xVector = np.arange( bufferSize ) * deltaX | |||
|
7 | yVector = np.sin( xVector ) | |||
|
8 | return yVector | |||
|
9 | ||||
|
10 | if __name__ == '__main__': | |||
|
11 | waveform = sineWave( 256, 3 ) | |||
|
12 | plt.plot(waveform) | |||
|
13 | plt.show() |
@@ -0,0 +1,31 | |||||
|
1 | # FIFO F0 | |||
|
2 | address_FIFO_F0_1_0 = 0x80000f00 | |||
|
3 | address_FIFO_F0_3_2 = 0x80000f04 | |||
|
4 | address_FIFO_F0_4 = 0x80000f08 | |||
|
5 | address_FIFO_F0_WEN = 0x80000f0c | |||
|
6 | # FIFO F1 | |||
|
7 | address_FIFO_F1_1_0 = 0x80000f10 | |||
|
8 | address_FIFO_F1_3_2 = 0x80000f14 | |||
|
9 | address_FIFO_F1_4 = 0x80000f18 | |||
|
10 | address_FIFO_F1_WEN = 0x80000f1c | |||
|
11 | # FIFO F2 | |||
|
12 | address_FIFO_F2_1_0 = 0x80000f20 | |||
|
13 | address_FIFO_F2_3_2 = 0x80000f24 | |||
|
14 | address_FIFO_F2_4 = 0x80000f28 | |||
|
15 | address_FIFO_F2_WEN = 0x80000f2c | |||
|
16 | ||||
|
17 | address_MEM_IN_SM_0 = 0x80000f30 | |||
|
18 | address_MEM_IN_SM_1 = 0x80000f34 | |||
|
19 | address_MEM_IN_SM_2 = 0x80000f38 | |||
|
20 | address_MEM_IN_SM_3 = 0x80000f3c | |||
|
21 | address_MEM_IN_SM_4 = 0x80000f40 | |||
|
22 | ||||
|
23 | address_CTRL = 0x80000f44 | |||
|
24 | ||||
|
25 | # | |||
|
26 | columnV = 1 | |||
|
27 | columnE1 = 2 | |||
|
28 | columnE2 = 3 | |||
|
29 | columnB1 = 4 | |||
|
30 | columnB2 = 5 | |||
|
31 | columnB3 = 6 No newline at end of file |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
@@ -0,0 +1,148 | |||||
|
1 | import os | |||
|
2 | os.system('clear') # on linux / os x | |||
|
3 | ||||
|
4 | import numpy as np | |||
|
5 | import matplotlib.pyplot as plt | |||
|
6 | ||||
|
7 | from test_fft.register_addresses_fft_test import * | |||
|
8 | from test_fft.fft_test_functions import * | |||
|
9 | ||||
|
10 | print '*' | |||
|
11 | print '*' | |||
|
12 | print '*' | |||
|
13 | print '*' | |||
|
14 | print '*' | |||
|
15 | ||||
|
16 | ###################### | |||
|
17 | # GET DATA FROM RECORD | |||
|
18 | storageDirectory = '/home/paul/data/2014_06_24/' | |||
|
19 | day = '2014_6_24-' | |||
|
20 | hour = '9_0_3' | |||
|
21 | suffix = '.data' | |||
|
22 | ||||
|
23 | typeOfData = '_SBM1_CWF_' | |||
|
24 | cwf_f1 = np.genfromtxt( storageDirectory + day + hour + typeOfData + 'F1' + suffix, | |||
|
25 | skip_header = 1) | |||
|
26 | ||||
|
27 | ################# | |||
|
28 | # BUILD WAVEFORMS | |||
|
29 | nbSamples = 256 | |||
|
30 | wfrm0 = continuous( nbSamples, 10 ) | |||
|
31 | wfrm1 = sineWave( nbSamples, 2, 1000) | |||
|
32 | #wfrm2 = getWaveFromRecord( cwf_f1, nbSamples, 0, columnV ) | |||
|
33 | wfrm2 = continuous( nbSamples, 1000 ) | |||
|
34 | wfrm3 = continuous( nbSamples, 10000 ) | |||
|
35 | wfrm4 = continuous( nbSamples, 10 ) | |||
|
36 | ||||
|
37 | ################ | |||
|
38 | # BUILD THE DATA | |||
|
39 | dataToWrite0 = generateDataToWrite( nbSamples, wfrm0, wfrm1 ) | |||
|
40 | dataToWrite1 = generateDataToWrite( nbSamples, wfrm2, wfrm3 ) | |||
|
41 | dataToWrite2 = generateDataToWrite( nbSamples, np.zeros( nbSamples ), wfrm4 ) | |||
|
42 | ||||
|
43 | print_reg_fft( address_CTRL ) | |||
|
44 | ||||
|
45 | # WRITE WAVEFORM IN FIFO | |||
|
46 | print "write waveforms in FIFOs: " + str(len(dataToWrite0)) + " samples" | |||
|
47 | ||||
|
48 | for k in range(nbSamples): | |||
|
49 | RMAPPlugin0.Write( address_FIFO_F2_1_0, [dataToWrite0[k]] ) | |||
|
50 | RMAPPlugin0.Write( address_FIFO_F2_3_2, [dataToWrite1[k]] ) | |||
|
51 | RMAPPlugin0.Write( address_FIFO_F2_4, [dataToWrite2[k]] ) | |||
|
52 | # write only the FIFO F2 | |||
|
53 | RMAPPlugin0.Write( address_FIFO_F2_WEN, [0xffffffe0] ) | |||
|
54 | ||||
|
55 | print "data written in FIFOs" | |||
|
56 | ||||
|
57 | print_reg_fft( address_CTRL ) | |||
|
58 | ||||
|
59 | # LOCK FIFOs => 0111 1100 0001 1111 | |||
|
60 | RMAPPlugin0.Write( address_CTRL, [0x00007c1f] ) | |||
|
61 | ||||
|
62 | # wait for SM_Full | |||
|
63 | fft_reg = RMAPPlugin0.Read( address_CTRL, 1) | |||
|
64 | while (fft_reg[0] & 0x000f8000) == 0: | |||
|
65 | print "SM not full" | |||
|
66 | fft_reg = RMAPPlugin0.Read( address_CTRL, 1) | |||
|
67 | ||||
|
68 | print_reg_fft( address_CTRL ) | |||
|
69 | ||||
|
70 | # READ FFT | |||
|
71 | print "read data in fft FIFOs" | |||
|
72 | fft0_re = np.zeros( nbSamples ) | |||
|
73 | fft0_im = np.zeros( nbSamples ) | |||
|
74 | fft1_re = np.zeros( nbSamples ) | |||
|
75 | fft1_im = np.zeros( nbSamples ) | |||
|
76 | fft2_re = np.zeros( nbSamples ) | |||
|
77 | fft2_im = np.zeros( nbSamples ) | |||
|
78 | fft3_re = np.zeros( nbSamples ) | |||
|
79 | fft3_im = np.zeros( nbSamples ) | |||
|
80 | fft4_re = np.zeros( nbSamples ) | |||
|
81 | fft4_im = np.zeros( nbSamples ) | |||
|
82 | ||||
|
83 | for k in range(nbSamples): | |||
|
84 | val = RMAPPlugin0.Read( address_MEM_IN_SM_0, 1) | |||
|
85 | fft0_re[k] = val[0] & 0xffff | |||
|
86 | fft0_im[k] = ( val[0] >> 16 ) & 0xffff | |||
|
87 | val = RMAPPlugin0.Read( address_MEM_IN_SM_1, 1) | |||
|
88 | fft1_re[k] = val[0] & 0x0000ffff | |||
|
89 | fft1_im[k] = ( val[0] >> 16 ) & 0xffff | |||
|
90 | val = RMAPPlugin0.Read( address_MEM_IN_SM_2, 1) | |||
|
91 | fft2_re[k] = val[0] & 0x0000ffff | |||
|
92 | fft2_im[k] = ( val[0] >> 16 ) & 0xffff | |||
|
93 | val = RMAPPlugin0.Read( address_MEM_IN_SM_3, 1) | |||
|
94 | fft3_re[k] = val[0] & 0x0000ffff | |||
|
95 | fft3_im[k] = ( val[0] >> 16 ) & 0xffff | |||
|
96 | val = RMAPPlugin0.Read( address_MEM_IN_SM_4, 1) | |||
|
97 | fft4_re[k] = val[0] & 0x0000ffff | |||
|
98 | fft4_im[k] = ( val[0] >> 16 ) & 0xffff | |||
|
99 | # read enable => 0111 1100 0000 0000 | |||
|
100 | RMAPPlugin0.Write( address_CTRL, [0x00007c00] ) | |||
|
101 | ||||
|
102 | print "data read in fft FIFOs" | |||
|
103 | ||||
|
104 | print_reg_fft( address_CTRL ) | |||
|
105 | ||||
|
106 | #unlock FIFOs => 0000 0000 0001 1111 | |||
|
107 | RMAPPlugin0.Write( address_CTRL, [0x0000001f] ) | |||
|
108 | ||||
|
109 | print_reg_fft( address_CTRL ) | |||
|
110 | ||||
|
111 | # PLOT FFT | |||
|
112 | ||||
|
113 | plt.figure( 1 ) | |||
|
114 | plt.subplot(231) | |||
|
115 | plt.plot(wfrm0) | |||
|
116 | plt.subplot(232) | |||
|
117 | plt.plot(wfrm1) | |||
|
118 | plt.plot(wfrm1, '.') | |||
|
119 | plt.subplot(233) | |||
|
120 | plt.plot(wfrm2) | |||
|
121 | plt.subplot(234) | |||
|
122 | plt.plot(wfrm3) | |||
|
123 | plt.subplot(235) | |||
|
124 | plt.plot(wfrm4) | |||
|
125 | ||||
|
126 | plt.figure( 2 ) | |||
|
127 | plt.subplot(311) | |||
|
128 | plt.plot(fft0_re) | |||
|
129 | plt.plot(fft1_re) | |||
|
130 | plt.plot(fft2_re) | |||
|
131 | plt.plot(fft3_re) | |||
|
132 | plt.plot(fft4_re) | |||
|
133 | ||||
|
134 | plt.subplot(312) | |||
|
135 | plt.plot(fft0_im) | |||
|
136 | plt.plot(fft1_im) | |||
|
137 | plt.plot(fft2_im) | |||
|
138 | plt.plot(fft3_im) | |||
|
139 | plt.plot(fft4_im) | |||
|
140 | ||||
|
141 | plt.subplot(313) | |||
|
142 | plt.plot(fft0_re * fft0_re + fft0_im * fft0_im, 'b') | |||
|
143 | plt.plot(fft1_re * fft1_re + fft1_im * fft1_im, 'g') | |||
|
144 | plt.plot(fft2_re * fft2_re + fft2_im * fft2_im, 'r') | |||
|
145 | plt.plot(fft3_re * fft3_re + fft3_im * fft3_im, 'c') | |||
|
146 | plt.plot(fft4_re * fft4_re + fft4_im * fft4_im, 'm') | |||
|
147 | ||||
|
148 | plt.show() No newline at end of file |
General Comments 0
You need to be logged in to leave comments.
Login now