Skip to content
Snippets Groups Projects
Commit 99963691 authored by Daniel van der Schuur's avatar Daniel van der Schuur
Browse files

-Added gen_hex_files_composite_signals.py to create (composite) complex sine

 waves and write them to HEX files used by the block gens;
-Added dp_stream_rec_play to apertif_unb1_correlator to record the WPFB output;
-Added tc_wpfb_src_out_arr.py to read and plot the recorded WPFB output;
 . Not working yet - the WPFB output does not resemble s spectrum.
-Commented out the correlator as the WPFB is now the main DUT.

Happy holidays!
parent 2b15c467
No related branches found
No related tags found
No related merge requests found
Showing
with 1791 additions and 65 deletions
:02000000001FDF
:02000100001FDE
:02000200059562
:02000300059561
:02000400078073
:02000500078072
:02000600056A89
:02000700056A88
:020008000FE205
:020009000FE204
:02000A000A6C7E
:02000B000A6C7D
:02000C00088268
:02000D00088267
:02000E000B578E
:02000F000B578D
:0200100000DE10
:0200110000DE0F
:020012000613D3
:020013000613D2
:0200140007BD26
:0200150007BD25
:0200160004A83C
:0200170004A83B
:020018000F22B5
:020019000F22B4
:02001A0009EEED
:02001B0009EEEC
:02001C00088555
:02001D00088554
:02001E000BD9FC
:02001F000BD9FB
:02002000019E3F
:02002100019E3E
:02002200069046
:02002300069045
:0200240007BA19
:0200250007BA18
:020026000426AE
:020027000426AD
:020028000E6266
:020029000E6265
:02002A0009B11A
:02002B0009B119
:02002C0008C802
:02002D0008C801
:02002E000C9B29
:02002F000C9B28
:02003000025D6F
:02003100025D6E
:0200320006CEF8
:0200330006CEF7
:0200340007774C
:0200350007774B
:02003600036560
:0200370003655F
:020038000DA316
:020039000DA315
:02003A00093487
:02003B00093486
:02003C00090BAE
:02003D00090BAD
:02003E000D1C97
:02003F000D1C96
:02004000031C9F
:02004100031C9E
:02004200070BAA
:02004300070BA9
:0200440007347F
:0200450007347E
:0200460002A313
:0200470002A312
:020048000CE5C5
:020049000CE5C4
:02004A0008F7B5
:02004B0008F7B4
:02004C00094E5B
:02004D00094E5A
:02004E000DDDC6
:02004F000DDDC5
:02005000039B10
:02005100039B0F
:0200520007485D
:0200530007485C
:0200540006B1F3
:0200550006B1F2
:0200560001E2C5
:0200570001E2C4
:020058000C2674
:020059000C2673
:02005A0008BAE2
:02005B0008BAE1
:02005C00099009
:02005D00099008
:02005E000E9EF4
:02005F000E9EF3
:02006000045941
:02006100045940
:02006200078510
:0200630007850F
:02006400066E26
:02006500066E25
:02006600012275
:02006700012274
:020068000BA8E3
:020069000BA8E2
:02006A0008BDCF
:02006B0008BDCE
:02006C000A1375
:02006D000A1374
:02006E000F5E23
:02006F000F5E22
:0200700004D7B3
:0200710004D7B2
:02007200078203
:02007300078202
:0200740005EC99
:0200750005EC98
:02007600006226
:02007700006225
:020078000AEA92
:020079000AEA91
:02007A000880FC
:02007B000880FB
:02007C000A95E3
:02007D000A95E2
:02007E00001F61
:02007F00001F60
:00000001FF
:02000000001FDF
:02000100001FDE
:02000200059562
:02000300059561
:02000400078073
:02000500078072
:02000600056A89
:02000700056A88
:020008000FE205
:020009000FE204
:02000A000A6C7E
:02000B000A6C7D
:02000C00088268
:02000D00088267
:02000E000B578E
:02000F000B578D
:0200100000DE10
:0200110000DE0F
:020012000613D3
:020013000613D2
:0200140007BD26
:0200150007BD25
:0200160004A83C
:0200170004A83B
:020018000F22B5
:020019000F22B4
:02001A0009EEED
:02001B0009EEEC
:02001C00088555
:02001D00088554
:02001E000BD9FC
:02001F000BD9FB
:02002000019E3F
:02002100019E3E
:02002200069046
:02002300069045
:0200240007BA19
:0200250007BA18
:020026000426AE
:020027000426AD
:020028000E6266
:020029000E6265
:02002A0009B11A
:02002B0009B119
:02002C0008C802
:02002D0008C801
:02002E000C9B29
:02002F000C9B28
:02003000025D6F
:02003100025D6E
:0200320006CEF8
:0200330006CEF7
:0200340007774C
:0200350007774B
:02003600036560
:0200370003655F
:020038000DA316
:020039000DA315
:02003A00093487
:02003B00093486
:02003C00090BAE
:02003D00090BAD
:02003E000D1C97
:02003F000D1C96
:02004000031C9F
:02004100031C9E
:02004200070BAA
:02004300070BA9
:0200440007347F
:0200450007347E
:0200460002A313
:0200470002A312
:020048000CE5C5
:020049000CE5C4
:02004A0008F7B5
:02004B0008F7B4
:02004C00094E5B
:02004D00094E5A
:02004E000DDDC6
:02004F000DDDC5
:02005000039B10
:02005100039B0F
:0200520007485D
:0200530007485C
:0200540006B1F3
:0200550006B1F2
:0200560001E2C5
:0200570001E2C4
:020058000C2674
:020059000C2673
:02005A0008BAE2
:02005B0008BAE1
:02005C00099009
:02005D00099008
:02005E000E9EF4
:02005F000E9EF3
:02006000045941
:02006100045940
:02006200078510
:0200630007850F
:02006400066E26
:02006500066E25
:02006600012275
:02006700012274
:020068000BA8E3
:020069000BA8E2
:02006A0008BDCF
:02006B0008BDCE
:02006C000A1375
:02006D000A1374
:02006E000F5E23
:02006F000F5E22
:0200700004D7B3
:0200710004D7B2
:02007200078203
:02007300078202
:0200740005EC99
:0200750005EC98
:02007600006226
:02007700006225
:020078000AEA92
:020079000AEA91
:02007A000880FC
:02007B000880FB
:02007C000A95E3
:02007D000A95E2
:02007E00001F61
:02007F00001F60
:00000001FF
:02000000001FDF
:02000100001FDE
:02000200059562
:02000300059561
:02000400078073
:02000500078072
:02000600056A89
:02000700056A88
:020008000FE205
:020009000FE204
:02000A000A6C7E
:02000B000A6C7D
:02000C00088268
:02000D00088267
:02000E000B578E
:02000F000B578D
:0200100000DE10
:0200110000DE0F
:020012000613D3
:020013000613D2
:0200140007BD26
:0200150007BD25
:0200160004A83C
:0200170004A83B
:020018000F22B5
:020019000F22B4
:02001A0009EEED
:02001B0009EEEC
:02001C00088555
:02001D00088554
:02001E000BD9FC
:02001F000BD9FB
:02002000019E3F
:02002100019E3E
:02002200069046
:02002300069045
:0200240007BA19
:0200250007BA18
:020026000426AE
:020027000426AD
:020028000E6266
:020029000E6265
:02002A0009B11A
:02002B0009B119
:02002C0008C802
:02002D0008C801
:02002E000C9B29
:02002F000C9B28
:02003000025D6F
:02003100025D6E
:0200320006CEF8
:0200330006CEF7
:0200340007774C
:0200350007774B
:02003600036560
:0200370003655F
:020038000DA316
:020039000DA315
:02003A00093487
:02003B00093486
:02003C00090BAE
:02003D00090BAD
:02003E000D1C97
:02003F000D1C96
:02004000031C9F
:02004100031C9E
:02004200070BAA
:02004300070BA9
:0200440007347F
:0200450007347E
:0200460002A313
:0200470002A312
:020048000CE5C5
:020049000CE5C4
:02004A0008F7B5
:02004B0008F7B4
:02004C00094E5B
:02004D00094E5A
:02004E000DDDC6
:02004F000DDDC5
:02005000039B10
:02005100039B0F
:0200520007485D
:0200530007485C
:0200540006B1F3
:0200550006B1F2
:0200560001E2C5
:0200570001E2C4
:020058000C2674
:020059000C2673
:02005A0008BAE2
:02005B0008BAE1
:02005C00099009
:02005D00099008
:02005E000E9EF4
:02005F000E9EF3
:02006000045941
:02006100045940
:02006200078510
:0200630007850F
:02006400066E26
:02006500066E25
:02006600012275
:02006700012274
:020068000BA8E3
:020069000BA8E2
:02006A0008BDCF
:02006B0008BDCE
:02006C000A1375
:02006D000A1374
:02006E000F5E23
:02006F000F5E22
:0200700004D7B3
:0200710004D7B2
:02007200078203
:02007300078202
:0200740005EC99
:0200750005EC98
:02007600006226
:02007700006225
:020078000AEA92
:020079000AEA91
:02007A000880FC
:02007B000880FB
:02007C000A95E3
:02007D000A95E2
:02007E00001F61
:02007F00001F60
:00000001FF
:02000000001FDF
:02000100001FDE
:02000200059562
:02000300059561
:02000400078073
:02000500078072
:02000600056A89
:02000700056A88
:020008000FE205
:020009000FE204
:02000A000A6C7E
:02000B000A6C7D
:02000C00088268
:02000D00088267
:02000E000B578E
:02000F000B578D
:0200100000DE10
:0200110000DE0F
:020012000613D3
:020013000613D2
:0200140007BD26
:0200150007BD25
:0200160004A83C
:0200170004A83B
:020018000F22B5
:020019000F22B4
:02001A0009EEED
:02001B0009EEEC
:02001C00088555
:02001D00088554
:02001E000BD9FC
:02001F000BD9FB
:02002000019E3F
:02002100019E3E
:02002200069046
:02002300069045
:0200240007BA19
:0200250007BA18
:020026000426AE
:020027000426AD
:020028000E6266
:020029000E6265
:02002A0009B11A
:02002B0009B119
:02002C0008C802
:02002D0008C801
:02002E000C9B29
:02002F000C9B28
:02003000025D6F
:02003100025D6E
:0200320006CEF8
:0200330006CEF7
:0200340007774C
:0200350007774B
:02003600036560
:0200370003655F
:020038000DA316
:020039000DA315
:02003A00093487
:02003B00093486
:02003C00090BAE
:02003D00090BAD
:02003E000D1C97
:02003F000D1C96
:02004000031C9F
:02004100031C9E
:02004200070BAA
:02004300070BA9
:0200440007347F
:0200450007347E
:0200460002A313
:0200470002A312
:020048000CE5C5
:020049000CE5C4
:02004A0008F7B5
:02004B0008F7B4
:02004C00094E5B
:02004D00094E5A
:02004E000DDDC6
:02004F000DDDC5
:02005000039B10
:02005100039B0F
:0200520007485D
:0200530007485C
:0200540006B1F3
:0200550006B1F2
:0200560001E2C5
:0200570001E2C4
:020058000C2674
:020059000C2673
:02005A0008BAE2
:02005B0008BAE1
:02005C00099009
:02005D00099008
:02005E000E9EF4
:02005F000E9EF3
:02006000045941
:02006100045940
:02006200078510
:0200630007850F
:02006400066E26
:02006500066E25
:02006600012275
:02006700012274
:020068000BA8E3
:020069000BA8E2
:02006A0008BDCF
:02006B0008BDCE
:02006C000A1375
:02006D000A1374
:02006E000F5E23
:02006F000F5E22
:0200700004D7B3
:0200710004D7B2
:02007200078203
:02007300078202
:0200740005EC99
:0200750005EC98
:02007600006226
:02007700006225
:020078000AEA92
:020079000AEA91
:02007A000880FC
:02007B000880FB
:02007C000A95E3
:02007D000A95E2
:02007E00001F61
:02007F00001F60
:00000001FF
:02000000001FDF
:02000100001FDE
:02000200059562
:02000300059561
:02000400078073
:02000500078072
:02000600056A89
:02000700056A88
:020008000FE205
:020009000FE204
:02000A000A6C7E
:02000B000A6C7D
:02000C00088268
:02000D00088267
:02000E000B578E
:02000F000B578D
:0200100000DE10
:0200110000DE0F
:020012000613D3
:020013000613D2
:0200140007BD26
:0200150007BD25
:0200160004A83C
:0200170004A83B
:020018000F22B5
:020019000F22B4
:02001A0009EEED
:02001B0009EEEC
:02001C00088555
:02001D00088554
:02001E000BD9FC
:02001F000BD9FB
:02002000019E3F
:02002100019E3E
:02002200069046
:02002300069045
:0200240007BA19
:0200250007BA18
:020026000426AE
:020027000426AD
:020028000E6266
:020029000E6265
:02002A0009B11A
:02002B0009B119
:02002C0008C802
:02002D0008C801
:02002E000C9B29
:02002F000C9B28
:02003000025D6F
:02003100025D6E
:0200320006CEF8
:0200330006CEF7
:0200340007774C
:0200350007774B
:02003600036560
:0200370003655F
:020038000DA316
:020039000DA315
:02003A00093487
:02003B00093486
:02003C00090BAE
:02003D00090BAD
:02003E000D1C97
:02003F000D1C96
:02004000031C9F
:02004100031C9E
:02004200070BAA
:02004300070BA9
:0200440007347F
:0200450007347E
:0200460002A313
:0200470002A312
:020048000CE5C5
:020049000CE5C4
:02004A0008F7B5
:02004B0008F7B4
:02004C00094E5B
:02004D00094E5A
:02004E000DDDC6
:02004F000DDDC5
:02005000039B10
:02005100039B0F
:0200520007485D
:0200530007485C
:0200540006B1F3
:0200550006B1F2
:0200560001E2C5
:0200570001E2C4
:020058000C2674
:020059000C2673
:02005A0008BAE2
:02005B0008BAE1
:02005C00099009
:02005D00099008
:02005E000E9EF4
:02005F000E9EF3
:02006000045941
:02006100045940
:02006200078510
:0200630007850F
:02006400066E26
:02006500066E25
:02006600012275
:02006700012274
:020068000BA8E3
:020069000BA8E2
:02006A0008BDCF
:02006B0008BDCE
:02006C000A1375
:02006D000A1374
:02006E000F5E23
:02006F000F5E22
:0200700004D7B3
:0200710004D7B2
:02007200078203
:02007300078202
:0200740005EC99
:0200750005EC98
:02007600006226
:02007700006225
:020078000AEA92
:020079000AEA91
:02007A000880FC
:02007B000880FB
:02007C000A95E3
:02007D000A95E2
:02007E00001F61
:02007F00001F60
:00000001FF
:02000000001FDF
:02000100001FDE
:02000200059562
:02000300059561
:02000400078073
:02000500078072
:02000600056A89
:02000700056A88
:020008000FE205
:020009000FE204
:02000A000A6C7E
:02000B000A6C7D
:02000C00088268
:02000D00088267
:02000E000B578E
:02000F000B578D
:0200100000DE10
:0200110000DE0F
:020012000613D3
:020013000613D2
:0200140007BD26
:0200150007BD25
:0200160004A83C
:0200170004A83B
:020018000F22B5
:020019000F22B4
:02001A0009EEED
:02001B0009EEEC
:02001C00088555
:02001D00088554
:02001E000BD9FC
:02001F000BD9FB
:02002000019E3F
:02002100019E3E
:02002200069046
:02002300069045
:0200240007BA19
:0200250007BA18
:020026000426AE
:020027000426AD
:020028000E6266
:020029000E6265
:02002A0009B11A
:02002B0009B119
:02002C0008C802
:02002D0008C801
:02002E000C9B29
:02002F000C9B28
:02003000025D6F
:02003100025D6E
:0200320006CEF8
:0200330006CEF7
:0200340007774C
:0200350007774B
:02003600036560
:0200370003655F
:020038000DA316
:020039000DA315
:02003A00093487
:02003B00093486
:02003C00090BAE
:02003D00090BAD
:02003E000D1C97
:02003F000D1C96
:02004000031C9F
:02004100031C9E
:02004200070BAA
:02004300070BA9
:0200440007347F
:0200450007347E
:0200460002A313
:0200470002A312
:020048000CE5C5
:020049000CE5C4
:02004A0008F7B5
:02004B0008F7B4
:02004C00094E5B
:02004D00094E5A
:02004E000DDDC6
:02004F000DDDC5
:02005000039B10
:02005100039B0F
:0200520007485D
:0200530007485C
:0200540006B1F3
:0200550006B1F2
:0200560001E2C5
:0200570001E2C4
:020058000C2674
:020059000C2673
:02005A0008BAE2
:02005B0008BAE1
:02005C00099009
:02005D00099008
:02005E000E9EF4
:02005F000E9EF3
:02006000045941
:02006100045940
:02006200078510
:0200630007850F
:02006400066E26
:02006500066E25
:02006600012275
:02006700012274
:020068000BA8E3
:020069000BA8E2
:02006A0008BDCF
:02006B0008BDCE
:02006C000A1375
:02006D000A1374
:02006E000F5E23
:02006F000F5E22
:0200700004D7B3
:0200710004D7B2
:02007200078203
:02007300078202
:0200740005EC99
:0200750005EC98
:02007600006226
:02007700006225
:020078000AEA92
:020079000AEA91
:02007A000880FC
:02007B000880FB
:02007C000A95E3
:02007D000A95E2
:02007E00001F61
:02007F00001F60
:00000001FF
:02000000001FDF
:02000100001FDE
:02000200059562
:02000300059561
:02000400078073
:02000500078072
:02000600056A89
:02000700056A88
:020008000FE205
:020009000FE204
:02000A000A6C7E
:02000B000A6C7D
:02000C00088268
:02000D00088267
:02000E000B578E
:02000F000B578D
:0200100000DE10
:0200110000DE0F
:020012000613D3
:020013000613D2
:0200140007BD26
:0200150007BD25
:0200160004A83C
:0200170004A83B
:020018000F22B5
:020019000F22B4
:02001A0009EEED
:02001B0009EEEC
:02001C00088555
:02001D00088554
:02001E000BD9FC
:02001F000BD9FB
:02002000019E3F
:02002100019E3E
:02002200069046
:02002300069045
:0200240007BA19
:0200250007BA18
:020026000426AE
:020027000426AD
:020028000E6266
:020029000E6265
:02002A0009B11A
:02002B0009B119
:02002C0008C802
:02002D0008C801
:02002E000C9B29
:02002F000C9B28
:02003000025D6F
:02003100025D6E
:0200320006CEF8
:0200330006CEF7
:0200340007774C
:0200350007774B
:02003600036560
:0200370003655F
:020038000DA316
:020039000DA315
:02003A00093487
:02003B00093486
:02003C00090BAE
:02003D00090BAD
:02003E000D1C97
:02003F000D1C96
:02004000031C9F
:02004100031C9E
:02004200070BAA
:02004300070BA9
:0200440007347F
:0200450007347E
:0200460002A313
:0200470002A312
:020048000CE5C5
:020049000CE5C4
:02004A0008F7B5
:02004B0008F7B4
:02004C00094E5B
:02004D00094E5A
:02004E000DDDC6
:02004F000DDDC5
:02005000039B10
:02005100039B0F
:0200520007485D
:0200530007485C
:0200540006B1F3
:0200550006B1F2
:0200560001E2C5
:0200570001E2C4
:020058000C2674
:020059000C2673
:02005A0008BAE2
:02005B0008BAE1
:02005C00099009
:02005D00099008
:02005E000E9EF4
:02005F000E9EF3
:02006000045941
:02006100045940
:02006200078510
:0200630007850F
:02006400066E26
:02006500066E25
:02006600012275
:02006700012274
:020068000BA8E3
:020069000BA8E2
:02006A0008BDCF
:02006B0008BDCE
:02006C000A1375
:02006D000A1374
:02006E000F5E23
:02006F000F5E22
:0200700004D7B3
:0200710004D7B2
:02007200078203
:02007300078202
:0200740005EC99
:0200750005EC98
:02007600006226
:02007700006225
:020078000AEA92
:020079000AEA91
:02007A000880FC
:02007B000880FB
:02007C000A95E3
:02007D000A95E2
:02007E00001F61
:02007F00001F60
:00000001FF
:02000000001FDF
:02000100001FDE
:02000200059562
:02000300059561
:02000400078073
:02000500078072
:02000600056A89
:02000700056A88
:020008000FE205
:020009000FE204
:02000A000A6C7E
:02000B000A6C7D
:02000C00088268
:02000D00088267
:02000E000B578E
:02000F000B578D
:0200100000DE10
:0200110000DE0F
:020012000613D3
:020013000613D2
:0200140007BD26
:0200150007BD25
:0200160004A83C
:0200170004A83B
:020018000F22B5
:020019000F22B4
:02001A0009EEED
:02001B0009EEEC
:02001C00088555
:02001D00088554
:02001E000BD9FC
:02001F000BD9FB
:02002000019E3F
:02002100019E3E
:02002200069046
:02002300069045
:0200240007BA19
:0200250007BA18
:020026000426AE
:020027000426AD
:020028000E6266
:020029000E6265
:02002A0009B11A
:02002B0009B119
:02002C0008C802
:02002D0008C801
:02002E000C9B29
:02002F000C9B28
:02003000025D6F
:02003100025D6E
:0200320006CEF8
:0200330006CEF7
:0200340007774C
:0200350007774B
:02003600036560
:0200370003655F
:020038000DA316
:020039000DA315
:02003A00093487
:02003B00093486
:02003C00090BAE
:02003D00090BAD
:02003E000D1C97
:02003F000D1C96
:02004000031C9F
:02004100031C9E
:02004200070BAA
:02004300070BA9
:0200440007347F
:0200450007347E
:0200460002A313
:0200470002A312
:020048000CE5C5
:020049000CE5C4
:02004A0008F7B5
:02004B0008F7B4
:02004C00094E5B
:02004D00094E5A
:02004E000DDDC6
:02004F000DDDC5
:02005000039B10
:02005100039B0F
:0200520007485D
:0200530007485C
:0200540006B1F3
:0200550006B1F2
:0200560001E2C5
:0200570001E2C4
:020058000C2674
:020059000C2673
:02005A0008BAE2
:02005B0008BAE1
:02005C00099009
:02005D00099008
:02005E000E9EF4
:02005F000E9EF3
:02006000045941
:02006100045940
:02006200078510
:0200630007850F
:02006400066E26
:02006500066E25
:02006600012275
:02006700012274
:020068000BA8E3
:020069000BA8E2
:02006A0008BDCF
:02006B0008BDCE
:02006C000A1375
:02006D000A1374
:02006E000F5E23
:02006F000F5E22
:0200700004D7B3
:0200710004D7B2
:02007200078203
:02007300078202
:0200740005EC99
:0200750005EC98
:02007600006226
:02007700006225
:020078000AEA92
:020079000AEA91
:02007A000880FC
:02007B000880FB
:02007C000A95E3
:02007D000A95E2
:02007E00001F61
:02007F00001F60
:00000001FF
:02000000001FDF
:02000100001FDE
:02000200059562
:02000300059561
:02000400078073
:02000500078072
:02000600056A89
:02000700056A88
:020008000FE205
:020009000FE204
:02000A000A6C7E
:02000B000A6C7D
:02000C00088268
:02000D00088267
:02000E000B578E
:02000F000B578D
:0200100000DE10
:0200110000DE0F
:020012000613D3
:020013000613D2
:0200140007BD26
:0200150007BD25
:0200160004A83C
:0200170004A83B
:020018000F22B5
:020019000F22B4
:02001A0009EEED
:02001B0009EEEC
:02001C00088555
:02001D00088554
:02001E000BD9FC
:02001F000BD9FB
:02002000019E3F
:02002100019E3E
:02002200069046
:02002300069045
:0200240007BA19
:0200250007BA18
:020026000426AE
:020027000426AD
:020028000E6266
:020029000E6265
:02002A0009B11A
:02002B0009B119
:02002C0008C802
:02002D0008C801
:02002E000C9B29
:02002F000C9B28
:02003000025D6F
:02003100025D6E
:0200320006CEF8
:0200330006CEF7
:0200340007774C
:0200350007774B
:02003600036560
:0200370003655F
:020038000DA316
:020039000DA315
:02003A00093487
:02003B00093486
:02003C00090BAE
:02003D00090BAD
:02003E000D1C97
:02003F000D1C96
:02004000031C9F
:02004100031C9E
:02004200070BAA
:02004300070BA9
:0200440007347F
:0200450007347E
:0200460002A313
:0200470002A312
:020048000CE5C5
:020049000CE5C4
:02004A0008F7B5
:02004B0008F7B4
:02004C00094E5B
:02004D00094E5A
:02004E000DDDC6
:02004F000DDDC5
:02005000039B10
:02005100039B0F
:0200520007485D
:0200530007485C
:0200540006B1F3
:0200550006B1F2
:0200560001E2C5
:0200570001E2C4
:020058000C2674
:020059000C2673
:02005A0008BAE2
:02005B0008BAE1
:02005C00099009
:02005D00099008
:02005E000E9EF4
:02005F000E9EF3
:02006000045941
:02006100045940
:02006200078510
:0200630007850F
:02006400066E26
:02006500066E25
:02006600012275
:02006700012274
:020068000BA8E3
:020069000BA8E2
:02006A0008BDCF
:02006B0008BDCE
:02006C000A1375
:02006D000A1374
:02006E000F5E23
:02006F000F5E22
:0200700004D7B3
:0200710004D7B2
:02007200078203
:02007300078202
:0200740005EC99
:0200750005EC98
:02007600006226
:02007700006225
:020078000AEA92
:020079000AEA91
:02007A000880FC
:02007B000880FB
:02007C000A95E3
:02007D000A95E2
:02007E00001F61
:02007F00001F60
:00000001FF
:02000000001FDF
:02000100001FDE
:02000200059562
:02000300059561
:02000400078073
:02000500078072
:02000600056A89
:02000700056A88
:020008000FE205
:020009000FE204
:02000A000A6C7E
:02000B000A6C7D
:02000C00088268
:02000D00088267
:02000E000B578E
:02000F000B578D
:0200100000DE10
:0200110000DE0F
:020012000613D3
:020013000613D2
:0200140007BD26
:0200150007BD25
:0200160004A83C
:0200170004A83B
:020018000F22B5
:020019000F22B4
:02001A0009EEED
:02001B0009EEEC
:02001C00088555
:02001D00088554
:02001E000BD9FC
:02001F000BD9FB
:02002000019E3F
:02002100019E3E
:02002200069046
:02002300069045
:0200240007BA19
:0200250007BA18
:020026000426AE
:020027000426AD
:020028000E6266
:020029000E6265
:02002A0009B11A
:02002B0009B119
:02002C0008C802
:02002D0008C801
:02002E000C9B29
:02002F000C9B28
:02003000025D6F
:02003100025D6E
:0200320006CEF8
:0200330006CEF7
:0200340007774C
:0200350007774B
:02003600036560
:0200370003655F
:020038000DA316
:020039000DA315
:02003A00093487
:02003B00093486
:02003C00090BAE
:02003D00090BAD
:02003E000D1C97
:02003F000D1C96
:02004000031C9F
:02004100031C9E
:02004200070BAA
:02004300070BA9
:0200440007347F
:0200450007347E
:0200460002A313
:0200470002A312
:020048000CE5C5
:020049000CE5C4
:02004A0008F7B5
:02004B0008F7B4
:02004C00094E5B
:02004D00094E5A
:02004E000DDDC6
:02004F000DDDC5
:02005000039B10
:02005100039B0F
:0200520007485D
:0200530007485C
:0200540006B1F3
:0200550006B1F2
:0200560001E2C5
:0200570001E2C4
:020058000C2674
:020059000C2673
:02005A0008BAE2
:02005B0008BAE1
:02005C00099009
:02005D00099008
:02005E000E9EF4
:02005F000E9EF3
:02006000045941
:02006100045940
:02006200078510
:0200630007850F
:02006400066E26
:02006500066E25
:02006600012275
:02006700012274
:020068000BA8E3
:020069000BA8E2
:02006A0008BDCF
:02006B0008BDCE
:02006C000A1375
:02006D000A1374
:02006E000F5E23
:02006F000F5E22
:0200700004D7B3
:0200710004D7B2
:02007200078203
:02007300078202
:0200740005EC99
:0200750005EC98
:02007600006226
:02007700006225
:020078000AEA92
:020079000AEA91
:02007A000880FC
:02007B000880FB
:02007C000A95E3
:02007D000A95E2
:02007E00001F61
:02007F00001F60
:00000001FF
:02000000001FDF
:02000100001FDE
:02000200059562
:02000300059561
:02000400078073
:02000500078072
:02000600056A89
:02000700056A88
:020008000FE205
:020009000FE204
:02000A000A6C7E
:02000B000A6C7D
:02000C00088268
:02000D00088267
:02000E000B578E
:02000F000B578D
:0200100000DE10
:0200110000DE0F
:020012000613D3
:020013000613D2
:0200140007BD26
:0200150007BD25
:0200160004A83C
:0200170004A83B
:020018000F22B5
:020019000F22B4
:02001A0009EEED
:02001B0009EEEC
:02001C00088555
:02001D00088554
:02001E000BD9FC
:02001F000BD9FB
:02002000019E3F
:02002100019E3E
:02002200069046
:02002300069045
:0200240007BA19
:0200250007BA18
:020026000426AE
:020027000426AD
:020028000E6266
:020029000E6265
:02002A0009B11A
:02002B0009B119
:02002C0008C802
:02002D0008C801
:02002E000C9B29
:02002F000C9B28
:02003000025D6F
:02003100025D6E
:0200320006CEF8
:0200330006CEF7
:0200340007774C
:0200350007774B
:02003600036560
:0200370003655F
:020038000DA316
:020039000DA315
:02003A00093487
:02003B00093486
:02003C00090BAE
:02003D00090BAD
:02003E000D1C97
:02003F000D1C96
:02004000031C9F
:02004100031C9E
:02004200070BAA
:02004300070BA9
:0200440007347F
:0200450007347E
:0200460002A313
:0200470002A312
:020048000CE5C5
:020049000CE5C4
:02004A0008F7B5
:02004B0008F7B4
:02004C00094E5B
:02004D00094E5A
:02004E000DDDC6
:02004F000DDDC5
:02005000039B10
:02005100039B0F
:0200520007485D
:0200530007485C
:0200540006B1F3
:0200550006B1F2
:0200560001E2C5
:0200570001E2C4
:020058000C2674
:020059000C2673
:02005A0008BAE2
:02005B0008BAE1
:02005C00099009
:02005D00099008
:02005E000E9EF4
:02005F000E9EF3
:02006000045941
:02006100045940
:02006200078510
:0200630007850F
:02006400066E26
:02006500066E25
:02006600012275
:02006700012274
:020068000BA8E3
:020069000BA8E2
:02006A0008BDCF
:02006B0008BDCE
:02006C000A1375
:02006D000A1374
:02006E000F5E23
:02006F000F5E22
:0200700004D7B3
:0200710004D7B2
:02007200078203
:02007300078202
:0200740005EC99
:0200750005EC98
:02007600006226
:02007700006225
:020078000AEA92
:020079000AEA91
:02007A000880FC
:02007B000880FB
:02007C000A95E3
:02007D000A95E2
:02007E00001F61
:02007F00001F60
:00000001FF
:02000000001FDF
:02000100001FDE
:02000200059562
:02000300059561
:02000400078073
:02000500078072
:02000600056A89
:02000700056A88
:020008000FE205
:020009000FE204
:02000A000A6C7E
:02000B000A6C7D
:02000C00088268
:02000D00088267
:02000E000B578E
:02000F000B578D
:0200100000DE10
:0200110000DE0F
:020012000613D3
:020013000613D2
:0200140007BD26
:0200150007BD25
:0200160004A83C
:0200170004A83B
:020018000F22B5
:020019000F22B4
:02001A0009EEED
:02001B0009EEEC
:02001C00088555
:02001D00088554
:02001E000BD9FC
:02001F000BD9FB
:02002000019E3F
:02002100019E3E
:02002200069046
:02002300069045
:0200240007BA19
:0200250007BA18
:020026000426AE
:020027000426AD
:020028000E6266
:020029000E6265
:02002A0009B11A
:02002B0009B119
:02002C0008C802
:02002D0008C801
:02002E000C9B29
:02002F000C9B28
:02003000025D6F
:02003100025D6E
:0200320006CEF8
:0200330006CEF7
:0200340007774C
:0200350007774B
:02003600036560
:0200370003655F
:020038000DA316
:020039000DA315
:02003A00093487
:02003B00093486
:02003C00090BAE
:02003D00090BAD
:02003E000D1C97
:02003F000D1C96
:02004000031C9F
:02004100031C9E
:02004200070BAA
:02004300070BA9
:0200440007347F
:0200450007347E
:0200460002A313
:0200470002A312
:020048000CE5C5
:020049000CE5C4
:02004A0008F7B5
:02004B0008F7B4
:02004C00094E5B
:02004D00094E5A
:02004E000DDDC6
:02004F000DDDC5
:02005000039B10
:02005100039B0F
:0200520007485D
:0200530007485C
:0200540006B1F3
:0200550006B1F2
:0200560001E2C5
:0200570001E2C4
:020058000C2674
:020059000C2673
:02005A0008BAE2
:02005B0008BAE1
:02005C00099009
:02005D00099008
:02005E000E9EF4
:02005F000E9EF3
:02006000045941
:02006100045940
:02006200078510
:0200630007850F
:02006400066E26
:02006500066E25
:02006600012275
:02006700012274
:020068000BA8E3
:020069000BA8E2
:02006A0008BDCF
:02006B0008BDCE
:02006C000A1375
:02006D000A1374
:02006E000F5E23
:02006F000F5E22
:0200700004D7B3
:0200710004D7B2
:02007200078203
:02007300078202
:0200740005EC99
:0200750005EC98
:02007600006226
:02007700006225
:020078000AEA92
:020079000AEA91
:02007A000880FC
:02007B000880FB
:02007C000A95E3
:02007D000A95E2
:02007E00001F61
:02007F00001F60
:00000001FF
###############################################################################
#
# Copyright (C) 2014
# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
#
# This program 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 of the License, or
# (at your option) any later version.
#
# This program 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 program. If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from common import *
from common_dsp import *
from mem_init_file import list_to_hex
import matplotlib.pyplot as plt
import numpy as np
from scipy.fftpack import fft,ifft, fftfreq, fftshift
# Purpose:
# . Generate the NOF_INPUTS HEX files for the block generators that feed the WPFB
# Description:
# .
NOF_INPUTS = 12
COMPLEX_WIDTH = 6
NOF_WORDS_PER_BLOCK = 64
MEM_WIDTH = COMPLEX_WIDTH*2
MEM_DEPTH = 2*NOF_WORDS_PER_BLOCK # We're interleaving, hence twice the depth
PATH = "../hex"
FILENAME = "composite_signals"
###############################################################################
# Create a 120MHz sine wave
###############################################################################
N = NOF_WORDS_PER_BLOCK
t=range(N)
# sample spacing
T = 1.0 / N
x = np.linspace(0.0, N*T, N)
AMPL = 31 # 5 bits + sign available
# my singal
#s0 = 7 * np.exp( 1 * 1.j * 2.0*np.pi*x)
#s1 = 7 * np.exp( 5 * 1.j * 2.0*np.pi*x)
#s2 = 7 * np.exp( 10 * 1.j * 2.0*np.pi*x)
#s3 = 7 * np.exp( 15 * 1.j * 2.0*np.pi*x)
s4 = 31 * np.exp( 8 * 1.j * 2.0*np.pi*x)
s = s4 # +s1 + s2 + s3 + s4
################################################################################
## Plot the signal
################################################################################
plt.plot(t, s.real, 'b-', t, s.imag, 'r--')
plt.legend(('real', 'imaginary'))
plt.show()
#
################################################################################
## Plot FFT
################################################################################
yf = fft(s)
xf = fftfreq(N, T)
xf = fftshift(xf)
yplot = fftshift(yf)
plt.plot(xf, 1.0/N * np.abs(yplot))
plt.grid()
plt.show()
###############################################################################
# Convert complex floats to concatenated integers
###############################################################################
concat_list = concat_complex(s, COMPLEX_WIDTH)
###############################################################################
# Interleave 2 lists into one
###############################################################################
inter_list = interleave([concat_list,concat_list])
###############################################################################
# Use this list for each block generator
###############################################################################
bg_lists = NOF_INPUTS*[inter_list]
###############################################################################
# Write the HEX files
###############################################################################
for input_nr in range(NOF_INPUTS):
list_to_hex( bg_lists[input_nr], PATH+"/"+FILENAME+'_'+str(input_nr)+".hex", MEM_WIDTH, MEM_DEPTH)
...@@ -122,37 +122,35 @@ ARCHITECTURE str OF apertif_unb1_correlator IS ...@@ -122,37 +122,35 @@ ARCHITECTURE str OF apertif_unb1_correlator IS
SIGNAL eth1g_ram_mosi : t_mem_mosi; -- ETH rx frame and tx frame memory SIGNAL eth1g_ram_mosi : t_mem_mosi; -- ETH rx frame and tx frame memory
SIGNAL eth1g_ram_miso : t_mem_miso; SIGNAL eth1g_ram_miso : t_mem_miso;
-- WPFB
CONSTANT c_wpfb_wb_factor : NATURAL := 1; -- = default 1, wideband factor
CONSTANT c_wpfb_nof_wb_streams : NATURAL := 12; -- = 1, the number of parallel wideband streams. The fi
CONSTANT c_wpfb_nof_chan : NATURAL := 1; -- = default 0, defines the number of channels (=time-m
CONSTANT c_wpfb_nof_points : NATURAL := 64; -- = 1024, N point FFT
CONSTANT c_wpfb_nof_taps : NATURAL := 8; -- = 8 nof taps n the filter
CONSTANT c_wpfb_in_dat_w : NATURAL := 6; -- = 8, number of input bits
CONSTANT c_wpfb_out_dat_w : NATURAL := 12; -- = 14, number of output bits: in_dat_w + natural((cei
CONSTANT c_wpfb_use_separate : BOOLEAN := FALSE; -- = false for complex input, true for two real inputs
CONSTANT c_wpfb : t_wpfb := (c_wpfb_wb_factor, c_wpfb_nof_points, c_wpfb_nof_chan, c_wpfb_nof_wb_streams,
c_wpfb_nof_taps, c_wpfb_in_dat_w, 16, 16,
true, c_wpfb_use_separate, 16, c_wpfb_out_dat_w, 18, 2, true, 56, 2,
c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
CONSTANT c_wpfb_coefs_file_prefix : STRING := "../../../../../UniBoard/trunk/Firmware/dsp/filter/build/data/coefs_wide1_p64_t8";
-- Correlator -- Correlator
CONSTANT c_nof_inputs : NATURAL := 24; CONSTANT c_nof_inputs : NATURAL := 2;
CONSTANT c_nof_input_folds : NATURAL := 1; CONSTANT c_nof_input_folds : NATURAL := 1;
CONSTANT c_nof_input_streams : NATURAL := c_nof_inputs / pow2(c_nof_input_folds); CONSTANT c_nof_input_streams : NATURAL := c_nof_inputs / pow2(c_nof_input_folds);
CONSTANT c_nof_pre_mult_folds : NATURAL := 1; CONSTANT c_nof_pre_mult_folds : NATURAL := 1;
CONSTANT c_complex_data_w : NATURAL := 8; CONSTANT c_complex_data_w : NATURAL := 6; -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
CONSTANT c_conjugate : BOOLEAN := TRUE; CONSTANT c_conjugate : BOOLEAN := TRUE;
CONSTANT c_nof_channels : NATURAL := 64; CONSTANT c_nof_channels : NATURAL := 64;
CONSTANT c_integration_period : NATURAL := 12208; CONSTANT c_integration_period : NATURAL := 12208;
CONSTANT c_nof_visibilities : NATURAL := (c_nof_inputs*(c_nof_inputs+1))/2; CONSTANT c_nof_visibilities : NATURAL := (c_nof_inputs*(c_nof_inputs+1))/2;
-- WPFB
CONSTANT c_wpfb_wb_factor : NATURAL := 1; -- = default 1, wideband factor
CONSTANT c_wpfb_nof_wb_streams : NATURAL := c_nof_input_streams; -- = 1, the number of parallel wideband streams. The fi
CONSTANT c_wpfb_nof_chan : NATURAL := 1; -- = default 0, defines the number of channels (=time-m
CONSTANT c_wpfb_nof_points : NATURAL := 64; -- = 1024, N point FFT
CONSTANT c_wpfb_nof_taps : NATURAL := 8; -- = 8 nof taps n the filter
CONSTANT c_wpfb_in_dat_w : NATURAL := 6; -- = 8, number of input bits
CONSTANT c_wpfb_out_dat_w : NATURAL := 12; -- = 14, number of output bits: in_dat_w + natural((cei
CONSTANT c_wpfb_use_separate : BOOLEAN := FALSE; -- = false for complex input, true for two real inputs
CONSTANT c_wpfb : t_wpfb := (c_wpfb_wb_factor, c_wpfb_nof_points, c_wpfb_nof_chan, c_wpfb_nof_wb_streams,
c_wpfb_nof_taps, c_wpfb_in_dat_w, 16, 16,
true, c_wpfb_use_separate, 16, c_wpfb_out_dat_w, 18, 2, true, 56, 2,
c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
CONSTANT c_wpfb_coefs_file_prefix : STRING := "../../../../../UniBoard/trunk/Firmware/dsp/filter/build/data/coefs_wide1_p64_t8";
-- Block generator -- Block generator
CONSTANT c_bg_block_size : NATURAL := c_nof_channels*pow2(c_nof_input_folds); CONSTANT c_bg_block_size : NATURAL := c_nof_channels*pow2(c_nof_input_folds);
CONSTANT c_bg_gapsize : NATURAL := 0; CONSTANT c_bg_gapsize : NATURAL := 0;
...@@ -174,7 +172,7 @@ ARCHITECTURE str OF apertif_unb1_correlator IS ...@@ -174,7 +172,7 @@ ARCHITECTURE str OF apertif_unb1_correlator IS
TO_UVEC( 0, c_diag_bg_bsn_init_w)); TO_UVEC( 0, c_diag_bg_bsn_init_w));
SIGNAL wpfb_snk_in_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0); SIGNAL wpfb_snk_in_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0);
SIGNAL correlator_snk_in_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0); SIGNAL wpfb_src_out_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0);
SIGNAL correlator_src_out_arr : t_dp_sosi_arr(1-1 DOWNTO 0); SIGNAL correlator_src_out_arr : t_dp_sosi_arr(1-1 DOWNTO 0);
SIGNAL ram_fil_coefs_mosi : t_mem_mosi; SIGNAL ram_fil_coefs_mosi : t_mem_mosi;
...@@ -189,17 +187,13 @@ BEGIN ...@@ -189,17 +187,13 @@ BEGIN
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Block generators -- Block generators
-- . Each stream in correlator_snk_in_arr contains complex subband samples
-- from one 'antenna'.
-- . These complex subband samples are generated and converted to a HEX RAM
-- initialization file using Python, see tb/python/gen_subband_hex_files.py
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
u_mms_diag_block_gen : ENTITY diag_lib.mms_diag_block_gen u_mms_diag_block_gen : ENTITY diag_lib.mms_diag_block_gen
GENERIC MAP ( GENERIC MAP (
g_nof_output_streams => c_nof_input_streams, g_nof_output_streams => c_nof_input_streams,
g_buf_dat_w => 2*c_complex_data_w, g_buf_dat_w => 2*c_complex_data_w,
g_buf_addr_w => ceil_log2(TO_UINT(c_bg_ctrl.samples_per_packet)), g_buf_addr_w => ceil_log2(TO_UINT(c_bg_ctrl.samples_per_packet)),
g_file_name_prefix => "../../../libraries/dsp/correlator/src/hex/complex_subbands_" & NATURAL'IMAGE(c_complex_data_w) & "b_" & "fold_" & NATURAL'IMAGE(c_nof_input_folds), g_file_name_prefix => "../../../applications/apertif_unb1_correlator/src/hex/composite_signals",
g_diag_block_gen_rst => c_bg_ctrl g_diag_block_gen_rst => c_bg_ctrl
) )
PORT MAP ( PORT MAP (
...@@ -237,55 +231,74 @@ BEGIN ...@@ -237,55 +231,74 @@ BEGIN
ram_bg_data_mosi => c_mem_mosi_rst, ram_bg_data_mosi => c_mem_mosi_rst,
ram_bg_data_miso => OPEN, ram_bg_data_miso => OPEN,
in_sosi_arr => wpfb_snk_in_arr, in_sosi_arr => wpfb_snk_in_arr,
out_sosi_arr => correlator_snk_in_arr out_sosi_arr => wpfb_src_out_arr
); );
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Correlator -- Stream recorder to record the WPFB output stream to a file
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
u_correlator : ENTITY correlator_lib.correlator u_dp_stream_rec_play : ENTITY dp_lib.dp_stream_rec_play
GENERIC MAP ( GENERIC MAP (
g_nof_input_streams => c_nof_input_streams, g_sim => TRUE,
g_nof_input_folds => c_nof_input_folds, g_pass_through => FALSE,
g_nof_pre_mult_folds => c_nof_pre_mult_folds, g_rec_not_play => TRUE,
g_data_w => c_complex_data_w, g_rec_play_file => "../../../applications/apertif_unb1_correlator/tb/rec/wpfb_src_out_arr0.rec",
g_conjugate => c_conjugate, g_record_invalid => FALSE
g_nof_channels => c_nof_channels,
g_integration_period => c_integration_period
) )
PORT MAP ( PORT MAP (
clk => dp_clk, dp_clk => dp_clk,
rst => dp_rst, snk_in => wpfb_src_out_arr(0),
snk_out => OPEN,
snk_in_arr => correlator_snk_in_arr, src_out => OPEN,
src_out_arr => correlator_src_out_arr src_in => c_dp_siso_rdy
); );
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Data buffer to be read out by Python -- Correlator
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
u_diag_data_buffer : ENTITY diag_lib.mms_diag_data_buffer -- u_correlator : ENTITY correlator_lib.correlator
GENERIC MAP ( -- GENERIC MAP (
g_nof_streams => 1, -- g_nof_input_streams => c_nof_input_streams,
g_data_w => 64, -- g_nof_input_folds => c_nof_input_folds,
g_data_type => e_complex, -- g_nof_pre_mult_folds => c_nof_pre_mult_folds,
g_buf_nof_data => c_nof_visibilities, -- g_data_w => c_complex_data_w,
g_buf_use_sync => TRUE -- g_conjugate => c_conjugate,
) -- g_nof_channels => c_nof_channels,
PORT MAP ( -- g_integration_period => c_integration_period
mm_rst => mm_rst, -- )
mm_clk => mm_clk, -- PORT MAP (
dp_rst => dp_rst, -- clk => dp_clk,
dp_clk => dp_clk, -- rst => dp_rst,
--
ram_data_buf_mosi => ram_diag_data_buf_mosi, -- snk_in_arr => wpfb_src_out_arr,
ram_data_buf_miso => ram_diag_data_buf_miso, -- src_out_arr => correlator_src_out_arr
reg_data_buf_mosi => reg_diag_data_buf_mosi, -- );
reg_data_buf_miso => reg_diag_data_buf_miso, --
-- -----------------------------------------------------------------------------
in_sync => correlator_src_out_arr(0).sop, -- -- Data buffer to be read out by Python
in_sosi_arr => correlator_src_out_arr -- -----------------------------------------------------------------------------
); -- u_diag_data_buffer : ENTITY diag_lib.mms_diag_data_buffer
-- GENERIC MAP (
-- g_nof_streams => 1,
-- g_data_w => 64,
-- g_data_type => e_complex,
-- g_buf_nof_data => c_nof_visibilities,
-- g_buf_use_sync => TRUE
-- )
-- PORT MAP (
-- mm_rst => mm_rst,
-- mm_clk => mm_clk,
-- dp_rst => dp_rst,
-- dp_clk => dp_clk,
--
-- ram_data_buf_mosi => ram_diag_data_buf_mosi,
-- ram_data_buf_miso => ram_diag_data_buf_miso,
-- reg_data_buf_mosi => reg_diag_data_buf_mosi,
-- reg_data_buf_miso => reg_diag_data_buf_miso,
--
-- in_sync => correlator_src_out_arr(0).sop,
-- in_sosi_arr => correlator_src_out_arr
-- );
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- General control function -- General control function
......
from common import *
import os
import matplotlib.pyplot as plt
import numpy as np
from scipy.fftpack import fft,ifft, fftfreq, fftshift
REC_FILE = os.environ['RADIOHDL']+'/applications/apertif_unb1_correlator/tb/rec/wpfb_src_out_arr0.rec'
WPFB_OUT_DATA_WIDTH = 12
################################################################################
# Read the lines from the file and turn them into a list
################################################################################
with open (REC_FILE, "r") as recfile:
lines = recfile.read().splitlines()
################################################################################
# Extract the complex fields; create new complex list
################################################################################
complex_list = []
raw_data_int = []
raw_data_str = []
for line_nr,line in enumerate(lines):
# line = line.replace('X', '0') # Get rid of the 'X' on bit 24 (we only use 0..23)
split_line = line.split(' ')
# print split_line
str_re = split_line[3]
str_im = split_line[4]
raw_data_str.append( [str_re, str_im] )
re = to_signed(int(str_re, 32), WPFB_OUT_DATA_WIDTH)
im = to_signed(int(str_im, 32), WPFB_OUT_DATA_WIDTH)
raw_data_int.append( [re, im] )
complex_word = complex(re,im)
complex_list.append( complex_word )
################################################################################
# Split the list into chunks of 128 (note SOP/EOP tags of WPFB output are
# incorrect:64 samples/block instead of 128).
################################################################################
complex_list_128 = split_list(complex_list, 128)
f = deinterleave(complex_list_128[5], 2)[1]
#complex_list_64 = split_list(complex_list, 64)
#f = complex_list_64[6]
################################################################################
## Plot FFT
################################################################################
N=64
T = 1.0 / N
yf = fft(f)
xf = fftfreq(N, T)
xf = fftshift(xf)
yplot = fftshift(yf)
plt.plot(xf, 1.0/N * np.abs(yplot))
plt.grid()
plt.show()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment