├── DAB ├── README.md └── fl2k_transmit_dab.grc ├── DVB-T ├── README.md ├── dvbt_tx_demo.grc └── fl2k_transmit_dvb-t.grc ├── GPS ├── README.md └── fl2k_transmit_gps.grc ├── GSM ├── 0001-gr-gsm-print-PPM-error.patch ├── README.md ├── fl2k_transmit_gsm.grc └── gsm_osmo-trx_4sps.cf32.xz ├── LTE ├── fl2k_transmit_lte_band20.grc ├── fl2k_transmit_lte_band5.grc ├── srsLTE_B20_earfcn6425_5M_5.76e6.cs16.xz └── srsLTE_B5_earfcn2420_1.4M_1.92e6.cs16.xz ├── README.md └── UMTS ├── README.md ├── fl2k_transmit_umts.grc └── openbts-umts_6.25e6.cs16.xz /DAB/README.md: -------------------------------------------------------------------------------- 1 | Follow http://wiki.opendigitalradio.org/Main_Page and http://wiki.opendigitalradio.org/ODR-DabMod in order to generate an ETI file and install odr-dabmod. 2 | 3 | Then generate the DAB baseband samples with the following command: 4 | 5 | ``` 6 | odr-dabmod yourensemble.eti -l -g1 -r 2048000 -f odr-dabmod.cf32 7 | ``` 8 | 9 | After running the flowgraph to upsample the baseband samples for the fl2k, run the following command to transmit the samples: 10 | ``` 11 | fl2k_file -s 138e6 /tmp/fl2k_dab.bin 12 | ``` 13 | 14 | This results in a DAB Ensemble broadcasted at channel 6B. 15 | -------------------------------------------------------------------------------- /DAB/fl2k_transmit_dab.grc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Wed Feb 21 22:09:20 2018 5 | 6 | options 7 | 8 | author 9 | 10 | 11 | 12 | window_size 13 | 14 | 15 | 16 | category 17 | [GRC Hier Blocks] 18 | 19 | 20 | comment 21 | 22 | 23 | 24 | description 25 | 26 | 27 | 28 | _enabled 29 | True 30 | 31 | 32 | _coordinate 33 | (8, 8) 34 | 35 | 36 | _rotation 37 | 0 38 | 39 | 40 | generate_options 41 | wx_gui 42 | 43 | 44 | hier_block_src_path 45 | .: 46 | 47 | 48 | id 49 | top_block 50 | 51 | 52 | max_nouts 53 | 0 54 | 55 | 56 | qt_qss_theme 57 | 58 | 59 | 60 | realtime_scheduling 61 | 62 | 63 | 64 | run_command 65 | {python} -u {filename} 66 | 67 | 68 | run_options 69 | prompt 70 | 71 | 72 | run 73 | True 74 | 75 | 76 | sizing_mode 77 | fixed 78 | 79 | 80 | thread_safe_setters 81 | 82 | 83 | 84 | title 85 | 86 | 87 | 88 | placement 89 | (0,0) 90 | 91 | 92 | 93 | variable 94 | 95 | comment 96 | 97 | 98 | 99 | _enabled 100 | True 101 | 102 | 103 | _coordinate 104 | (8, 548) 105 | 106 | 107 | _rotation 108 | 0 109 | 110 | 111 | id 112 | arb_resamp 113 | 114 | 115 | value 116 | float(out_rate)/(float(in_rate)*float(interpolate)) 117 | 118 | 119 | 120 | variable 121 | 122 | comment 123 | 124 | 125 | 126 | _enabled 127 | True 128 | 129 | 130 | _coordinate 131 | (8, 100) 132 | 133 | 134 | _rotation 135 | 0 136 | 137 | 138 | id 139 | in_rate 140 | 141 | 142 | value 143 | 2.048e6 144 | 145 | 146 | 147 | variable 148 | 149 | comment 150 | 151 | 152 | 153 | _enabled 154 | True 155 | 156 | 157 | _coordinate 158 | (8, 484) 159 | 160 | 161 | _rotation 162 | 0 163 | 164 | 165 | id 166 | interpolate 167 | 168 | 169 | value 170 | int((out_rate/in_rate)/2) 171 | 172 | 173 | 174 | variable 175 | 176 | comment 177 | 178 | 179 | 180 | _enabled 181 | True 182 | 183 | 184 | _coordinate 185 | (8, 292) 186 | 187 | 188 | _rotation 189 | 0 190 | 191 | 192 | id 193 | n_harmonic 194 | 195 | 196 | value 197 | 1 198 | 199 | 200 | 201 | variable 202 | 203 | comment 204 | 205 | 206 | 207 | _enabled 208 | True 209 | 210 | 211 | _coordinate 212 | (8, 164) 213 | 214 | 215 | _rotation 216 | 0 217 | 218 | 219 | id 220 | out_rate 221 | 222 | 223 | value 224 | 138e6*(1+(ppm/1e6)) 225 | 226 | 227 | 228 | variable 229 | 230 | comment 231 | 232 | 233 | 234 | _enabled 235 | True 236 | 237 | 238 | _coordinate 239 | (120, 164) 240 | 241 | 242 | _rotation 243 | 0 244 | 245 | 246 | id 247 | ppm 248 | 249 | 250 | value 251 | 15 252 | 253 | 254 | 255 | variable 256 | 257 | comment 258 | 259 | 260 | 261 | _enabled 262 | True 263 | 264 | 265 | _coordinate 266 | (8, 612) 267 | 268 | 269 | _rotation 270 | 0 271 | 272 | 273 | id 274 | shift 275 | 276 | 277 | value 278 | (n_harmonic*out_rate)-tx_freq 279 | 280 | 281 | 282 | variable 283 | 284 | comment 285 | 286 | 287 | 288 | _enabled 289 | True 290 | 291 | 292 | _coordinate 293 | (8, 228) 294 | 295 | 296 | _rotation 297 | 0 298 | 299 | 300 | id 301 | tx_freq 302 | 303 | 304 | value 305 | 183.648e6 306 | 307 | 308 | 309 | analog_sig_source_x 310 | 311 | amp 312 | 1 313 | 314 | 315 | alias 316 | 317 | 318 | 319 | comment 320 | 321 | 322 | 323 | affinity 324 | 325 | 326 | 327 | _enabled 328 | 1 329 | 330 | 331 | freq 332 | shift 333 | 334 | 335 | _coordinate 336 | (360, 292) 337 | 338 | 339 | _rotation 340 | 0 341 | 342 | 343 | id 344 | analog_sig_source_x_0 345 | 346 | 347 | maxoutbuf 348 | 0 349 | 350 | 351 | minoutbuf 352 | 0 353 | 354 | 355 | offset 356 | 0 357 | 358 | 359 | type 360 | float 361 | 362 | 363 | samp_rate 364 | out_rate 365 | 366 | 367 | waveform 368 | analog.GR_COS_WAVE 369 | 370 | 371 | 372 | analog_sig_source_x 373 | 374 | amp 375 | 1 376 | 377 | 378 | alias 379 | 380 | 381 | 382 | comment 383 | 384 | 385 | 386 | affinity 387 | 388 | 389 | 390 | _enabled 391 | 1 392 | 393 | 394 | freq 395 | shift 396 | 397 | 398 | _coordinate 399 | (360, 500) 400 | 401 | 402 | _rotation 403 | 0 404 | 405 | 406 | id 407 | analog_sig_source_x_1 408 | 409 | 410 | maxoutbuf 411 | 0 412 | 413 | 414 | minoutbuf 415 | 0 416 | 417 | 418 | offset 419 | 0 420 | 421 | 422 | type 423 | float 424 | 425 | 426 | samp_rate 427 | out_rate 428 | 429 | 430 | waveform 431 | analog.GR_SIN_WAVE 432 | 433 | 434 | 435 | blocks_add_xx 436 | 437 | alias 438 | 439 | 440 | 441 | comment 442 | 443 | 444 | 445 | affinity 446 | 447 | 448 | 449 | _enabled 450 | 1 451 | 452 | 453 | _coordinate 454 | (712, 416) 455 | 456 | 457 | _rotation 458 | 0 459 | 460 | 461 | id 462 | blocks_add_xx_0 463 | 464 | 465 | type 466 | float 467 | 468 | 469 | maxoutbuf 470 | 0 471 | 472 | 473 | minoutbuf 474 | 0 475 | 476 | 477 | num_inputs 478 | 2 479 | 480 | 481 | vlen 482 | 1 483 | 484 | 485 | 486 | blocks_complex_to_float 487 | 488 | alias 489 | 490 | 491 | 492 | comment 493 | 494 | 495 | 496 | affinity 497 | 498 | 499 | 500 | _enabled 501 | 1 502 | 503 | 504 | _coordinate 505 | (360, 416) 506 | 507 | 508 | _rotation 509 | 0 510 | 511 | 512 | id 513 | blocks_complex_to_float_0 514 | 515 | 516 | maxoutbuf 517 | 0 518 | 519 | 520 | minoutbuf 521 | 0 522 | 523 | 524 | vlen 525 | 1 526 | 527 | 528 | 529 | blocks_file_sink 530 | 531 | append 532 | False 533 | 534 | 535 | alias 536 | 537 | 538 | 539 | comment 540 | 541 | 542 | 543 | affinity 544 | 545 | 546 | 547 | _enabled 548 | 1 549 | 550 | 551 | file 552 | /tmp/fl2k_dab.bin 553 | 554 | 555 | _coordinate 556 | (1016, 580) 557 | 558 | 559 | _rotation 560 | 0 561 | 562 | 563 | id 564 | blocks_file_sink_1 565 | 566 | 567 | type 568 | byte 569 | 570 | 571 | unbuffered 572 | False 573 | 574 | 575 | vlen 576 | 1 577 | 578 | 579 | 580 | blocks_file_source 581 | 582 | begin_tag 583 | pmt.PMT_NIL 584 | 585 | 586 | alias 587 | 588 | 589 | 590 | comment 591 | 592 | 593 | 594 | affinity 595 | 596 | 597 | 598 | _enabled 599 | True 600 | 601 | 602 | file 603 | odr-dabmod.cf32 604 | 605 | 606 | _coordinate 607 | (200, 84) 608 | 609 | 610 | _rotation 611 | 0 612 | 613 | 614 | id 615 | blocks_file_source_0 616 | 617 | 618 | maxoutbuf 619 | 0 620 | 621 | 622 | minoutbuf 623 | 0 624 | 625 | 626 | type 627 | complex 628 | 629 | 630 | repeat 631 | False 632 | 633 | 634 | vlen 635 | 1 636 | 637 | 638 | 639 | blocks_float_to_char 640 | 641 | alias 642 | 643 | 644 | 645 | comment 646 | 647 | 648 | 649 | affinity 650 | 651 | 652 | 653 | _enabled 654 | 1 655 | 656 | 657 | _coordinate 658 | (856, 596) 659 | 660 | 661 | _rotation 662 | 0 663 | 664 | 665 | id 666 | blocks_float_to_char_0 667 | 668 | 669 | maxoutbuf 670 | 0 671 | 672 | 673 | minoutbuf 674 | 0 675 | 676 | 677 | scale 678 | 1 679 | 680 | 681 | vlen 682 | 1 683 | 684 | 685 | 686 | blocks_multiply_const_vxx 687 | 688 | alias 689 | 690 | 691 | 692 | comment 693 | 694 | 695 | 696 | const 697 | 1/35000.0 698 | 699 | 700 | affinity 701 | 702 | 703 | 704 | _enabled 705 | True 706 | 707 | 708 | _coordinate 709 | (632, 100) 710 | 711 | 712 | _rotation 713 | 0 714 | 715 | 716 | id 717 | blocks_multiply_const_vxx_0 718 | 719 | 720 | type 721 | complex 722 | 723 | 724 | maxoutbuf 725 | 0 726 | 727 | 728 | minoutbuf 729 | 0 730 | 731 | 732 | vlen 733 | 1 734 | 735 | 736 | 737 | blocks_multiply_const_vxx 738 | 739 | alias 740 | 741 | 742 | 743 | comment 744 | 745 | 746 | 747 | const 748 | 127 749 | 750 | 751 | affinity 752 | 753 | 754 | 755 | _enabled 756 | True 757 | 758 | 759 | _coordinate 760 | (688, 540) 761 | 762 | 763 | _rotation 764 | 0 765 | 766 | 767 | id 768 | blocks_multiply_const_vxx_1 769 | 770 | 771 | type 772 | float 773 | 774 | 775 | maxoutbuf 776 | 0 777 | 778 | 779 | minoutbuf 780 | 0 781 | 782 | 783 | vlen 784 | 1 785 | 786 | 787 | 788 | blocks_multiply_xx 789 | 790 | alias 791 | 792 | 793 | 794 | comment 795 | 796 | 797 | 798 | affinity 799 | 800 | 801 | 802 | _enabled 803 | 1 804 | 805 | 806 | _coordinate 807 | (576, 384) 808 | 809 | 810 | _rotation 811 | 0 812 | 813 | 814 | id 815 | blocks_multiply_xx_0 816 | 817 | 818 | type 819 | float 820 | 821 | 822 | maxoutbuf 823 | 0 824 | 825 | 826 | minoutbuf 827 | 0 828 | 829 | 830 | num_inputs 831 | 2 832 | 833 | 834 | vlen 835 | 1 836 | 837 | 838 | 839 | blocks_multiply_xx 840 | 841 | alias 842 | 843 | 844 | 845 | comment 846 | 847 | 848 | 849 | affinity 850 | 851 | 852 | 853 | _enabled 854 | 1 855 | 856 | 857 | _coordinate 858 | (576, 448) 859 | 860 | 861 | _rotation 862 | 0 863 | 864 | 865 | id 866 | blocks_multiply_xx_1 867 | 868 | 869 | type 870 | float 871 | 872 | 873 | maxoutbuf 874 | 0 875 | 876 | 877 | minoutbuf 878 | 0 879 | 880 | 881 | num_inputs 882 | 2 883 | 884 | 885 | vlen 886 | 1 887 | 888 | 889 | 890 | blocks_threshold_ff 891 | 892 | alias 893 | 894 | 895 | 896 | comment 897 | 898 | 899 | 900 | affinity 901 | 902 | 903 | 904 | _enabled 905 | 0 906 | 907 | 908 | _coordinate 909 | (856, 460) 910 | 911 | 912 | _rotation 913 | 0 914 | 915 | 916 | high 917 | 127.1 918 | 919 | 920 | id 921 | blocks_threshold_ff_0 922 | 923 | 924 | init 925 | 0 926 | 927 | 928 | low 929 | 127 930 | 931 | 932 | maxoutbuf 933 | 0 934 | 935 | 936 | minoutbuf 937 | 0 938 | 939 | 940 | 941 | blocks_throttle 942 | 943 | alias 944 | 945 | 946 | 947 | comment 948 | 949 | 950 | 951 | affinity 952 | 953 | 954 | 955 | _enabled 956 | True 957 | 958 | 959 | _coordinate 960 | (424, 100) 961 | 962 | 963 | _rotation 964 | 0 965 | 966 | 967 | id 968 | blocks_throttle_0 969 | 970 | 971 | ignoretag 972 | True 973 | 974 | 975 | maxoutbuf 976 | 0 977 | 978 | 979 | minoutbuf 980 | 0 981 | 982 | 983 | samples_per_second 984 | in_rate 985 | 986 | 987 | type 988 | complex 989 | 990 | 991 | vlen 992 | 1 993 | 994 | 995 | 996 | pfb_arb_resampler_xxx 997 | 998 | alias 999 | 1000 | 1001 | 1002 | comment 1003 | 1004 | 1005 | 1006 | affinity 1007 | 1008 | 1009 | 1010 | _enabled 1011 | 1 1012 | 1013 | 1014 | _coordinate 1015 | (800, 76) 1016 | 1017 | 1018 | _rotation 1019 | 0 1020 | 1021 | 1022 | id 1023 | pfb_arb_resampler_xxx_0 1024 | 1025 | 1026 | maxoutbuf 1027 | 0 1028 | 1029 | 1030 | minoutbuf 1031 | 0 1032 | 1033 | 1034 | nfilts 1035 | 32 1036 | 1037 | 1038 | rrate 1039 | arb_resamp 1040 | 1041 | 1042 | samp_delay 1043 | 0 1044 | 1045 | 1046 | atten 1047 | 100 1048 | 1049 | 1050 | taps 1051 | 1052 | 1053 | 1054 | type 1055 | ccf 1056 | 1057 | 1058 | 1059 | pfb_interpolator_ccf 1060 | 1061 | atten 1062 | 90 1063 | 1064 | 1065 | alias 1066 | 1067 | 1068 | 1069 | comment 1070 | 1071 | 1072 | 1073 | affinity 1074 | 1075 | 1076 | 1077 | _enabled 1078 | 1 1079 | 1080 | 1081 | _coordinate 1082 | (152, 412) 1083 | 1084 | 1085 | _rotation 1086 | 0 1087 | 1088 | 1089 | id 1090 | pfb_interpolator_ccf_0 1091 | 1092 | 1093 | interp 1094 | interpolate 1095 | 1096 | 1097 | maxoutbuf 1098 | 0 1099 | 1100 | 1101 | minoutbuf 1102 | 0 1103 | 1104 | 1105 | samp_delay 1106 | 0 1107 | 1108 | 1109 | taps 1110 | 1111 | 1112 | 1113 | 1114 | wxgui_fftsink2 1115 | 1116 | avg_alpha 1117 | 0 1118 | 1119 | 1120 | average 1121 | False 1122 | 1123 | 1124 | baseband_freq 1125 | 0 1126 | 1127 | 1128 | alias 1129 | 1130 | 1131 | 1132 | comment 1133 | 1134 | 1135 | 1136 | affinity 1137 | 1138 | 1139 | 1140 | _enabled 1141 | 0 1142 | 1143 | 1144 | fft_size 1145 | 1024 1146 | 1147 | 1148 | freqvar 1149 | None 1150 | 1151 | 1152 | _coordinate 1153 | (1064, 204) 1154 | 1155 | 1156 | _rotation 1157 | 0 1158 | 1159 | 1160 | grid_pos 1161 | 1162 | 1163 | 1164 | id 1165 | wxgui_fftsink2_0 1166 | 1167 | 1168 | notebook 1169 | 1170 | 1171 | 1172 | peak_hold 1173 | False 1174 | 1175 | 1176 | ref_level 1177 | 0 1178 | 1179 | 1180 | ref_scale 1181 | 2.0 1182 | 1183 | 1184 | fft_rate 1185 | 15 1186 | 1187 | 1188 | samp_rate 1189 | out_rate 1190 | 1191 | 1192 | title 1193 | FFT Plot 1194 | 1195 | 1196 | type 1197 | float 1198 | 1199 | 1200 | win_size 1201 | 1202 | 1203 | 1204 | win 1205 | None 1206 | 1207 | 1208 | y_divs 1209 | 10 1210 | 1211 | 1212 | y_per_div 1213 | 10 1214 | 1215 | 1216 | 1217 | wxgui_scopesink2 1218 | 1219 | ac_couple 1220 | False 1221 | 1222 | 1223 | alias 1224 | 1225 | 1226 | 1227 | comment 1228 | 1229 | 1230 | 1231 | affinity 1232 | 1233 | 1234 | 1235 | _enabled 1236 | 0 1237 | 1238 | 1239 | _coordinate 1240 | (1064, 396) 1241 | 1242 | 1243 | _rotation 1244 | 0 1245 | 1246 | 1247 | grid_pos 1248 | 1249 | 1250 | 1251 | id 1252 | wxgui_scopesink2_1 1253 | 1254 | 1255 | notebook 1256 | 1257 | 1258 | 1259 | num_inputs 1260 | 2 1261 | 1262 | 1263 | samp_rate 1264 | out_rate 1265 | 1266 | 1267 | t_scale 1268 | 0.5 1269 | 1270 | 1271 | title 1272 | Saturation Detection 1273 | 1274 | 1275 | trig_mode 1276 | wxgui.TRIG_MODE_NORM 1277 | 1278 | 1279 | type 1280 | float 1281 | 1282 | 1283 | v_offset 1284 | 0 1285 | 1286 | 1287 | v_scale 1288 | 0.5 1289 | 1290 | 1291 | win_size 1292 | 1293 | 1294 | 1295 | xy_mode 1296 | True 1297 | 1298 | 1299 | y_axis_label 1300 | Counts 1301 | 1302 | 1303 | 1304 | analog_sig_source_x_0 1305 | blocks_multiply_xx_0 1306 | 0 1307 | 0 1308 | 1309 | 1310 | analog_sig_source_x_1 1311 | blocks_multiply_xx_1 1312 | 0 1313 | 1 1314 | 1315 | 1316 | blocks_add_xx_0 1317 | blocks_multiply_const_vxx_1 1318 | 0 1319 | 0 1320 | 1321 | 1322 | blocks_add_xx_0 1323 | wxgui_fftsink2_0 1324 | 0 1325 | 0 1326 | 1327 | 1328 | blocks_add_xx_0 1329 | wxgui_scopesink2_1 1330 | 0 1331 | 0 1332 | 1333 | 1334 | blocks_complex_to_float_0 1335 | blocks_multiply_xx_1 1336 | 1 1337 | 0 1338 | 1339 | 1340 | blocks_complex_to_float_0 1341 | blocks_multiply_xx_0 1342 | 0 1343 | 1 1344 | 1345 | 1346 | blocks_file_source_0 1347 | blocks_throttle_0 1348 | 0 1349 | 0 1350 | 1351 | 1352 | blocks_float_to_char_0 1353 | blocks_file_sink_1 1354 | 0 1355 | 0 1356 | 1357 | 1358 | blocks_multiply_const_vxx_0 1359 | pfb_arb_resampler_xxx_0 1360 | 0 1361 | 0 1362 | 1363 | 1364 | blocks_multiply_const_vxx_1 1365 | blocks_float_to_char_0 1366 | 0 1367 | 0 1368 | 1369 | 1370 | blocks_multiply_const_vxx_1 1371 | blocks_threshold_ff_0 1372 | 0 1373 | 0 1374 | 1375 | 1376 | blocks_multiply_xx_0 1377 | blocks_add_xx_0 1378 | 0 1379 | 0 1380 | 1381 | 1382 | blocks_multiply_xx_1 1383 | blocks_add_xx_0 1384 | 0 1385 | 1 1386 | 1387 | 1388 | blocks_threshold_ff_0 1389 | wxgui_scopesink2_1 1390 | 0 1391 | 1 1392 | 1393 | 1394 | blocks_throttle_0 1395 | blocks_multiply_const_vxx_0 1396 | 0 1397 | 0 1398 | 1399 | 1400 | pfb_arb_resampler_xxx_0 1401 | pfb_interpolator_ccf_0 1402 | 0 1403 | 0 1404 | 1405 | 1406 | pfb_interpolator_ccf_0 1407 | blocks_complex_to_float_0 1408 | 0 1409 | 0 1410 | 1411 | 1412 | -------------------------------------------------------------------------------- /DVB-T/README.md: -------------------------------------------------------------------------------- 1 | This flowgraph will create samples for DVB-T which can be transmitted with fl2k_file 2 | and received with rtl-sdr dongles and VLC. 3 | 4 | First, run the dvbt_tx_demo.grc flowgraph to generate DVB-T baseband samples. 5 | As a demo transport stream file (which contains the actual video), you can use 6 | https://github.com/BogdanDIA/gr-dvbt/raw/master/apps/test.ts 7 | 8 | Then upsample the baseband samples for fl2k_file with fl2k_transmit_dvb-t.grc. 9 | 10 | The signal then can be transmitted with: 11 | ``` 12 | fl2k_file -s 138e6 /tmp/fl2k_dvb-t.bin 13 | ``` 14 | 15 | This results in a DVB-T signal at 490 MHz. 16 | -------------------------------------------------------------------------------- /DVB-T/dvbt_tx_demo.grc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Thu Jan 16 23:00:58 2014 5 | 6 | options 7 | 8 | author 9 | 10 | 11 | 12 | window_size 13 | 1280, 1024 14 | 15 | 16 | category 17 | Custom 18 | 19 | 20 | comment 21 | 22 | 23 | 24 | description 25 | 26 | 27 | 28 | _enabled 29 | True 30 | 31 | 32 | _coordinate 33 | (10, 10) 34 | 35 | 36 | _rotation 37 | 0 38 | 39 | 40 | generate_options 41 | wx_gui 42 | 43 | 44 | hier_block_src_path 45 | .: 46 | 47 | 48 | id 49 | top_block 50 | 51 | 52 | max_nouts 53 | 0 54 | 55 | 56 | qt_qss_theme 57 | 58 | 59 | 60 | realtime_scheduling 61 | 62 | 63 | 64 | run_command 65 | {python} -u {filename} 66 | 67 | 68 | run_options 69 | prompt 70 | 71 | 72 | run 73 | True 74 | 75 | 76 | sizing_mode 77 | fixed 78 | 79 | 80 | thread_safe_setters 81 | 82 | 83 | 84 | title 85 | 86 | 87 | 88 | placement 89 | (0,0) 90 | 91 | 92 | 93 | variable 94 | 95 | comment 96 | 97 | 98 | 99 | _enabled 100 | True 101 | 102 | 103 | _coordinate 104 | (182, 5) 105 | 106 | 107 | _rotation 108 | 0 109 | 110 | 111 | id 112 | samp_rate 113 | 114 | 115 | value 116 | 32000 117 | 118 | 119 | 120 | blocks_file_sink 121 | 122 | append 123 | False 124 | 125 | 126 | alias 127 | 128 | 129 | 130 | comment 131 | 132 | 133 | 134 | affinity 135 | 136 | 137 | 138 | _enabled 139 | True 140 | 141 | 142 | file 143 | dvbt_bb.bin 144 | 145 | 146 | _coordinate 147 | (1055, 704) 148 | 149 | 150 | _rotation 151 | 180 152 | 153 | 154 | id 155 | blocks_file_sink_0 156 | 157 | 158 | type 159 | complex 160 | 161 | 162 | unbuffered 163 | False 164 | 165 | 166 | vlen 167 | 1 168 | 169 | 170 | 171 | blocks_file_source 172 | 173 | begin_tag 174 | pmt.PMT_NIL 175 | 176 | 177 | alias 178 | 179 | 180 | 181 | comment 182 | 183 | 184 | 185 | affinity 186 | 187 | 188 | 189 | _enabled 190 | True 191 | 192 | 193 | file 194 | gr-dvbt/apps/test.ts 195 | 196 | 197 | _coordinate 198 | (33, 107) 199 | 200 | 201 | _rotation 202 | 0 203 | 204 | 205 | id 206 | blocks_file_source_0 207 | 208 | 209 | maxoutbuf 210 | 0 211 | 212 | 213 | minoutbuf 214 | 0 215 | 216 | 217 | type 218 | byte 219 | 220 | 221 | repeat 222 | False 223 | 224 | 225 | vlen 226 | 1 227 | 228 | 229 | 230 | blocks_multiply_const_vxx 231 | 232 | alias 233 | 234 | 235 | 236 | comment 237 | 238 | 239 | 240 | const 241 | 0.0022097087 242 | 243 | 244 | affinity 245 | 246 | 247 | 248 | _enabled 249 | True 250 | 251 | 252 | _coordinate 253 | (661, 435) 254 | 255 | 256 | _rotation 257 | 0 258 | 259 | 260 | id 261 | blocks_multiply_const_vxx_0 262 | 263 | 264 | type 265 | complex 266 | 267 | 268 | maxoutbuf 269 | 0 270 | 271 | 272 | minoutbuf 273 | 0 274 | 275 | 276 | vlen 277 | 1 278 | 279 | 280 | 281 | blocks_vector_to_stream 282 | 283 | alias 284 | 285 | 286 | 287 | comment 288 | 289 | 290 | 291 | affinity 292 | 293 | 294 | 295 | _enabled 296 | True 297 | 298 | 299 | _coordinate 300 | (91, 675) 301 | 302 | 303 | _rotation 304 | 0 305 | 306 | 307 | id 308 | blocks_vector_to_stream_0 309 | 310 | 311 | type 312 | complex 313 | 314 | 315 | maxoutbuf 316 | 0 317 | 318 | 319 | minoutbuf 320 | 0 321 | 322 | 323 | num_items 324 | 2048 325 | 326 | 327 | vlen 328 | 1 329 | 330 | 331 | 332 | digital_ofdm_cyclic_prefixer 333 | 334 | alias 335 | 336 | 337 | 338 | cp_len 339 | 64 340 | 341 | 342 | comment 343 | 344 | 345 | 346 | affinity 347 | 348 | 349 | 350 | _enabled 351 | True 352 | 353 | 354 | input_size 355 | 2048 356 | 357 | 358 | _coordinate 359 | (386, 419) 360 | 361 | 362 | _rotation 363 | 0 364 | 365 | 366 | id 367 | digital_ofdm_cyclic_prefixer_0 368 | 369 | 370 | tagname 371 | 372 | 373 | 374 | maxoutbuf 375 | 0 376 | 377 | 378 | minoutbuf 379 | 0 380 | 381 | 382 | rolloff 383 | 0 384 | 385 | 386 | 387 | dtv_dvbt_bit_inner_interleaver 388 | 389 | alias 390 | 391 | 392 | 393 | comment 394 | 395 | 396 | 397 | constellation 398 | qpsk 399 | 400 | 401 | affinity 402 | 403 | 404 | 405 | _enabled 406 | True 407 | 408 | 409 | _coordinate 410 | (975, 245) 411 | 412 | 413 | _rotation 414 | 180 415 | 416 | 417 | hierarchy 418 | nh 419 | 420 | 421 | id 422 | dtv_dvbt_bit_inner_interleaver_0 423 | 424 | 425 | maxoutbuf 426 | 0 427 | 428 | 429 | minoutbuf 430 | 0 431 | 432 | 433 | transmission_mode 434 | T2k 435 | 436 | 437 | 438 | dtv_dvbt_convolutional_interleaver 439 | 440 | alias 441 | 442 | 443 | 444 | blocks 445 | 136 446 | 447 | 448 | comment 449 | 450 | 451 | 452 | affinity 453 | 454 | 455 | 456 | M 457 | 17 458 | 459 | 460 | _enabled 461 | True 462 | 463 | 464 | _coordinate 465 | (674, 99) 466 | 467 | 468 | _rotation 469 | 0 470 | 471 | 472 | id 473 | dtv_dvbt_convolutional_interleaver_0 474 | 475 | 476 | maxoutbuf 477 | 0 478 | 479 | 480 | minoutbuf 481 | 0 482 | 483 | 484 | I 485 | 12 486 | 487 | 488 | 489 | dtv_dvbt_energy_dispersal 490 | 491 | alias 492 | 493 | 494 | 495 | nsize 496 | 1 497 | 498 | 499 | comment 500 | 501 | 502 | 503 | affinity 504 | 505 | 506 | 507 | _enabled 508 | True 509 | 510 | 511 | _coordinate 512 | (242, 119) 513 | 514 | 515 | _rotation 516 | 0 517 | 518 | 519 | id 520 | dtv_dvbt_energy_dispersal_0 521 | 522 | 523 | maxoutbuf 524 | 0 525 | 526 | 527 | minoutbuf 528 | 0 529 | 530 | 531 | 532 | dtv_dvbt_inner_coder 533 | 534 | alias 535 | 536 | 537 | 538 | code_rate 539 | C1_2 540 | 541 | 542 | comment 543 | 544 | 545 | 546 | constellation 547 | qpsk 548 | 549 | 550 | affinity 551 | 552 | 553 | 554 | _enabled 555 | True 556 | 557 | 558 | _coordinate 559 | (964, 91) 560 | 561 | 562 | _rotation 563 | 0 564 | 565 | 566 | hierarchy 567 | nh 568 | 569 | 570 | id 571 | dtv_dvbt_inner_coder_0 572 | 573 | 574 | ninput 575 | 1 576 | 577 | 578 | maxoutbuf 579 | 0 580 | 581 | 582 | minoutbuf 583 | 0 584 | 585 | 586 | noutput 587 | 1512 588 | 589 | 590 | 591 | dtv_dvbt_map 592 | 593 | alias 594 | 595 | 596 | 597 | comment 598 | 599 | 600 | 601 | constellation 602 | qpsk 603 | 604 | 605 | affinity 606 | 607 | 608 | 609 | _enabled 610 | True 611 | 612 | 613 | _coordinate 614 | (375, 229) 615 | 616 | 617 | _rotation 618 | 180 619 | 620 | 621 | gain 622 | 1 623 | 624 | 625 | hierarchy 626 | nh 627 | 628 | 629 | id 630 | dtv_dvbt_map_0 631 | 632 | 633 | maxoutbuf 634 | 0 635 | 636 | 637 | minoutbuf 638 | 0 639 | 640 | 641 | transmission_mode 642 | T2k 643 | 644 | 645 | 646 | dtv_dvbt_reed_solomon_enc 647 | 648 | alias 649 | 650 | 651 | 652 | blocks 653 | 8 654 | 655 | 656 | comment 657 | 658 | 659 | 660 | affinity 661 | 662 | 663 | 664 | _enabled 665 | True 666 | 667 | 668 | gfpoly 669 | 0x11d 670 | 671 | 672 | _coordinate 673 | (469, 67) 674 | 675 | 676 | _rotation 677 | 0 678 | 679 | 680 | id 681 | dtv_dvbt_reed_solomon_enc_0 682 | 683 | 684 | k 685 | 239 686 | 687 | 688 | maxoutbuf 689 | 0 690 | 691 | 692 | minoutbuf 693 | 0 694 | 695 | 696 | n 697 | 255 698 | 699 | 700 | s 701 | 51 702 | 703 | 704 | m 705 | 8 706 | 707 | 708 | p 709 | 2 710 | 711 | 712 | t 713 | 8 714 | 715 | 716 | 717 | dtv_dvbt_reference_signals 718 | 719 | alias 720 | 721 | 722 | 723 | cell_id 724 | 0 725 | 726 | 727 | code_rate_hp 728 | C1_2 729 | 730 | 731 | code_rate_lp 732 | C1_2 733 | 734 | 735 | comment 736 | 737 | 738 | 739 | constellation 740 | qpsk 741 | 742 | 743 | affinity 744 | 745 | 746 | 747 | _enabled 748 | True 749 | 750 | 751 | _coordinate 752 | (53, 189) 753 | 754 | 755 | _rotation 756 | 180 757 | 758 | 759 | guard_interval 760 | GI_1_32 761 | 762 | 763 | hierarchy 764 | nh 765 | 766 | 767 | id 768 | dtv_dvbt_reference_signals_0 769 | 770 | 771 | type 772 | complex 773 | 774 | 775 | include_cell_id 776 | call_id_yes 777 | 778 | 779 | maxoutbuf 780 | 0 781 | 782 | 783 | minoutbuf 784 | 0 785 | 786 | 787 | transmission_mode 788 | T2k 789 | 790 | 791 | 792 | dtv_dvbt_symbol_inner_interleaver 793 | 794 | alias 795 | 796 | 797 | 798 | comment 799 | 800 | 801 | 802 | affinity 803 | 804 | 805 | 806 | direction 807 | Interleave 808 | 809 | 810 | _enabled 811 | True 812 | 813 | 814 | _coordinate 815 | (673, 245) 816 | 817 | 818 | _rotation 819 | 180 820 | 821 | 822 | id 823 | dtv_dvbt_symbol_inner_interleaver_0 824 | 825 | 826 | maxoutbuf 827 | 0 828 | 829 | 830 | minoutbuf 831 | 0 832 | 833 | 834 | transmission_mode 835 | T2k 836 | 837 | 838 | 839 | fft_vxx 840 | 841 | alias 842 | 843 | 844 | 845 | comment 846 | 847 | 848 | 849 | affinity 850 | 851 | 852 | 853 | _enabled 854 | True 855 | 856 | 857 | fft_size 858 | 2048 859 | 860 | 861 | forward 862 | False 863 | 864 | 865 | _coordinate 866 | (73, 403) 867 | 868 | 869 | _rotation 870 | 0 871 | 872 | 873 | id 874 | fft_vxx_0 875 | 876 | 877 | type 878 | complex 879 | 880 | 881 | maxoutbuf 882 | 0 883 | 884 | 885 | minoutbuf 886 | 0 887 | 888 | 889 | nthreads 890 | 10 891 | 892 | 893 | shift 894 | True 895 | 896 | 897 | window 898 | window.rectangular(2048) 899 | 900 | 901 | 902 | rational_resampler_xxx 903 | 904 | alias 905 | 906 | 907 | 908 | comment 909 | 910 | 911 | 912 | affinity 913 | 914 | 915 | 916 | decim 917 | 64 918 | 919 | 920 | _enabled 921 | True 922 | 923 | 924 | fbw 925 | 0 926 | 927 | 928 | _coordinate 929 | (928, 411) 930 | 931 | 932 | _rotation 933 | 0 934 | 935 | 936 | id 937 | rational_resampler_xxx_0 938 | 939 | 940 | interp 941 | 70 942 | 943 | 944 | maxoutbuf 945 | 0 946 | 947 | 948 | minoutbuf 949 | 0 950 | 951 | 952 | taps 953 | 954 | 955 | 956 | type 957 | ccc 958 | 959 | 960 | 961 | wxgui_fftsink2 962 | 963 | avg_alpha 964 | 0 965 | 966 | 967 | average 968 | False 969 | 970 | 971 | baseband_freq 972 | 1200e6 973 | 974 | 975 | alias 976 | 977 | 978 | 979 | comment 980 | 981 | 982 | 983 | affinity 984 | 985 | 986 | 987 | _enabled 988 | True 989 | 990 | 991 | fft_size 992 | 1024 993 | 994 | 995 | freqvar 996 | None 997 | 998 | 999 | _coordinate 1000 | (805, 586) 1001 | 1002 | 1003 | _rotation 1004 | 180 1005 | 1006 | 1007 | grid_pos 1008 | 1009 | 1010 | 1011 | id 1012 | wxgui_fftsink2_0 1013 | 1014 | 1015 | notebook 1016 | 1017 | 1018 | 1019 | peak_hold 1020 | False 1021 | 1022 | 1023 | ref_level 1024 | 0 1025 | 1026 | 1027 | ref_scale 1028 | 2.0 1029 | 1030 | 1031 | fft_rate 1032 | 15 1033 | 1034 | 1035 | samp_rate 1036 | 10e6 1037 | 1038 | 1039 | title 1040 | FFT Plot 1041 | 1042 | 1043 | type 1044 | complex 1045 | 1046 | 1047 | win_size 1048 | 1049 | 1050 | 1051 | win 1052 | None 1053 | 1054 | 1055 | y_divs 1056 | 10 1057 | 1058 | 1059 | y_per_div 1060 | 10 1061 | 1062 | 1063 | 1064 | wxgui_scopesink2 1065 | 1066 | ac_couple 1067 | False 1068 | 1069 | 1070 | alias 1071 | 1072 | 1073 | 1074 | comment 1075 | 1076 | 1077 | 1078 | affinity 1079 | 1080 | 1081 | 1082 | _enabled 1083 | True 1084 | 1085 | 1086 | _coordinate 1087 | (295, 643) 1088 | 1089 | 1090 | _rotation 1091 | 0 1092 | 1093 | 1094 | grid_pos 1095 | 1096 | 1097 | 1098 | id 1099 | wxgui_scopesink2_0 1100 | 1101 | 1102 | notebook 1103 | 1104 | 1105 | 1106 | num_inputs 1107 | 1 1108 | 1109 | 1110 | samp_rate 1111 | samp_rate 1112 | 1113 | 1114 | t_scale 1115 | 0 1116 | 1117 | 1118 | title 1119 | Scope Plot 1120 | 1121 | 1122 | trig_mode 1123 | wxgui.TRIG_MODE_AUTO 1124 | 1125 | 1126 | type 1127 | complex 1128 | 1129 | 1130 | v_offset 1131 | 0 1132 | 1133 | 1134 | v_scale 1135 | 0 1136 | 1137 | 1138 | win_size 1139 | 1140 | 1141 | 1142 | xy_mode 1143 | True 1144 | 1145 | 1146 | y_axis_label 1147 | Counts 1148 | 1149 | 1150 | 1151 | blocks_file_source_0 1152 | dtv_dvbt_energy_dispersal_0 1153 | 0 1154 | 0 1155 | 1156 | 1157 | blocks_multiply_const_vxx_0 1158 | rational_resampler_xxx_0 1159 | 0 1160 | 0 1161 | 1162 | 1163 | blocks_vector_to_stream_0 1164 | wxgui_scopesink2_0 1165 | 0 1166 | 0 1167 | 1168 | 1169 | digital_ofdm_cyclic_prefixer_0 1170 | blocks_multiply_const_vxx_0 1171 | 0 1172 | 0 1173 | 1174 | 1175 | dtv_dvbt_bit_inner_interleaver_0 1176 | dtv_dvbt_symbol_inner_interleaver_0 1177 | 0 1178 | 0 1179 | 1180 | 1181 | dtv_dvbt_convolutional_interleaver_0 1182 | dtv_dvbt_inner_coder_0 1183 | 0 1184 | 0 1185 | 1186 | 1187 | dtv_dvbt_energy_dispersal_0 1188 | dtv_dvbt_reed_solomon_enc_0 1189 | 0 1190 | 0 1191 | 1192 | 1193 | dtv_dvbt_inner_coder_0 1194 | dtv_dvbt_bit_inner_interleaver_0 1195 | 0 1196 | 0 1197 | 1198 | 1199 | dtv_dvbt_map_0 1200 | dtv_dvbt_reference_signals_0 1201 | 0 1202 | 0 1203 | 1204 | 1205 | dtv_dvbt_reed_solomon_enc_0 1206 | dtv_dvbt_convolutional_interleaver_0 1207 | 0 1208 | 0 1209 | 1210 | 1211 | dtv_dvbt_reference_signals_0 1212 | blocks_vector_to_stream_0 1213 | 0 1214 | 0 1215 | 1216 | 1217 | dtv_dvbt_reference_signals_0 1218 | fft_vxx_0 1219 | 0 1220 | 0 1221 | 1222 | 1223 | dtv_dvbt_symbol_inner_interleaver_0 1224 | dtv_dvbt_map_0 1225 | 0 1226 | 0 1227 | 1228 | 1229 | fft_vxx_0 1230 | digital_ofdm_cyclic_prefixer_0 1231 | 0 1232 | 0 1233 | 1234 | 1235 | rational_resampler_xxx_0 1236 | blocks_file_sink_0 1237 | 0 1238 | 0 1239 | 1240 | 1241 | rational_resampler_xxx_0 1242 | wxgui_fftsink2_0 1243 | 0 1244 | 0 1245 | 1246 | 1247 | -------------------------------------------------------------------------------- /DVB-T/fl2k_transmit_dvb-t.grc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Wed Feb 21 22:09:20 2018 5 | 6 | options 7 | 8 | author 9 | 10 | 11 | 12 | window_size 13 | 14 | 15 | 16 | category 17 | [GRC Hier Blocks] 18 | 19 | 20 | comment 21 | 22 | 23 | 24 | description 25 | 26 | 27 | 28 | _enabled 29 | True 30 | 31 | 32 | _coordinate 33 | (8, 8) 34 | 35 | 36 | _rotation 37 | 0 38 | 39 | 40 | generate_options 41 | wx_gui 42 | 43 | 44 | hier_block_src_path 45 | .: 46 | 47 | 48 | id 49 | top_block 50 | 51 | 52 | max_nouts 53 | 0 54 | 55 | 56 | qt_qss_theme 57 | 58 | 59 | 60 | realtime_scheduling 61 | 62 | 63 | 64 | run_command 65 | {python} -u {filename} 66 | 67 | 68 | run_options 69 | prompt 70 | 71 | 72 | run 73 | True 74 | 75 | 76 | sizing_mode 77 | fixed 78 | 79 | 80 | thread_safe_setters 81 | 82 | 83 | 84 | title 85 | 86 | 87 | 88 | placement 89 | (0,0) 90 | 91 | 92 | 93 | variable 94 | 95 | comment 96 | 97 | 98 | 99 | _enabled 100 | True 101 | 102 | 103 | _coordinate 104 | (8, 548) 105 | 106 | 107 | _rotation 108 | 0 109 | 110 | 111 | id 112 | arb_resamp 113 | 114 | 115 | value 116 | float(out_rate)/(float(in_rate)*float(interpolate)) 117 | 118 | 119 | 120 | variable 121 | 122 | comment 123 | 124 | 125 | 126 | _enabled 127 | True 128 | 129 | 130 | _coordinate 131 | (8, 100) 132 | 133 | 134 | _rotation 135 | 0 136 | 137 | 138 | id 139 | in_rate 140 | 141 | 142 | value 143 | 10e6 144 | 145 | 146 | 147 | variable 148 | 149 | comment 150 | 151 | 152 | 153 | _enabled 154 | True 155 | 156 | 157 | _coordinate 158 | (8, 484) 159 | 160 | 161 | _rotation 162 | 0 163 | 164 | 165 | id 166 | interpolate 167 | 168 | 169 | value 170 | int((out_rate/in_rate)/2) 171 | 172 | 173 | 174 | variable 175 | 176 | comment 177 | 178 | 179 | 180 | _enabled 181 | True 182 | 183 | 184 | _coordinate 185 | (8, 292) 186 | 187 | 188 | _rotation 189 | 0 190 | 191 | 192 | id 193 | n_harmonic 194 | 195 | 196 | value 197 | 3 198 | 199 | 200 | 201 | variable 202 | 203 | comment 204 | 205 | 206 | 207 | _enabled 208 | True 209 | 210 | 211 | _coordinate 212 | (8, 164) 213 | 214 | 215 | _rotation 216 | 0 217 | 218 | 219 | id 220 | out_rate 221 | 222 | 223 | value 224 | 138e6*(1+(ppm/1e6)) 225 | 226 | 227 | 228 | variable 229 | 230 | comment 231 | 232 | 233 | 234 | _enabled 235 | True 236 | 237 | 238 | _coordinate 239 | (120, 164) 240 | 241 | 242 | _rotation 243 | 0 244 | 245 | 246 | id 247 | ppm 248 | 249 | 250 | value 251 | 15 252 | 253 | 254 | 255 | variable 256 | 257 | comment 258 | 259 | 260 | 261 | _enabled 262 | True 263 | 264 | 265 | _coordinate 266 | (8, 612) 267 | 268 | 269 | _rotation 270 | 0 271 | 272 | 273 | id 274 | shift 275 | 276 | 277 | value 278 | (n_harmonic*out_rate)-tx_freq 279 | 280 | 281 | 282 | variable 283 | 284 | comment 285 | 286 | 287 | 288 | _enabled 289 | True 290 | 291 | 292 | _coordinate 293 | (8, 228) 294 | 295 | 296 | _rotation 297 | 0 298 | 299 | 300 | id 301 | tx_freq 302 | 303 | 304 | value 305 | 490e6 306 | 307 | 308 | 309 | analog_sig_source_x 310 | 311 | amp 312 | 1 313 | 314 | 315 | alias 316 | 317 | 318 | 319 | comment 320 | 321 | 322 | 323 | affinity 324 | 325 | 326 | 327 | _enabled 328 | 1 329 | 330 | 331 | freq 332 | shift 333 | 334 | 335 | _coordinate 336 | (360, 292) 337 | 338 | 339 | _rotation 340 | 0 341 | 342 | 343 | id 344 | analog_sig_source_x_0 345 | 346 | 347 | maxoutbuf 348 | 0 349 | 350 | 351 | minoutbuf 352 | 0 353 | 354 | 355 | offset 356 | 0 357 | 358 | 359 | type 360 | float 361 | 362 | 363 | samp_rate 364 | out_rate 365 | 366 | 367 | waveform 368 | analog.GR_COS_WAVE 369 | 370 | 371 | 372 | analog_sig_source_x 373 | 374 | amp 375 | 1 376 | 377 | 378 | alias 379 | 380 | 381 | 382 | comment 383 | 384 | 385 | 386 | affinity 387 | 388 | 389 | 390 | _enabled 391 | 1 392 | 393 | 394 | freq 395 | shift 396 | 397 | 398 | _coordinate 399 | (360, 500) 400 | 401 | 402 | _rotation 403 | 0 404 | 405 | 406 | id 407 | analog_sig_source_x_1 408 | 409 | 410 | maxoutbuf 411 | 0 412 | 413 | 414 | minoutbuf 415 | 0 416 | 417 | 418 | offset 419 | 0 420 | 421 | 422 | type 423 | float 424 | 425 | 426 | samp_rate 427 | out_rate 428 | 429 | 430 | waveform 431 | analog.GR_SIN_WAVE 432 | 433 | 434 | 435 | blocks_add_xx 436 | 437 | alias 438 | 439 | 440 | 441 | comment 442 | 443 | 444 | 445 | affinity 446 | 447 | 448 | 449 | _enabled 450 | 1 451 | 452 | 453 | _coordinate 454 | (712, 416) 455 | 456 | 457 | _rotation 458 | 0 459 | 460 | 461 | id 462 | blocks_add_xx_0 463 | 464 | 465 | type 466 | float 467 | 468 | 469 | maxoutbuf 470 | 0 471 | 472 | 473 | minoutbuf 474 | 0 475 | 476 | 477 | num_inputs 478 | 2 479 | 480 | 481 | vlen 482 | 1 483 | 484 | 485 | 486 | blocks_complex_to_float 487 | 488 | alias 489 | 490 | 491 | 492 | comment 493 | 494 | 495 | 496 | affinity 497 | 498 | 499 | 500 | _enabled 501 | 1 502 | 503 | 504 | _coordinate 505 | (360, 416) 506 | 507 | 508 | _rotation 509 | 0 510 | 511 | 512 | id 513 | blocks_complex_to_float_0 514 | 515 | 516 | maxoutbuf 517 | 0 518 | 519 | 520 | minoutbuf 521 | 0 522 | 523 | 524 | vlen 525 | 1 526 | 527 | 528 | 529 | blocks_file_sink 530 | 531 | append 532 | False 533 | 534 | 535 | alias 536 | 537 | 538 | 539 | comment 540 | 541 | 542 | 543 | affinity 544 | 545 | 546 | 547 | _enabled 548 | 1 549 | 550 | 551 | file 552 | /tmp/fl2k_dvb-t.bin 553 | 554 | 555 | _coordinate 556 | (1016, 580) 557 | 558 | 559 | _rotation 560 | 0 561 | 562 | 563 | id 564 | blocks_file_sink_1 565 | 566 | 567 | type 568 | byte 569 | 570 | 571 | unbuffered 572 | False 573 | 574 | 575 | vlen 576 | 1 577 | 578 | 579 | 580 | blocks_file_source 581 | 582 | begin_tag 583 | pmt.PMT_NIL 584 | 585 | 586 | alias 587 | 588 | 589 | 590 | comment 591 | 592 | 593 | 594 | affinity 595 | 596 | 597 | 598 | _enabled 599 | True 600 | 601 | 602 | file 603 | dvbt_bb.bin 604 | 605 | 606 | _coordinate 607 | (200, 84) 608 | 609 | 610 | _rotation 611 | 0 612 | 613 | 614 | id 615 | blocks_file_source_0 616 | 617 | 618 | maxoutbuf 619 | 0 620 | 621 | 622 | minoutbuf 623 | 0 624 | 625 | 626 | type 627 | complex 628 | 629 | 630 | repeat 631 | False 632 | 633 | 634 | vlen 635 | 1 636 | 637 | 638 | 639 | blocks_float_to_char 640 | 641 | alias 642 | 643 | 644 | 645 | comment 646 | 647 | 648 | 649 | affinity 650 | 651 | 652 | 653 | _enabled 654 | 1 655 | 656 | 657 | _coordinate 658 | (856, 596) 659 | 660 | 661 | _rotation 662 | 0 663 | 664 | 665 | id 666 | blocks_float_to_char_0 667 | 668 | 669 | maxoutbuf 670 | 0 671 | 672 | 673 | minoutbuf 674 | 0 675 | 676 | 677 | scale 678 | 1 679 | 680 | 681 | vlen 682 | 1 683 | 684 | 685 | 686 | blocks_multiply_const_vxx 687 | 688 | alias 689 | 690 | 691 | 692 | comment 693 | 694 | 695 | 696 | const 697 | 3.6 698 | 699 | 700 | affinity 701 | 702 | 703 | 704 | _enabled 705 | True 706 | 707 | 708 | _coordinate 709 | (632, 100) 710 | 711 | 712 | _rotation 713 | 0 714 | 715 | 716 | id 717 | blocks_multiply_const_vxx_0 718 | 719 | 720 | type 721 | complex 722 | 723 | 724 | maxoutbuf 725 | 0 726 | 727 | 728 | minoutbuf 729 | 0 730 | 731 | 732 | vlen 733 | 1 734 | 735 | 736 | 737 | blocks_multiply_const_vxx 738 | 739 | alias 740 | 741 | 742 | 743 | comment 744 | 745 | 746 | 747 | const 748 | 127 749 | 750 | 751 | affinity 752 | 753 | 754 | 755 | _enabled 756 | True 757 | 758 | 759 | _coordinate 760 | (688, 540) 761 | 762 | 763 | _rotation 764 | 0 765 | 766 | 767 | id 768 | blocks_multiply_const_vxx_1 769 | 770 | 771 | type 772 | float 773 | 774 | 775 | maxoutbuf 776 | 0 777 | 778 | 779 | minoutbuf 780 | 0 781 | 782 | 783 | vlen 784 | 1 785 | 786 | 787 | 788 | blocks_multiply_xx 789 | 790 | alias 791 | 792 | 793 | 794 | comment 795 | 796 | 797 | 798 | affinity 799 | 800 | 801 | 802 | _enabled 803 | 1 804 | 805 | 806 | _coordinate 807 | (576, 384) 808 | 809 | 810 | _rotation 811 | 0 812 | 813 | 814 | id 815 | blocks_multiply_xx_0 816 | 817 | 818 | type 819 | float 820 | 821 | 822 | maxoutbuf 823 | 0 824 | 825 | 826 | minoutbuf 827 | 0 828 | 829 | 830 | num_inputs 831 | 2 832 | 833 | 834 | vlen 835 | 1 836 | 837 | 838 | 839 | blocks_multiply_xx 840 | 841 | alias 842 | 843 | 844 | 845 | comment 846 | 847 | 848 | 849 | affinity 850 | 851 | 852 | 853 | _enabled 854 | 1 855 | 856 | 857 | _coordinate 858 | (576, 448) 859 | 860 | 861 | _rotation 862 | 0 863 | 864 | 865 | id 866 | blocks_multiply_xx_1 867 | 868 | 869 | type 870 | float 871 | 872 | 873 | maxoutbuf 874 | 0 875 | 876 | 877 | minoutbuf 878 | 0 879 | 880 | 881 | num_inputs 882 | 2 883 | 884 | 885 | vlen 886 | 1 887 | 888 | 889 | 890 | blocks_threshold_ff 891 | 892 | alias 893 | 894 | 895 | 896 | comment 897 | 898 | 899 | 900 | affinity 901 | 902 | 903 | 904 | _enabled 905 | 1 906 | 907 | 908 | _coordinate 909 | (856, 460) 910 | 911 | 912 | _rotation 913 | 0 914 | 915 | 916 | high 917 | 127.1 918 | 919 | 920 | id 921 | blocks_threshold_ff_0 922 | 923 | 924 | init 925 | 0 926 | 927 | 928 | low 929 | 127 930 | 931 | 932 | maxoutbuf 933 | 0 934 | 935 | 936 | minoutbuf 937 | 0 938 | 939 | 940 | 941 | blocks_throttle 942 | 943 | alias 944 | 945 | 946 | 947 | comment 948 | 949 | 950 | 951 | affinity 952 | 953 | 954 | 955 | _enabled 956 | True 957 | 958 | 959 | _coordinate 960 | (424, 100) 961 | 962 | 963 | _rotation 964 | 0 965 | 966 | 967 | id 968 | blocks_throttle_0 969 | 970 | 971 | ignoretag 972 | True 973 | 974 | 975 | maxoutbuf 976 | 0 977 | 978 | 979 | minoutbuf 980 | 0 981 | 982 | 983 | samples_per_second 984 | in_rate 985 | 986 | 987 | type 988 | complex 989 | 990 | 991 | vlen 992 | 1 993 | 994 | 995 | 996 | pfb_arb_resampler_xxx 997 | 998 | alias 999 | 1000 | 1001 | 1002 | comment 1003 | 1004 | 1005 | 1006 | affinity 1007 | 1008 | 1009 | 1010 | _enabled 1011 | 1 1012 | 1013 | 1014 | _coordinate 1015 | (800, 76) 1016 | 1017 | 1018 | _rotation 1019 | 0 1020 | 1021 | 1022 | id 1023 | pfb_arb_resampler_xxx_0 1024 | 1025 | 1026 | maxoutbuf 1027 | 0 1028 | 1029 | 1030 | minoutbuf 1031 | 0 1032 | 1033 | 1034 | nfilts 1035 | 32 1036 | 1037 | 1038 | rrate 1039 | arb_resamp 1040 | 1041 | 1042 | samp_delay 1043 | 0 1044 | 1045 | 1046 | atten 1047 | 100 1048 | 1049 | 1050 | taps 1051 | 1052 | 1053 | 1054 | type 1055 | ccf 1056 | 1057 | 1058 | 1059 | pfb_interpolator_ccf 1060 | 1061 | atten 1062 | 90 1063 | 1064 | 1065 | alias 1066 | 1067 | 1068 | 1069 | comment 1070 | 1071 | 1072 | 1073 | affinity 1074 | 1075 | 1076 | 1077 | _enabled 1078 | 1 1079 | 1080 | 1081 | _coordinate 1082 | (152, 412) 1083 | 1084 | 1085 | _rotation 1086 | 0 1087 | 1088 | 1089 | id 1090 | pfb_interpolator_ccf_0 1091 | 1092 | 1093 | interp 1094 | interpolate 1095 | 1096 | 1097 | maxoutbuf 1098 | 0 1099 | 1100 | 1101 | minoutbuf 1102 | 0 1103 | 1104 | 1105 | samp_delay 1106 | 0 1107 | 1108 | 1109 | taps 1110 | 1111 | 1112 | 1113 | 1114 | wxgui_fftsink2 1115 | 1116 | avg_alpha 1117 | 0 1118 | 1119 | 1120 | average 1121 | False 1122 | 1123 | 1124 | baseband_freq 1125 | 0 1126 | 1127 | 1128 | alias 1129 | 1130 | 1131 | 1132 | comment 1133 | 1134 | 1135 | 1136 | affinity 1137 | 1138 | 1139 | 1140 | _enabled 1141 | 1 1142 | 1143 | 1144 | fft_size 1145 | 1024 1146 | 1147 | 1148 | freqvar 1149 | None 1150 | 1151 | 1152 | _coordinate 1153 | (1064, 204) 1154 | 1155 | 1156 | _rotation 1157 | 0 1158 | 1159 | 1160 | grid_pos 1161 | 1162 | 1163 | 1164 | id 1165 | wxgui_fftsink2_0 1166 | 1167 | 1168 | notebook 1169 | 1170 | 1171 | 1172 | peak_hold 1173 | False 1174 | 1175 | 1176 | ref_level 1177 | 0 1178 | 1179 | 1180 | ref_scale 1181 | 2.0 1182 | 1183 | 1184 | fft_rate 1185 | 15 1186 | 1187 | 1188 | samp_rate 1189 | out_rate 1190 | 1191 | 1192 | title 1193 | FFT Plot 1194 | 1195 | 1196 | type 1197 | float 1198 | 1199 | 1200 | win_size 1201 | 1202 | 1203 | 1204 | win 1205 | None 1206 | 1207 | 1208 | y_divs 1209 | 10 1210 | 1211 | 1212 | y_per_div 1213 | 10 1214 | 1215 | 1216 | 1217 | wxgui_scopesink2 1218 | 1219 | ac_couple 1220 | False 1221 | 1222 | 1223 | alias 1224 | 1225 | 1226 | 1227 | comment 1228 | 1229 | 1230 | 1231 | affinity 1232 | 1233 | 1234 | 1235 | _enabled 1236 | 1 1237 | 1238 | 1239 | _coordinate 1240 | (1064, 396) 1241 | 1242 | 1243 | _rotation 1244 | 0 1245 | 1246 | 1247 | grid_pos 1248 | 1249 | 1250 | 1251 | id 1252 | wxgui_scopesink2_1 1253 | 1254 | 1255 | notebook 1256 | 1257 | 1258 | 1259 | num_inputs 1260 | 2 1261 | 1262 | 1263 | samp_rate 1264 | out_rate 1265 | 1266 | 1267 | t_scale 1268 | 0.5 1269 | 1270 | 1271 | title 1272 | Saturation Detection 1273 | 1274 | 1275 | trig_mode 1276 | wxgui.TRIG_MODE_NORM 1277 | 1278 | 1279 | type 1280 | float 1281 | 1282 | 1283 | v_offset 1284 | 0 1285 | 1286 | 1287 | v_scale 1288 | 0.5 1289 | 1290 | 1291 | win_size 1292 | 1293 | 1294 | 1295 | xy_mode 1296 | True 1297 | 1298 | 1299 | y_axis_label 1300 | Counts 1301 | 1302 | 1303 | 1304 | analog_sig_source_x_0 1305 | blocks_multiply_xx_0 1306 | 0 1307 | 0 1308 | 1309 | 1310 | analog_sig_source_x_1 1311 | blocks_multiply_xx_1 1312 | 0 1313 | 1 1314 | 1315 | 1316 | blocks_add_xx_0 1317 | blocks_multiply_const_vxx_1 1318 | 0 1319 | 0 1320 | 1321 | 1322 | blocks_add_xx_0 1323 | wxgui_fftsink2_0 1324 | 0 1325 | 0 1326 | 1327 | 1328 | blocks_add_xx_0 1329 | wxgui_scopesink2_1 1330 | 0 1331 | 0 1332 | 1333 | 1334 | blocks_complex_to_float_0 1335 | blocks_multiply_xx_1 1336 | 1 1337 | 0 1338 | 1339 | 1340 | blocks_complex_to_float_0 1341 | blocks_multiply_xx_0 1342 | 0 1343 | 1 1344 | 1345 | 1346 | blocks_file_source_0 1347 | blocks_throttle_0 1348 | 0 1349 | 0 1350 | 1351 | 1352 | blocks_float_to_char_0 1353 | blocks_file_sink_1 1354 | 0 1355 | 0 1356 | 1357 | 1358 | blocks_multiply_const_vxx_0 1359 | pfb_arb_resampler_xxx_0 1360 | 0 1361 | 0 1362 | 1363 | 1364 | blocks_multiply_const_vxx_1 1365 | blocks_float_to_char_0 1366 | 0 1367 | 0 1368 | 1369 | 1370 | blocks_multiply_const_vxx_1 1371 | blocks_threshold_ff_0 1372 | 0 1373 | 0 1374 | 1375 | 1376 | blocks_multiply_xx_0 1377 | blocks_add_xx_0 1378 | 0 1379 | 0 1380 | 1381 | 1382 | blocks_multiply_xx_1 1383 | blocks_add_xx_0 1384 | 0 1385 | 1 1386 | 1387 | 1388 | blocks_threshold_ff_0 1389 | wxgui_scopesink2_1 1390 | 0 1391 | 1 1392 | 1393 | 1394 | blocks_throttle_0 1395 | blocks_multiply_const_vxx_0 1396 | 0 1397 | 0 1398 | 1399 | 1400 | pfb_arb_resampler_xxx_0 1401 | pfb_interpolator_ccf_0 1402 | 0 1403 | 0 1404 | 1405 | 1406 | pfb_interpolator_ccf_0 1407 | blocks_complex_to_float_0 1408 | 0 1409 | 0 1410 | 1411 | 1412 | -------------------------------------------------------------------------------- /GPS/README.md: -------------------------------------------------------------------------------- 1 | This flowgraph is using https://github.com/osqzss/gps-sdr-sim to generate the 2 | samples needed for transmission. 3 | 4 | First run gps-sdr-sim to generate GPS baseband samples: 5 | 6 | ``` 7 | gps-sdr-sim -e brdc3540.14n -l 30.286502,120.032669,100 8 | ``` 9 | 10 | Then upsample them with the GNU Radio flowgraph. It's important to set the ppm variable with the value of your dongle, see the main README.md for details. 11 | 12 | You need to generate at least 15-20 GB of samples for fl2k_file, as the GPS receiver needs at least a minute before acquiring a fix. 13 | 14 | Put your phone really close to the device and play back the samples with: 15 | 16 | ``` 17 | fl2k_file -s 138e6 /tmp/fl2k_gps.bin 18 | ``` 19 | 20 | If you use a monitoring app, you should see satellites appearing and get a fix eventually. 21 | 22 | Recommended apps: 23 | https://f-droid.org/en/packages/com.vonglasow.michael.satstat/ 24 | 25 | https://play.google.com/store/apps/details?id=com.eclipsim.gpsstatus2 26 | -------------------------------------------------------------------------------- /GPS/fl2k_transmit_gps.grc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Wed Feb 21 22:09:20 2018 5 | 6 | options 7 | 8 | author 9 | 10 | 11 | 12 | window_size 13 | 14 | 15 | 16 | category 17 | [GRC Hier Blocks] 18 | 19 | 20 | comment 21 | 22 | 23 | 24 | description 25 | 26 | 27 | 28 | _enabled 29 | True 30 | 31 | 32 | _coordinate 33 | (8, 8) 34 | 35 | 36 | _rotation 37 | 0 38 | 39 | 40 | generate_options 41 | wx_gui 42 | 43 | 44 | hier_block_src_path 45 | .: 46 | 47 | 48 | id 49 | top_block 50 | 51 | 52 | max_nouts 53 | 0 54 | 55 | 56 | qt_qss_theme 57 | 58 | 59 | 60 | realtime_scheduling 61 | 62 | 63 | 64 | run_command 65 | {python} -u {filename} 66 | 67 | 68 | run_options 69 | prompt 70 | 71 | 72 | run 73 | True 74 | 75 | 76 | sizing_mode 77 | fixed 78 | 79 | 80 | thread_safe_setters 81 | 82 | 83 | 84 | title 85 | 86 | 87 | 88 | placement 89 | (0,0) 90 | 91 | 92 | 93 | variable 94 | 95 | comment 96 | 97 | 98 | 99 | _enabled 100 | True 101 | 102 | 103 | _coordinate 104 | (8, 548) 105 | 106 | 107 | _rotation 108 | 0 109 | 110 | 111 | id 112 | arb_resamp 113 | 114 | 115 | value 116 | float(out_rate)/(float(in_rate)*float(interpolate)) 117 | 118 | 119 | 120 | variable 121 | 122 | comment 123 | 124 | 125 | 126 | _enabled 127 | True 128 | 129 | 130 | _coordinate 131 | (8, 100) 132 | 133 | 134 | _rotation 135 | 0 136 | 137 | 138 | id 139 | in_rate 140 | 141 | 142 | value 143 | 2.6e6 144 | 145 | 146 | 147 | variable 148 | 149 | comment 150 | 151 | 152 | 153 | _enabled 154 | True 155 | 156 | 157 | _coordinate 158 | (8, 484) 159 | 160 | 161 | _rotation 162 | 0 163 | 164 | 165 | id 166 | interpolate 167 | 168 | 169 | value 170 | int((out_rate/in_rate)/2) 171 | 172 | 173 | 174 | variable 175 | 176 | comment 177 | 178 | 179 | 180 | _enabled 181 | True 182 | 183 | 184 | _coordinate 185 | (8, 292) 186 | 187 | 188 | _rotation 189 | 0 190 | 191 | 192 | id 193 | n_harmonic 194 | 195 | 196 | value 197 | 11 198 | 199 | 200 | 201 | variable 202 | 203 | comment 204 | 205 | 206 | 207 | _enabled 208 | True 209 | 210 | 211 | _coordinate 212 | (8, 164) 213 | 214 | 215 | _rotation 216 | 0 217 | 218 | 219 | id 220 | out_rate 221 | 222 | 223 | value 224 | 138e6*(1+(ppm/1e6)) 225 | 226 | 227 | 228 | variable 229 | 230 | comment 231 | 232 | 233 | 234 | _enabled 235 | True 236 | 237 | 238 | _coordinate 239 | (120, 164) 240 | 241 | 242 | _rotation 243 | 0 244 | 245 | 246 | id 247 | ppm 248 | 249 | 250 | value 251 | -21+36 252 | 253 | 254 | 255 | variable 256 | 257 | comment 258 | 259 | 260 | 261 | _enabled 262 | True 263 | 264 | 265 | _coordinate 266 | (8, 612) 267 | 268 | 269 | _rotation 270 | 0 271 | 272 | 273 | id 274 | shift 275 | 276 | 277 | value 278 | (n_harmonic*out_rate)-tx_freq 279 | 280 | 281 | 282 | variable 283 | 284 | comment 285 | 286 | 287 | 288 | _enabled 289 | True 290 | 291 | 292 | _coordinate 293 | (8, 228) 294 | 295 | 296 | _rotation 297 | 0 298 | 299 | 300 | id 301 | tx_freq 302 | 303 | 304 | value 305 | 1575.42e6 306 | 307 | 308 | 309 | analog_sig_source_x 310 | 311 | amp 312 | 1 313 | 314 | 315 | alias 316 | 317 | 318 | 319 | comment 320 | 321 | 322 | 323 | affinity 324 | 325 | 326 | 327 | _enabled 328 | 1 329 | 330 | 331 | freq 332 | shift 333 | 334 | 335 | _coordinate 336 | (360, 292) 337 | 338 | 339 | _rotation 340 | 0 341 | 342 | 343 | id 344 | analog_sig_source_x_0 345 | 346 | 347 | maxoutbuf 348 | 0 349 | 350 | 351 | minoutbuf 352 | 0 353 | 354 | 355 | offset 356 | 0 357 | 358 | 359 | type 360 | float 361 | 362 | 363 | samp_rate 364 | out_rate 365 | 366 | 367 | waveform 368 | analog.GR_COS_WAVE 369 | 370 | 371 | 372 | analog_sig_source_x 373 | 374 | amp 375 | 1 376 | 377 | 378 | alias 379 | 380 | 381 | 382 | comment 383 | 384 | 385 | 386 | affinity 387 | 388 | 389 | 390 | _enabled 391 | 1 392 | 393 | 394 | freq 395 | shift 396 | 397 | 398 | _coordinate 399 | (360, 500) 400 | 401 | 402 | _rotation 403 | 0 404 | 405 | 406 | id 407 | analog_sig_source_x_1 408 | 409 | 410 | maxoutbuf 411 | 0 412 | 413 | 414 | minoutbuf 415 | 0 416 | 417 | 418 | offset 419 | 0 420 | 421 | 422 | type 423 | float 424 | 425 | 426 | samp_rate 427 | out_rate 428 | 429 | 430 | waveform 431 | analog.GR_SIN_WAVE 432 | 433 | 434 | 435 | blocks_add_xx 436 | 437 | alias 438 | 439 | 440 | 441 | comment 442 | 443 | 444 | 445 | affinity 446 | 447 | 448 | 449 | _enabled 450 | 1 451 | 452 | 453 | _coordinate 454 | (712, 416) 455 | 456 | 457 | _rotation 458 | 0 459 | 460 | 461 | id 462 | blocks_add_xx_0 463 | 464 | 465 | type 466 | float 467 | 468 | 469 | maxoutbuf 470 | 0 471 | 472 | 473 | minoutbuf 474 | 0 475 | 476 | 477 | num_inputs 478 | 2 479 | 480 | 481 | vlen 482 | 1 483 | 484 | 485 | 486 | blocks_complex_to_float 487 | 488 | alias 489 | 490 | 491 | 492 | comment 493 | 494 | 495 | 496 | affinity 497 | 498 | 499 | 500 | _enabled 501 | 1 502 | 503 | 504 | _coordinate 505 | (360, 416) 506 | 507 | 508 | _rotation 509 | 0 510 | 511 | 512 | id 513 | blocks_complex_to_float_0 514 | 515 | 516 | maxoutbuf 517 | 0 518 | 519 | 520 | minoutbuf 521 | 0 522 | 523 | 524 | vlen 525 | 1 526 | 527 | 528 | 529 | blocks_file_sink 530 | 531 | append 532 | False 533 | 534 | 535 | alias 536 | 537 | 538 | 539 | comment 540 | 541 | 542 | 543 | affinity 544 | 545 | 546 | 547 | _enabled 548 | 1 549 | 550 | 551 | file 552 | /tmp/fl2k_gps.bin 553 | 554 | 555 | _coordinate 556 | (1016, 580) 557 | 558 | 559 | _rotation 560 | 0 561 | 562 | 563 | id 564 | blocks_file_sink_1 565 | 566 | 567 | type 568 | byte 569 | 570 | 571 | unbuffered 572 | False 573 | 574 | 575 | vlen 576 | 1 577 | 578 | 579 | 580 | blocks_file_source 581 | 582 | begin_tag 583 | pmt.PMT_NIL 584 | 585 | 586 | alias 587 | 588 | 589 | 590 | comment 591 | 592 | 593 | 594 | affinity 595 | 596 | 597 | 598 | _enabled 599 | 1 600 | 601 | 602 | file 603 | gps-sdr-sim/gpssim.bin 604 | 605 | 606 | _coordinate 607 | (112, 84) 608 | 609 | 610 | _rotation 611 | 0 612 | 613 | 614 | id 615 | blocks_file_source_0_0_0 616 | 617 | 618 | maxoutbuf 619 | 0 620 | 621 | 622 | minoutbuf 623 | 0 624 | 625 | 626 | type 627 | short 628 | 629 | 630 | repeat 631 | False 632 | 633 | 634 | vlen 635 | 1 636 | 637 | 638 | 639 | blocks_float_to_char 640 | 641 | alias 642 | 643 | 644 | 645 | comment 646 | 647 | 648 | 649 | affinity 650 | 651 | 652 | 653 | _enabled 654 | 1 655 | 656 | 657 | _coordinate 658 | (856, 596) 659 | 660 | 661 | _rotation 662 | 0 663 | 664 | 665 | id 666 | blocks_float_to_char_0 667 | 668 | 669 | maxoutbuf 670 | 0 671 | 672 | 673 | minoutbuf 674 | 0 675 | 676 | 677 | scale 678 | 1 679 | 680 | 681 | vlen 682 | 1 683 | 684 | 685 | 686 | blocks_interleaved_short_to_complex 687 | 688 | alias 689 | 690 | 691 | 692 | comment 693 | 694 | 695 | 696 | affinity 697 | 698 | 699 | 700 | _enabled 701 | 1 702 | 703 | 704 | _coordinate 705 | (320, 100) 706 | 707 | 708 | _rotation 709 | 0 710 | 711 | 712 | id 713 | blocks_interleaved_short_to_complex_0_0 714 | 715 | 716 | maxoutbuf 717 | 0 718 | 719 | 720 | minoutbuf 721 | 0 722 | 723 | 724 | swap 725 | False 726 | 727 | 728 | vector_input 729 | False 730 | 731 | 732 | 733 | blocks_multiply_const_vxx 734 | 735 | alias 736 | 737 | 738 | 739 | comment 740 | 741 | 742 | 743 | const 744 | 780e-6 745 | 746 | 747 | affinity 748 | 749 | 750 | 751 | _enabled 752 | True 753 | 754 | 755 | _coordinate 756 | (672, 100) 757 | 758 | 759 | _rotation 760 | 0 761 | 762 | 763 | id 764 | blocks_multiply_const_vxx_0 765 | 766 | 767 | type 768 | complex 769 | 770 | 771 | maxoutbuf 772 | 0 773 | 774 | 775 | minoutbuf 776 | 0 777 | 778 | 779 | vlen 780 | 1 781 | 782 | 783 | 784 | blocks_multiply_const_vxx 785 | 786 | alias 787 | 788 | 789 | 790 | comment 791 | 792 | 793 | 794 | const 795 | 127 796 | 797 | 798 | affinity 799 | 800 | 801 | 802 | _enabled 803 | True 804 | 805 | 806 | _coordinate 807 | (688, 540) 808 | 809 | 810 | _rotation 811 | 0 812 | 813 | 814 | id 815 | blocks_multiply_const_vxx_1 816 | 817 | 818 | type 819 | float 820 | 821 | 822 | maxoutbuf 823 | 0 824 | 825 | 826 | minoutbuf 827 | 0 828 | 829 | 830 | vlen 831 | 1 832 | 833 | 834 | 835 | blocks_multiply_xx 836 | 837 | alias 838 | 839 | 840 | 841 | comment 842 | 843 | 844 | 845 | affinity 846 | 847 | 848 | 849 | _enabled 850 | 1 851 | 852 | 853 | _coordinate 854 | (576, 384) 855 | 856 | 857 | _rotation 858 | 0 859 | 860 | 861 | id 862 | blocks_multiply_xx_0 863 | 864 | 865 | type 866 | float 867 | 868 | 869 | maxoutbuf 870 | 0 871 | 872 | 873 | minoutbuf 874 | 0 875 | 876 | 877 | num_inputs 878 | 2 879 | 880 | 881 | vlen 882 | 1 883 | 884 | 885 | 886 | blocks_multiply_xx 887 | 888 | alias 889 | 890 | 891 | 892 | comment 893 | 894 | 895 | 896 | affinity 897 | 898 | 899 | 900 | _enabled 901 | 1 902 | 903 | 904 | _coordinate 905 | (576, 448) 906 | 907 | 908 | _rotation 909 | 0 910 | 911 | 912 | id 913 | blocks_multiply_xx_1 914 | 915 | 916 | type 917 | float 918 | 919 | 920 | maxoutbuf 921 | 0 922 | 923 | 924 | minoutbuf 925 | 0 926 | 927 | 928 | num_inputs 929 | 2 930 | 931 | 932 | vlen 933 | 1 934 | 935 | 936 | 937 | blocks_threshold_ff 938 | 939 | alias 940 | 941 | 942 | 943 | comment 944 | 945 | 946 | 947 | affinity 948 | 949 | 950 | 951 | _enabled 952 | 0 953 | 954 | 955 | _coordinate 956 | (856, 460) 957 | 958 | 959 | _rotation 960 | 0 961 | 962 | 963 | high 964 | 127.1 965 | 966 | 967 | id 968 | blocks_threshold_ff_0 969 | 970 | 971 | init 972 | 0 973 | 974 | 975 | low 976 | 127 977 | 978 | 979 | maxoutbuf 980 | 0 981 | 982 | 983 | minoutbuf 984 | 0 985 | 986 | 987 | 988 | blocks_throttle 989 | 990 | alias 991 | 992 | 993 | 994 | comment 995 | 996 | 997 | 998 | affinity 999 | 1000 | 1001 | 1002 | _enabled 1003 | True 1004 | 1005 | 1006 | _coordinate 1007 | (496, 100) 1008 | 1009 | 1010 | _rotation 1011 | 0 1012 | 1013 | 1014 | id 1015 | blocks_throttle_0 1016 | 1017 | 1018 | ignoretag 1019 | True 1020 | 1021 | 1022 | maxoutbuf 1023 | 0 1024 | 1025 | 1026 | minoutbuf 1027 | 0 1028 | 1029 | 1030 | samples_per_second 1031 | in_rate 1032 | 1033 | 1034 | type 1035 | complex 1036 | 1037 | 1038 | vlen 1039 | 1 1040 | 1041 | 1042 | 1043 | pfb_arb_resampler_xxx 1044 | 1045 | alias 1046 | 1047 | 1048 | 1049 | comment 1050 | 1051 | 1052 | 1053 | affinity 1054 | 1055 | 1056 | 1057 | _enabled 1058 | 1 1059 | 1060 | 1061 | _coordinate 1062 | (824, 76) 1063 | 1064 | 1065 | _rotation 1066 | 0 1067 | 1068 | 1069 | id 1070 | pfb_arb_resampler_xxx_0 1071 | 1072 | 1073 | maxoutbuf 1074 | 0 1075 | 1076 | 1077 | minoutbuf 1078 | 0 1079 | 1080 | 1081 | nfilts 1082 | 32 1083 | 1084 | 1085 | rrate 1086 | arb_resamp 1087 | 1088 | 1089 | samp_delay 1090 | 0 1091 | 1092 | 1093 | atten 1094 | 100 1095 | 1096 | 1097 | taps 1098 | 1099 | 1100 | 1101 | type 1102 | ccf 1103 | 1104 | 1105 | 1106 | pfb_interpolator_ccf 1107 | 1108 | atten 1109 | 90 1110 | 1111 | 1112 | alias 1113 | 1114 | 1115 | 1116 | comment 1117 | 1118 | 1119 | 1120 | affinity 1121 | 1122 | 1123 | 1124 | _enabled 1125 | 1 1126 | 1127 | 1128 | _coordinate 1129 | (152, 412) 1130 | 1131 | 1132 | _rotation 1133 | 0 1134 | 1135 | 1136 | id 1137 | pfb_interpolator_ccf_0 1138 | 1139 | 1140 | interp 1141 | interpolate 1142 | 1143 | 1144 | maxoutbuf 1145 | 0 1146 | 1147 | 1148 | minoutbuf 1149 | 0 1150 | 1151 | 1152 | samp_delay 1153 | 0 1154 | 1155 | 1156 | taps 1157 | 1158 | 1159 | 1160 | 1161 | wxgui_fftsink2 1162 | 1163 | avg_alpha 1164 | 0 1165 | 1166 | 1167 | average 1168 | False 1169 | 1170 | 1171 | baseband_freq 1172 | 0 1173 | 1174 | 1175 | alias 1176 | 1177 | 1178 | 1179 | comment 1180 | 1181 | 1182 | 1183 | affinity 1184 | 1185 | 1186 | 1187 | _enabled 1188 | 0 1189 | 1190 | 1191 | fft_size 1192 | 1024 1193 | 1194 | 1195 | freqvar 1196 | None 1197 | 1198 | 1199 | _coordinate 1200 | (1064, 204) 1201 | 1202 | 1203 | _rotation 1204 | 0 1205 | 1206 | 1207 | grid_pos 1208 | 1209 | 1210 | 1211 | id 1212 | wxgui_fftsink2_0 1213 | 1214 | 1215 | notebook 1216 | 1217 | 1218 | 1219 | peak_hold 1220 | False 1221 | 1222 | 1223 | ref_level 1224 | 0 1225 | 1226 | 1227 | ref_scale 1228 | 2.0 1229 | 1230 | 1231 | fft_rate 1232 | 15 1233 | 1234 | 1235 | samp_rate 1236 | out_rate 1237 | 1238 | 1239 | title 1240 | FFT Plot 1241 | 1242 | 1243 | type 1244 | float 1245 | 1246 | 1247 | win_size 1248 | 1249 | 1250 | 1251 | win 1252 | None 1253 | 1254 | 1255 | y_divs 1256 | 10 1257 | 1258 | 1259 | y_per_div 1260 | 10 1261 | 1262 | 1263 | 1264 | wxgui_scopesink2 1265 | 1266 | ac_couple 1267 | False 1268 | 1269 | 1270 | alias 1271 | 1272 | 1273 | 1274 | comment 1275 | 1276 | 1277 | 1278 | affinity 1279 | 1280 | 1281 | 1282 | _enabled 1283 | 0 1284 | 1285 | 1286 | _coordinate 1287 | (1064, 396) 1288 | 1289 | 1290 | _rotation 1291 | 0 1292 | 1293 | 1294 | grid_pos 1295 | 1296 | 1297 | 1298 | id 1299 | wxgui_scopesink2_1 1300 | 1301 | 1302 | notebook 1303 | 1304 | 1305 | 1306 | num_inputs 1307 | 2 1308 | 1309 | 1310 | samp_rate 1311 | out_rate 1312 | 1313 | 1314 | t_scale 1315 | 0.5 1316 | 1317 | 1318 | title 1319 | Saturation Detection 1320 | 1321 | 1322 | trig_mode 1323 | wxgui.TRIG_MODE_NORM 1324 | 1325 | 1326 | type 1327 | float 1328 | 1329 | 1330 | v_offset 1331 | 0 1332 | 1333 | 1334 | v_scale 1335 | 0.5 1336 | 1337 | 1338 | win_size 1339 | 1340 | 1341 | 1342 | xy_mode 1343 | True 1344 | 1345 | 1346 | y_axis_label 1347 | Counts 1348 | 1349 | 1350 | 1351 | analog_sig_source_x_0 1352 | blocks_multiply_xx_0 1353 | 0 1354 | 0 1355 | 1356 | 1357 | analog_sig_source_x_1 1358 | blocks_multiply_xx_1 1359 | 0 1360 | 1 1361 | 1362 | 1363 | blocks_add_xx_0 1364 | blocks_multiply_const_vxx_1 1365 | 0 1366 | 0 1367 | 1368 | 1369 | blocks_add_xx_0 1370 | wxgui_fftsink2_0 1371 | 0 1372 | 0 1373 | 1374 | 1375 | blocks_add_xx_0 1376 | wxgui_scopesink2_1 1377 | 0 1378 | 0 1379 | 1380 | 1381 | blocks_complex_to_float_0 1382 | blocks_multiply_xx_1 1383 | 1 1384 | 0 1385 | 1386 | 1387 | blocks_complex_to_float_0 1388 | blocks_multiply_xx_0 1389 | 0 1390 | 1 1391 | 1392 | 1393 | blocks_file_source_0_0_0 1394 | blocks_interleaved_short_to_complex_0_0 1395 | 0 1396 | 0 1397 | 1398 | 1399 | blocks_float_to_char_0 1400 | blocks_file_sink_1 1401 | 0 1402 | 0 1403 | 1404 | 1405 | blocks_interleaved_short_to_complex_0_0 1406 | blocks_throttle_0 1407 | 0 1408 | 0 1409 | 1410 | 1411 | blocks_multiply_const_vxx_0 1412 | pfb_arb_resampler_xxx_0 1413 | 0 1414 | 0 1415 | 1416 | 1417 | blocks_multiply_const_vxx_1 1418 | blocks_float_to_char_0 1419 | 0 1420 | 0 1421 | 1422 | 1423 | blocks_multiply_const_vxx_1 1424 | blocks_threshold_ff_0 1425 | 0 1426 | 0 1427 | 1428 | 1429 | blocks_multiply_xx_0 1430 | blocks_add_xx_0 1431 | 0 1432 | 0 1433 | 1434 | 1435 | blocks_multiply_xx_1 1436 | blocks_add_xx_0 1437 | 0 1438 | 1 1439 | 1440 | 1441 | blocks_threshold_ff_0 1442 | wxgui_scopesink2_1 1443 | 0 1444 | 1 1445 | 1446 | 1447 | blocks_throttle_0 1448 | blocks_multiply_const_vxx_0 1449 | 0 1450 | 0 1451 | 1452 | 1453 | pfb_arb_resampler_xxx_0 1454 | pfb_interpolator_ccf_0 1455 | 0 1456 | 0 1457 | 1458 | 1459 | pfb_interpolator_ccf_0 1460 | blocks_complex_to_float_0 1461 | 0 1462 | 0 1463 | 1464 | 1465 | -------------------------------------------------------------------------------- /GSM/0001-gr-gsm-print-PPM-error.patch: -------------------------------------------------------------------------------- 1 | From eec02559aae91454211c01dcb1afa4c7701a69fe Mon Sep 17 00:00:00 2001 2 | From: Steve Markgraf 3 | Date: Wed, 25 Apr 2018 01:48:32 +0200 4 | Subject: [PATCH] gr-gsm: print PPM error 5 | 6 | --- 7 | lib/receiver/clock_offset_control_impl.cc | 1 + 8 | 1 file changed, 1 insertion(+) 9 | 10 | diff --git a/lib/receiver/clock_offset_control_impl.cc b/lib/receiver/clock_offset_control_impl.cc 11 | index 868cbc2..c0a8606 100644 12 | --- a/lib/receiver/clock_offset_control_impl.cc 13 | +++ b/lib/receiver/clock_offset_control_impl.cc 14 | @@ -135,6 +135,7 @@ void clock_offset_control_impl::process_measurement(pmt::pmt_t msg) 15 | else 16 | { 17 | d_ppm_estimate = (1-d_alfa)*d_ppm_estimate+d_alfa*ppm; 18 | + std::cout << "PPM estimate: " << d_ppm_estimate << std::endl; 19 | } 20 | 21 | if(d_counter == 5) 22 | -- 23 | 2.17.0 24 | 25 | -------------------------------------------------------------------------------- /GSM/README.md: -------------------------------------------------------------------------------- 1 | Before running the flowgraph, unpack gsm_osmo-trx_4sps.cf32.xz first, which contains the samples. 2 | 3 | Then run: 4 | ``` 5 | fl2k_file -s 138e6 /tmp/fl2k_gsm.bin 6 | ``` 7 | 8 | This results in a GSM signal at 925.4 MHz (ARFCN 976). 9 | -------------------------------------------------------------------------------- /GSM/fl2k_transmit_gsm.grc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Wed Feb 21 22:09:20 2018 5 | 6 | options 7 | 8 | author 9 | 10 | 11 | 12 | window_size 13 | 14 | 15 | 16 | category 17 | [GRC Hier Blocks] 18 | 19 | 20 | comment 21 | 22 | 23 | 24 | description 25 | 26 | 27 | 28 | _enabled 29 | True 30 | 31 | 32 | _coordinate 33 | (8, 8) 34 | 35 | 36 | _rotation 37 | 0 38 | 39 | 40 | generate_options 41 | wx_gui 42 | 43 | 44 | hier_block_src_path 45 | .: 46 | 47 | 48 | id 49 | top_block 50 | 51 | 52 | max_nouts 53 | 0 54 | 55 | 56 | qt_qss_theme 57 | 58 | 59 | 60 | realtime_scheduling 61 | 62 | 63 | 64 | run_command 65 | {python} -u {filename} 66 | 67 | 68 | run_options 69 | prompt 70 | 71 | 72 | run 73 | True 74 | 75 | 76 | sizing_mode 77 | fixed 78 | 79 | 80 | thread_safe_setters 81 | 82 | 83 | 84 | title 85 | 86 | 87 | 88 | placement 89 | (0,0) 90 | 91 | 92 | 93 | variable 94 | 95 | comment 96 | 97 | 98 | 99 | _enabled 100 | True 101 | 102 | 103 | _coordinate 104 | (8, 548) 105 | 106 | 107 | _rotation 108 | 0 109 | 110 | 111 | id 112 | arb_resamp 113 | 114 | 115 | value 116 | float(out_rate)/(float(in_rate)*float(interpolate)) 117 | 118 | 119 | 120 | variable 121 | 122 | comment 123 | 124 | 125 | 126 | _enabled 127 | True 128 | 129 | 130 | _coordinate 131 | (8, 100) 132 | 133 | 134 | _rotation 135 | 0 136 | 137 | 138 | id 139 | in_rate 140 | 141 | 142 | value 143 | 1083333.33333333 144 | 145 | 146 | 147 | variable 148 | 149 | comment 150 | 151 | 152 | 153 | _enabled 154 | True 155 | 156 | 157 | _coordinate 158 | (8, 484) 159 | 160 | 161 | _rotation 162 | 0 163 | 164 | 165 | id 166 | interpolate 167 | 168 | 169 | value 170 | int((out_rate/in_rate)/2) 171 | 172 | 173 | 174 | variable 175 | 176 | comment 177 | 178 | 179 | 180 | _enabled 181 | True 182 | 183 | 184 | _coordinate 185 | (8, 292) 186 | 187 | 188 | _rotation 189 | 0 190 | 191 | 192 | id 193 | n_harmonic 194 | 195 | 196 | value 197 | 7 198 | 199 | 200 | 201 | variable 202 | 203 | comment 204 | 205 | 206 | 207 | _enabled 208 | True 209 | 210 | 211 | _coordinate 212 | (8, 164) 213 | 214 | 215 | _rotation 216 | 0 217 | 218 | 219 | id 220 | out_rate 221 | 222 | 223 | value 224 | 138e6*(1+(ppm/1e6)) 225 | 226 | 227 | 228 | variable 229 | 230 | comment 231 | 232 | 233 | 234 | _enabled 235 | True 236 | 237 | 238 | _coordinate 239 | (120, 164) 240 | 241 | 242 | _rotation 243 | 0 244 | 245 | 246 | id 247 | ppm 248 | 249 | 250 | value 251 | 15 252 | 253 | 254 | 255 | variable 256 | 257 | comment 258 | 259 | 260 | 261 | _enabled 262 | True 263 | 264 | 265 | _coordinate 266 | (8, 612) 267 | 268 | 269 | _rotation 270 | 0 271 | 272 | 273 | id 274 | shift 275 | 276 | 277 | value 278 | (n_harmonic*out_rate)-tx_freq 279 | 280 | 281 | 282 | variable 283 | 284 | comment 285 | 286 | 287 | 288 | _enabled 289 | True 290 | 291 | 292 | _coordinate 293 | (8, 228) 294 | 295 | 296 | _rotation 297 | 0 298 | 299 | 300 | id 301 | tx_freq 302 | 303 | 304 | value 305 | 925.4e6 306 | 307 | 308 | 309 | analog_sig_source_x 310 | 311 | amp 312 | 1 313 | 314 | 315 | alias 316 | 317 | 318 | 319 | comment 320 | 321 | 322 | 323 | affinity 324 | 325 | 326 | 327 | _enabled 328 | 1 329 | 330 | 331 | freq 332 | shift 333 | 334 | 335 | _coordinate 336 | (360, 292) 337 | 338 | 339 | _rotation 340 | 0 341 | 342 | 343 | id 344 | analog_sig_source_x_0 345 | 346 | 347 | maxoutbuf 348 | 0 349 | 350 | 351 | minoutbuf 352 | 0 353 | 354 | 355 | offset 356 | 0 357 | 358 | 359 | type 360 | float 361 | 362 | 363 | samp_rate 364 | out_rate 365 | 366 | 367 | waveform 368 | analog.GR_COS_WAVE 369 | 370 | 371 | 372 | analog_sig_source_x 373 | 374 | amp 375 | 1 376 | 377 | 378 | alias 379 | 380 | 381 | 382 | comment 383 | 384 | 385 | 386 | affinity 387 | 388 | 389 | 390 | _enabled 391 | 1 392 | 393 | 394 | freq 395 | shift 396 | 397 | 398 | _coordinate 399 | (360, 500) 400 | 401 | 402 | _rotation 403 | 0 404 | 405 | 406 | id 407 | analog_sig_source_x_1 408 | 409 | 410 | maxoutbuf 411 | 0 412 | 413 | 414 | minoutbuf 415 | 0 416 | 417 | 418 | offset 419 | 0 420 | 421 | 422 | type 423 | float 424 | 425 | 426 | samp_rate 427 | out_rate 428 | 429 | 430 | waveform 431 | analog.GR_SIN_WAVE 432 | 433 | 434 | 435 | blocks_add_xx 436 | 437 | alias 438 | 439 | 440 | 441 | comment 442 | 443 | 444 | 445 | affinity 446 | 447 | 448 | 449 | _enabled 450 | 1 451 | 452 | 453 | _coordinate 454 | (712, 416) 455 | 456 | 457 | _rotation 458 | 0 459 | 460 | 461 | id 462 | blocks_add_xx_0 463 | 464 | 465 | type 466 | float 467 | 468 | 469 | maxoutbuf 470 | 0 471 | 472 | 473 | minoutbuf 474 | 0 475 | 476 | 477 | num_inputs 478 | 2 479 | 480 | 481 | vlen 482 | 1 483 | 484 | 485 | 486 | blocks_complex_to_float 487 | 488 | alias 489 | 490 | 491 | 492 | comment 493 | 494 | 495 | 496 | affinity 497 | 498 | 499 | 500 | _enabled 501 | 1 502 | 503 | 504 | _coordinate 505 | (360, 416) 506 | 507 | 508 | _rotation 509 | 0 510 | 511 | 512 | id 513 | blocks_complex_to_float_0 514 | 515 | 516 | maxoutbuf 517 | 0 518 | 519 | 520 | minoutbuf 521 | 0 522 | 523 | 524 | vlen 525 | 1 526 | 527 | 528 | 529 | blocks_file_sink 530 | 531 | append 532 | False 533 | 534 | 535 | alias 536 | 537 | 538 | 539 | comment 540 | 541 | 542 | 543 | affinity 544 | 545 | 546 | 547 | _enabled 548 | 1 549 | 550 | 551 | file 552 | /tmp/fl2k_gsm.bin 553 | 554 | 555 | _coordinate 556 | (1016, 580) 557 | 558 | 559 | _rotation 560 | 0 561 | 562 | 563 | id 564 | blocks_file_sink_1 565 | 566 | 567 | type 568 | byte 569 | 570 | 571 | unbuffered 572 | False 573 | 574 | 575 | vlen 576 | 1 577 | 578 | 579 | 580 | blocks_file_source 581 | 582 | begin_tag 583 | pmt.PMT_NIL 584 | 585 | 586 | alias 587 | 588 | 589 | 590 | comment 591 | 592 | 593 | 594 | affinity 595 | 596 | 597 | 598 | _enabled 599 | True 600 | 601 | 602 | file 603 | gsm_osmo-trx_4sps.cf32 604 | 605 | 606 | _coordinate 607 | (200, 84) 608 | 609 | 610 | _rotation 611 | 0 612 | 613 | 614 | id 615 | blocks_file_source_0 616 | 617 | 618 | maxoutbuf 619 | 0 620 | 621 | 622 | minoutbuf 623 | 0 624 | 625 | 626 | type 627 | complex 628 | 629 | 630 | repeat 631 | False 632 | 633 | 634 | vlen 635 | 1 636 | 637 | 638 | 639 | blocks_float_to_char 640 | 641 | alias 642 | 643 | 644 | 645 | comment 646 | 647 | 648 | 649 | affinity 650 | 651 | 652 | 653 | _enabled 654 | 1 655 | 656 | 657 | _coordinate 658 | (856, 596) 659 | 660 | 661 | _rotation 662 | 0 663 | 664 | 665 | id 666 | blocks_float_to_char_0 667 | 668 | 669 | maxoutbuf 670 | 0 671 | 672 | 673 | minoutbuf 674 | 0 675 | 676 | 677 | scale 678 | 1 679 | 680 | 681 | vlen 682 | 1 683 | 684 | 685 | 686 | blocks_multiply_const_vxx 687 | 688 | alias 689 | 690 | 691 | 692 | comment 693 | 694 | 695 | 696 | const 697 | 100e-6 698 | 699 | 700 | affinity 701 | 702 | 703 | 704 | _enabled 705 | True 706 | 707 | 708 | _coordinate 709 | (632, 100) 710 | 711 | 712 | _rotation 713 | 0 714 | 715 | 716 | id 717 | blocks_multiply_const_vxx_0 718 | 719 | 720 | type 721 | complex 722 | 723 | 724 | maxoutbuf 725 | 0 726 | 727 | 728 | minoutbuf 729 | 0 730 | 731 | 732 | vlen 733 | 1 734 | 735 | 736 | 737 | blocks_multiply_const_vxx 738 | 739 | alias 740 | 741 | 742 | 743 | comment 744 | 745 | 746 | 747 | const 748 | 127 749 | 750 | 751 | affinity 752 | 753 | 754 | 755 | _enabled 756 | True 757 | 758 | 759 | _coordinate 760 | (688, 540) 761 | 762 | 763 | _rotation 764 | 0 765 | 766 | 767 | id 768 | blocks_multiply_const_vxx_1 769 | 770 | 771 | type 772 | float 773 | 774 | 775 | maxoutbuf 776 | 0 777 | 778 | 779 | minoutbuf 780 | 0 781 | 782 | 783 | vlen 784 | 1 785 | 786 | 787 | 788 | blocks_multiply_xx 789 | 790 | alias 791 | 792 | 793 | 794 | comment 795 | 796 | 797 | 798 | affinity 799 | 800 | 801 | 802 | _enabled 803 | 1 804 | 805 | 806 | _coordinate 807 | (576, 384) 808 | 809 | 810 | _rotation 811 | 0 812 | 813 | 814 | id 815 | blocks_multiply_xx_0 816 | 817 | 818 | type 819 | float 820 | 821 | 822 | maxoutbuf 823 | 0 824 | 825 | 826 | minoutbuf 827 | 0 828 | 829 | 830 | num_inputs 831 | 2 832 | 833 | 834 | vlen 835 | 1 836 | 837 | 838 | 839 | blocks_multiply_xx 840 | 841 | alias 842 | 843 | 844 | 845 | comment 846 | 847 | 848 | 849 | affinity 850 | 851 | 852 | 853 | _enabled 854 | 1 855 | 856 | 857 | _coordinate 858 | (576, 448) 859 | 860 | 861 | _rotation 862 | 0 863 | 864 | 865 | id 866 | blocks_multiply_xx_1 867 | 868 | 869 | type 870 | float 871 | 872 | 873 | maxoutbuf 874 | 0 875 | 876 | 877 | minoutbuf 878 | 0 879 | 880 | 881 | num_inputs 882 | 2 883 | 884 | 885 | vlen 886 | 1 887 | 888 | 889 | 890 | blocks_threshold_ff 891 | 892 | alias 893 | 894 | 895 | 896 | comment 897 | 898 | 899 | 900 | affinity 901 | 902 | 903 | 904 | _enabled 905 | 1 906 | 907 | 908 | _coordinate 909 | (856, 460) 910 | 911 | 912 | _rotation 913 | 0 914 | 915 | 916 | high 917 | 127.1 918 | 919 | 920 | id 921 | blocks_threshold_ff_0 922 | 923 | 924 | init 925 | 0 926 | 927 | 928 | low 929 | 127 930 | 931 | 932 | maxoutbuf 933 | 0 934 | 935 | 936 | minoutbuf 937 | 0 938 | 939 | 940 | 941 | blocks_throttle 942 | 943 | alias 944 | 945 | 946 | 947 | comment 948 | 949 | 950 | 951 | affinity 952 | 953 | 954 | 955 | _enabled 956 | True 957 | 958 | 959 | _coordinate 960 | (424, 100) 961 | 962 | 963 | _rotation 964 | 0 965 | 966 | 967 | id 968 | blocks_throttle_0 969 | 970 | 971 | ignoretag 972 | True 973 | 974 | 975 | maxoutbuf 976 | 0 977 | 978 | 979 | minoutbuf 980 | 0 981 | 982 | 983 | samples_per_second 984 | in_rate 985 | 986 | 987 | type 988 | complex 989 | 990 | 991 | vlen 992 | 1 993 | 994 | 995 | 996 | pfb_arb_resampler_xxx 997 | 998 | alias 999 | 1000 | 1001 | 1002 | comment 1003 | 1004 | 1005 | 1006 | affinity 1007 | 1008 | 1009 | 1010 | _enabled 1011 | 1 1012 | 1013 | 1014 | _coordinate 1015 | (800, 76) 1016 | 1017 | 1018 | _rotation 1019 | 0 1020 | 1021 | 1022 | id 1023 | pfb_arb_resampler_xxx_0 1024 | 1025 | 1026 | maxoutbuf 1027 | 0 1028 | 1029 | 1030 | minoutbuf 1031 | 0 1032 | 1033 | 1034 | nfilts 1035 | 32 1036 | 1037 | 1038 | rrate 1039 | arb_resamp 1040 | 1041 | 1042 | samp_delay 1043 | 0 1044 | 1045 | 1046 | atten 1047 | 100 1048 | 1049 | 1050 | taps 1051 | 1052 | 1053 | 1054 | type 1055 | ccf 1056 | 1057 | 1058 | 1059 | pfb_interpolator_ccf 1060 | 1061 | atten 1062 | 90 1063 | 1064 | 1065 | alias 1066 | 1067 | 1068 | 1069 | comment 1070 | 1071 | 1072 | 1073 | affinity 1074 | 1075 | 1076 | 1077 | _enabled 1078 | 1 1079 | 1080 | 1081 | _coordinate 1082 | (152, 412) 1083 | 1084 | 1085 | _rotation 1086 | 0 1087 | 1088 | 1089 | id 1090 | pfb_interpolator_ccf_0 1091 | 1092 | 1093 | interp 1094 | interpolate 1095 | 1096 | 1097 | maxoutbuf 1098 | 0 1099 | 1100 | 1101 | minoutbuf 1102 | 0 1103 | 1104 | 1105 | samp_delay 1106 | 0 1107 | 1108 | 1109 | taps 1110 | 1111 | 1112 | 1113 | 1114 | wxgui_fftsink2 1115 | 1116 | avg_alpha 1117 | 0 1118 | 1119 | 1120 | average 1121 | False 1122 | 1123 | 1124 | baseband_freq 1125 | 0 1126 | 1127 | 1128 | alias 1129 | 1130 | 1131 | 1132 | comment 1133 | 1134 | 1135 | 1136 | affinity 1137 | 1138 | 1139 | 1140 | _enabled 1141 | 1 1142 | 1143 | 1144 | fft_size 1145 | 1024 1146 | 1147 | 1148 | freqvar 1149 | None 1150 | 1151 | 1152 | _coordinate 1153 | (1064, 204) 1154 | 1155 | 1156 | _rotation 1157 | 0 1158 | 1159 | 1160 | grid_pos 1161 | 1162 | 1163 | 1164 | id 1165 | wxgui_fftsink2_0 1166 | 1167 | 1168 | notebook 1169 | 1170 | 1171 | 1172 | peak_hold 1173 | False 1174 | 1175 | 1176 | ref_level 1177 | 0 1178 | 1179 | 1180 | ref_scale 1181 | 2.0 1182 | 1183 | 1184 | fft_rate 1185 | 15 1186 | 1187 | 1188 | samp_rate 1189 | out_rate 1190 | 1191 | 1192 | title 1193 | FFT Plot 1194 | 1195 | 1196 | type 1197 | float 1198 | 1199 | 1200 | win_size 1201 | 1202 | 1203 | 1204 | win 1205 | None 1206 | 1207 | 1208 | y_divs 1209 | 10 1210 | 1211 | 1212 | y_per_div 1213 | 10 1214 | 1215 | 1216 | 1217 | wxgui_scopesink2 1218 | 1219 | ac_couple 1220 | False 1221 | 1222 | 1223 | alias 1224 | 1225 | 1226 | 1227 | comment 1228 | 1229 | 1230 | 1231 | affinity 1232 | 1233 | 1234 | 1235 | _enabled 1236 | 1 1237 | 1238 | 1239 | _coordinate 1240 | (1064, 396) 1241 | 1242 | 1243 | _rotation 1244 | 0 1245 | 1246 | 1247 | grid_pos 1248 | 1249 | 1250 | 1251 | id 1252 | wxgui_scopesink2_1 1253 | 1254 | 1255 | notebook 1256 | 1257 | 1258 | 1259 | num_inputs 1260 | 2 1261 | 1262 | 1263 | samp_rate 1264 | out_rate 1265 | 1266 | 1267 | t_scale 1268 | 0.5 1269 | 1270 | 1271 | title 1272 | Saturation Detection 1273 | 1274 | 1275 | trig_mode 1276 | wxgui.TRIG_MODE_NORM 1277 | 1278 | 1279 | type 1280 | float 1281 | 1282 | 1283 | v_offset 1284 | 0 1285 | 1286 | 1287 | v_scale 1288 | 0.5 1289 | 1290 | 1291 | win_size 1292 | 1293 | 1294 | 1295 | xy_mode 1296 | True 1297 | 1298 | 1299 | y_axis_label 1300 | Counts 1301 | 1302 | 1303 | 1304 | analog_sig_source_x_0 1305 | blocks_multiply_xx_0 1306 | 0 1307 | 0 1308 | 1309 | 1310 | analog_sig_source_x_1 1311 | blocks_multiply_xx_1 1312 | 0 1313 | 1 1314 | 1315 | 1316 | blocks_add_xx_0 1317 | blocks_multiply_const_vxx_1 1318 | 0 1319 | 0 1320 | 1321 | 1322 | blocks_add_xx_0 1323 | wxgui_fftsink2_0 1324 | 0 1325 | 0 1326 | 1327 | 1328 | blocks_add_xx_0 1329 | wxgui_scopesink2_1 1330 | 0 1331 | 0 1332 | 1333 | 1334 | blocks_complex_to_float_0 1335 | blocks_multiply_xx_1 1336 | 1 1337 | 0 1338 | 1339 | 1340 | blocks_complex_to_float_0 1341 | blocks_multiply_xx_0 1342 | 0 1343 | 1 1344 | 1345 | 1346 | blocks_file_source_0 1347 | blocks_throttle_0 1348 | 0 1349 | 0 1350 | 1351 | 1352 | blocks_float_to_char_0 1353 | blocks_file_sink_1 1354 | 0 1355 | 0 1356 | 1357 | 1358 | blocks_multiply_const_vxx_0 1359 | pfb_arb_resampler_xxx_0 1360 | 0 1361 | 0 1362 | 1363 | 1364 | blocks_multiply_const_vxx_1 1365 | blocks_float_to_char_0 1366 | 0 1367 | 0 1368 | 1369 | 1370 | blocks_multiply_const_vxx_1 1371 | blocks_threshold_ff_0 1372 | 0 1373 | 0 1374 | 1375 | 1376 | blocks_multiply_xx_0 1377 | blocks_add_xx_0 1378 | 0 1379 | 0 1380 | 1381 | 1382 | blocks_multiply_xx_1 1383 | blocks_add_xx_0 1384 | 0 1385 | 1 1386 | 1387 | 1388 | blocks_threshold_ff_0 1389 | wxgui_scopesink2_1 1390 | 0 1391 | 1 1392 | 1393 | 1394 | blocks_throttle_0 1395 | blocks_multiply_const_vxx_0 1396 | 0 1397 | 0 1398 | 1399 | 1400 | pfb_arb_resampler_xxx_0 1401 | pfb_interpolator_ccf_0 1402 | 0 1403 | 0 1404 | 1405 | 1406 | pfb_interpolator_ccf_0 1407 | blocks_complex_to_float_0 1408 | 0 1409 | 0 1410 | 1411 | 1412 | -------------------------------------------------------------------------------- /GSM/gsm_osmo-trx_4sps.cf32.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steve-m/fl2k-examples/8794a155741920162536623a61e0a34c343dc5c2/GSM/gsm_osmo-trx_4sps.cf32.xz -------------------------------------------------------------------------------- /LTE/srsLTE_B20_earfcn6425_5M_5.76e6.cs16.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steve-m/fl2k-examples/8794a155741920162536623a61e0a34c343dc5c2/LTE/srsLTE_B20_earfcn6425_5M_5.76e6.cs16.xz -------------------------------------------------------------------------------- /LTE/srsLTE_B5_earfcn2420_1.4M_1.92e6.cs16.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steve-m/fl2k-examples/8794a155741920162536623a61e0a34c343dc5c2/LTE/srsLTE_B5_earfcn2420_1.4M_1.92e6.cs16.xz -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fl2k-examples 2 | This repository contains example flowgraphs for osmo-fl2k. These perform offline computation of samples which then can be transmitted with fl2k_file. 3 | 4 | See https://osmocom.org/projects/osmo-fl2k/wiki for more information. 5 | 6 | Note: Before transmitting any of those signals, you need to calibrate the clock error of your device first. You then need to adapt the 'ppm' variable in the flowgraphs according to your error. 7 | 8 | Depending on the accuracy of your system clock, fl2k_test can be used for a coarse calibration. For fine calibration, the recommended approach is to use the GSM flowgraph, and then synchronize to the transmitted channel with [grgsm_livemon](https://github.com/ptrkrysik/gr-gsm), e.g. with an rtl-sdr. The GSM folder contains a patch for gr-gsm that outputs the clock error. You then can compare the clock error you get from your own transmitted GSM channel to a real GSM base station in order to determine the clock error of the FL2000 dongle. 9 | -------------------------------------------------------------------------------- /UMTS/README.md: -------------------------------------------------------------------------------- 1 | Before running the flowgraph, unpack openbts-umts_6.25e6.cs16.xz first, which contains the samples. 2 | 3 | Then run: 4 | ``` 5 | fl2k_file -s 130e6 /tmp/fl2k_umts.bin 6 | ``` 7 | 8 | This results in a UMTS signal at 879 MHz (UARFCN 4395). 9 | -------------------------------------------------------------------------------- /UMTS/fl2k_transmit_umts.grc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Wed Feb 21 22:09:20 2018 5 | 6 | options 7 | 8 | author 9 | 10 | 11 | 12 | window_size 13 | 14 | 15 | 16 | category 17 | [GRC Hier Blocks] 18 | 19 | 20 | comment 21 | 22 | 23 | 24 | description 25 | 26 | 27 | 28 | _enabled 29 | True 30 | 31 | 32 | _coordinate 33 | (8, 8) 34 | 35 | 36 | _rotation 37 | 0 38 | 39 | 40 | generate_options 41 | wx_gui 42 | 43 | 44 | hier_block_src_path 45 | .: 46 | 47 | 48 | id 49 | top_block 50 | 51 | 52 | max_nouts 53 | 0 54 | 55 | 56 | qt_qss_theme 57 | 58 | 59 | 60 | realtime_scheduling 61 | 62 | 63 | 64 | run_command 65 | {python} -u {filename} 66 | 67 | 68 | run_options 69 | prompt 70 | 71 | 72 | run 73 | True 74 | 75 | 76 | sizing_mode 77 | fixed 78 | 79 | 80 | thread_safe_setters 81 | 82 | 83 | 84 | title 85 | 86 | 87 | 88 | placement 89 | (0,0) 90 | 91 | 92 | 93 | variable 94 | 95 | comment 96 | 97 | 98 | 99 | _enabled 100 | True 101 | 102 | 103 | _coordinate 104 | (8, 548) 105 | 106 | 107 | _rotation 108 | 0 109 | 110 | 111 | id 112 | arb_resamp 113 | 114 | 115 | value 116 | float(out_rate)/(float(in_rate)*float(interpolate)) 117 | 118 | 119 | 120 | variable 121 | 122 | comment 123 | 124 | 125 | 126 | _enabled 127 | True 128 | 129 | 130 | _coordinate 131 | (8, 100) 132 | 133 | 134 | _rotation 135 | 0 136 | 137 | 138 | id 139 | in_rate 140 | 141 | 142 | value 143 | 6.25e6 144 | 145 | 146 | 147 | variable 148 | 149 | comment 150 | 151 | 152 | 153 | _enabled 154 | True 155 | 156 | 157 | _coordinate 158 | (8, 484) 159 | 160 | 161 | _rotation 162 | 0 163 | 164 | 165 | id 166 | interpolate 167 | 168 | 169 | value 170 | int((out_rate/in_rate)/2) 171 | 172 | 173 | 174 | variable 175 | 176 | comment 177 | 178 | 179 | 180 | _enabled 181 | True 182 | 183 | 184 | _coordinate 185 | (8, 292) 186 | 187 | 188 | _rotation 189 | 0 190 | 191 | 192 | id 193 | n_harmonic 194 | 195 | 196 | value 197 | 7 198 | 199 | 200 | 201 | variable 202 | 203 | comment 204 | 205 | 206 | 207 | _enabled 208 | True 209 | 210 | 211 | _coordinate 212 | (8, 164) 213 | 214 | 215 | _rotation 216 | 0 217 | 218 | 219 | id 220 | out_rate 221 | 222 | 223 | value 224 | 130e6*(1+(ppm/1e6)) 225 | 226 | 227 | 228 | variable 229 | 230 | comment 231 | 232 | 233 | 234 | _enabled 235 | True 236 | 237 | 238 | _coordinate 239 | (120, 164) 240 | 241 | 242 | _rotation 243 | 0 244 | 245 | 246 | id 247 | ppm 248 | 249 | 250 | value 251 | -21+36 252 | 253 | 254 | 255 | variable 256 | 257 | comment 258 | 259 | 260 | 261 | _enabled 262 | True 263 | 264 | 265 | _coordinate 266 | (8, 612) 267 | 268 | 269 | _rotation 270 | 0 271 | 272 | 273 | id 274 | shift 275 | 276 | 277 | value 278 | (n_harmonic*out_rate)-tx_freq 279 | 280 | 281 | 282 | variable 283 | 284 | comment 285 | 286 | 287 | 288 | _enabled 289 | True 290 | 291 | 292 | _coordinate 293 | (8, 228) 294 | 295 | 296 | _rotation 297 | 0 298 | 299 | 300 | id 301 | tx_freq 302 | 303 | 304 | value 305 | 879e6 306 | 307 | 308 | 309 | analog_sig_source_x 310 | 311 | amp 312 | 1 313 | 314 | 315 | alias 316 | 317 | 318 | 319 | comment 320 | 321 | 322 | 323 | affinity 324 | 325 | 326 | 327 | _enabled 328 | 1 329 | 330 | 331 | freq 332 | shift 333 | 334 | 335 | _coordinate 336 | (360, 292) 337 | 338 | 339 | _rotation 340 | 0 341 | 342 | 343 | id 344 | analog_sig_source_x_0 345 | 346 | 347 | maxoutbuf 348 | 0 349 | 350 | 351 | minoutbuf 352 | 0 353 | 354 | 355 | offset 356 | 0 357 | 358 | 359 | type 360 | float 361 | 362 | 363 | samp_rate 364 | out_rate 365 | 366 | 367 | waveform 368 | analog.GR_COS_WAVE 369 | 370 | 371 | 372 | analog_sig_source_x 373 | 374 | amp 375 | 1 376 | 377 | 378 | alias 379 | 380 | 381 | 382 | comment 383 | 384 | 385 | 386 | affinity 387 | 388 | 389 | 390 | _enabled 391 | 1 392 | 393 | 394 | freq 395 | shift 396 | 397 | 398 | _coordinate 399 | (360, 500) 400 | 401 | 402 | _rotation 403 | 0 404 | 405 | 406 | id 407 | analog_sig_source_x_1 408 | 409 | 410 | maxoutbuf 411 | 0 412 | 413 | 414 | minoutbuf 415 | 0 416 | 417 | 418 | offset 419 | 0 420 | 421 | 422 | type 423 | float 424 | 425 | 426 | samp_rate 427 | out_rate 428 | 429 | 430 | waveform 431 | analog.GR_SIN_WAVE 432 | 433 | 434 | 435 | blocks_add_xx 436 | 437 | alias 438 | 439 | 440 | 441 | comment 442 | 443 | 444 | 445 | affinity 446 | 447 | 448 | 449 | _enabled 450 | 1 451 | 452 | 453 | _coordinate 454 | (712, 416) 455 | 456 | 457 | _rotation 458 | 0 459 | 460 | 461 | id 462 | blocks_add_xx_0 463 | 464 | 465 | type 466 | float 467 | 468 | 469 | maxoutbuf 470 | 0 471 | 472 | 473 | minoutbuf 474 | 0 475 | 476 | 477 | num_inputs 478 | 2 479 | 480 | 481 | vlen 482 | 1 483 | 484 | 485 | 486 | blocks_complex_to_float 487 | 488 | alias 489 | 490 | 491 | 492 | comment 493 | 494 | 495 | 496 | affinity 497 | 498 | 499 | 500 | _enabled 501 | 1 502 | 503 | 504 | _coordinate 505 | (360, 416) 506 | 507 | 508 | _rotation 509 | 0 510 | 511 | 512 | id 513 | blocks_complex_to_float_0 514 | 515 | 516 | maxoutbuf 517 | 0 518 | 519 | 520 | minoutbuf 521 | 0 522 | 523 | 524 | vlen 525 | 1 526 | 527 | 528 | 529 | blocks_file_sink 530 | 531 | append 532 | False 533 | 534 | 535 | alias 536 | 537 | 538 | 539 | comment 540 | 541 | 542 | 543 | affinity 544 | 545 | 546 | 547 | _enabled 548 | 1 549 | 550 | 551 | file 552 | /tmp/fl2k_umts.bin 553 | 554 | 555 | _coordinate 556 | (1016, 580) 557 | 558 | 559 | _rotation 560 | 0 561 | 562 | 563 | id 564 | blocks_file_sink_1 565 | 566 | 567 | type 568 | byte 569 | 570 | 571 | unbuffered 572 | False 573 | 574 | 575 | vlen 576 | 1 577 | 578 | 579 | 580 | blocks_file_source 581 | 582 | begin_tag 583 | pmt.PMT_NIL 584 | 585 | 586 | alias 587 | 588 | 589 | 590 | comment 591 | 592 | 593 | 594 | affinity 595 | 596 | 597 | 598 | _enabled 599 | 1 600 | 601 | 602 | file 603 | openbts-umts_6.25e6.cs16 604 | 605 | 606 | _coordinate 607 | (112, 84) 608 | 609 | 610 | _rotation 611 | 0 612 | 613 | 614 | id 615 | blocks_file_source_0_0_0 616 | 617 | 618 | maxoutbuf 619 | 0 620 | 621 | 622 | minoutbuf 623 | 0 624 | 625 | 626 | type 627 | short 628 | 629 | 630 | repeat 631 | False 632 | 633 | 634 | vlen 635 | 1 636 | 637 | 638 | 639 | blocks_float_to_char 640 | 641 | alias 642 | 643 | 644 | 645 | comment 646 | 647 | 648 | 649 | affinity 650 | 651 | 652 | 653 | _enabled 654 | 1 655 | 656 | 657 | _coordinate 658 | (856, 596) 659 | 660 | 661 | _rotation 662 | 0 663 | 664 | 665 | id 666 | blocks_float_to_char_0 667 | 668 | 669 | maxoutbuf 670 | 0 671 | 672 | 673 | minoutbuf 674 | 0 675 | 676 | 677 | scale 678 | 1 679 | 680 | 681 | vlen 682 | 1 683 | 684 | 685 | 686 | blocks_interleaved_short_to_complex 687 | 688 | alias 689 | 690 | 691 | 692 | comment 693 | 694 | 695 | 696 | affinity 697 | 698 | 699 | 700 | _enabled 701 | 1 702 | 703 | 704 | _coordinate 705 | (320, 100) 706 | 707 | 708 | _rotation 709 | 0 710 | 711 | 712 | id 713 | blocks_interleaved_short_to_complex_0_0 714 | 715 | 716 | maxoutbuf 717 | 0 718 | 719 | 720 | minoutbuf 721 | 0 722 | 723 | 724 | swap 725 | False 726 | 727 | 728 | vector_input 729 | False 730 | 731 | 732 | 733 | blocks_multiply_const_vxx 734 | 735 | alias 736 | 737 | 738 | 739 | comment 740 | 741 | 742 | 743 | const 744 | 240e-6 745 | 746 | 747 | affinity 748 | 749 | 750 | 751 | _enabled 752 | True 753 | 754 | 755 | _coordinate 756 | (672, 100) 757 | 758 | 759 | _rotation 760 | 0 761 | 762 | 763 | id 764 | blocks_multiply_const_vxx_0 765 | 766 | 767 | type 768 | complex 769 | 770 | 771 | maxoutbuf 772 | 0 773 | 774 | 775 | minoutbuf 776 | 0 777 | 778 | 779 | vlen 780 | 1 781 | 782 | 783 | 784 | blocks_multiply_const_vxx 785 | 786 | alias 787 | 788 | 789 | 790 | comment 791 | 792 | 793 | 794 | const 795 | 127 796 | 797 | 798 | affinity 799 | 800 | 801 | 802 | _enabled 803 | True 804 | 805 | 806 | _coordinate 807 | (688, 540) 808 | 809 | 810 | _rotation 811 | 0 812 | 813 | 814 | id 815 | blocks_multiply_const_vxx_1 816 | 817 | 818 | type 819 | float 820 | 821 | 822 | maxoutbuf 823 | 0 824 | 825 | 826 | minoutbuf 827 | 0 828 | 829 | 830 | vlen 831 | 1 832 | 833 | 834 | 835 | blocks_multiply_xx 836 | 837 | alias 838 | 839 | 840 | 841 | comment 842 | 843 | 844 | 845 | affinity 846 | 847 | 848 | 849 | _enabled 850 | 1 851 | 852 | 853 | _coordinate 854 | (576, 384) 855 | 856 | 857 | _rotation 858 | 0 859 | 860 | 861 | id 862 | blocks_multiply_xx_0 863 | 864 | 865 | type 866 | float 867 | 868 | 869 | maxoutbuf 870 | 0 871 | 872 | 873 | minoutbuf 874 | 0 875 | 876 | 877 | num_inputs 878 | 2 879 | 880 | 881 | vlen 882 | 1 883 | 884 | 885 | 886 | blocks_multiply_xx 887 | 888 | alias 889 | 890 | 891 | 892 | comment 893 | 894 | 895 | 896 | affinity 897 | 898 | 899 | 900 | _enabled 901 | 1 902 | 903 | 904 | _coordinate 905 | (576, 448) 906 | 907 | 908 | _rotation 909 | 0 910 | 911 | 912 | id 913 | blocks_multiply_xx_1 914 | 915 | 916 | type 917 | float 918 | 919 | 920 | maxoutbuf 921 | 0 922 | 923 | 924 | minoutbuf 925 | 0 926 | 927 | 928 | num_inputs 929 | 2 930 | 931 | 932 | vlen 933 | 1 934 | 935 | 936 | 937 | blocks_threshold_ff 938 | 939 | alias 940 | 941 | 942 | 943 | comment 944 | 945 | 946 | 947 | affinity 948 | 949 | 950 | 951 | _enabled 952 | 0 953 | 954 | 955 | _coordinate 956 | (856, 460) 957 | 958 | 959 | _rotation 960 | 0 961 | 962 | 963 | high 964 | 127.1 965 | 966 | 967 | id 968 | blocks_threshold_ff_0 969 | 970 | 971 | init 972 | 0 973 | 974 | 975 | low 976 | 127 977 | 978 | 979 | maxoutbuf 980 | 0 981 | 982 | 983 | minoutbuf 984 | 0 985 | 986 | 987 | 988 | blocks_throttle 989 | 990 | alias 991 | 992 | 993 | 994 | comment 995 | 996 | 997 | 998 | affinity 999 | 1000 | 1001 | 1002 | _enabled 1003 | True 1004 | 1005 | 1006 | _coordinate 1007 | (496, 100) 1008 | 1009 | 1010 | _rotation 1011 | 0 1012 | 1013 | 1014 | id 1015 | blocks_throttle_0 1016 | 1017 | 1018 | ignoretag 1019 | True 1020 | 1021 | 1022 | maxoutbuf 1023 | 0 1024 | 1025 | 1026 | minoutbuf 1027 | 0 1028 | 1029 | 1030 | samples_per_second 1031 | in_rate 1032 | 1033 | 1034 | type 1035 | complex 1036 | 1037 | 1038 | vlen 1039 | 1 1040 | 1041 | 1042 | 1043 | pfb_arb_resampler_xxx 1044 | 1045 | alias 1046 | 1047 | 1048 | 1049 | comment 1050 | 1051 | 1052 | 1053 | affinity 1054 | 1055 | 1056 | 1057 | _enabled 1058 | 1 1059 | 1060 | 1061 | _coordinate 1062 | (824, 76) 1063 | 1064 | 1065 | _rotation 1066 | 0 1067 | 1068 | 1069 | id 1070 | pfb_arb_resampler_xxx_0 1071 | 1072 | 1073 | maxoutbuf 1074 | 0 1075 | 1076 | 1077 | minoutbuf 1078 | 0 1079 | 1080 | 1081 | nfilts 1082 | 32 1083 | 1084 | 1085 | rrate 1086 | arb_resamp 1087 | 1088 | 1089 | samp_delay 1090 | 0 1091 | 1092 | 1093 | atten 1094 | 100 1095 | 1096 | 1097 | taps 1098 | 1099 | 1100 | 1101 | type 1102 | ccf 1103 | 1104 | 1105 | 1106 | pfb_interpolator_ccf 1107 | 1108 | atten 1109 | 90 1110 | 1111 | 1112 | alias 1113 | 1114 | 1115 | 1116 | comment 1117 | 1118 | 1119 | 1120 | affinity 1121 | 1122 | 1123 | 1124 | _enabled 1125 | 1 1126 | 1127 | 1128 | _coordinate 1129 | (152, 412) 1130 | 1131 | 1132 | _rotation 1133 | 0 1134 | 1135 | 1136 | id 1137 | pfb_interpolator_ccf_0 1138 | 1139 | 1140 | interp 1141 | interpolate 1142 | 1143 | 1144 | maxoutbuf 1145 | 0 1146 | 1147 | 1148 | minoutbuf 1149 | 0 1150 | 1151 | 1152 | samp_delay 1153 | 0 1154 | 1155 | 1156 | taps 1157 | 1158 | 1159 | 1160 | 1161 | wxgui_fftsink2 1162 | 1163 | avg_alpha 1164 | 0 1165 | 1166 | 1167 | average 1168 | False 1169 | 1170 | 1171 | baseband_freq 1172 | 0 1173 | 1174 | 1175 | alias 1176 | 1177 | 1178 | 1179 | comment 1180 | 1181 | 1182 | 1183 | affinity 1184 | 1185 | 1186 | 1187 | _enabled 1188 | 0 1189 | 1190 | 1191 | fft_size 1192 | 1024 1193 | 1194 | 1195 | freqvar 1196 | None 1197 | 1198 | 1199 | _coordinate 1200 | (1064, 204) 1201 | 1202 | 1203 | _rotation 1204 | 0 1205 | 1206 | 1207 | grid_pos 1208 | 1209 | 1210 | 1211 | id 1212 | wxgui_fftsink2_0 1213 | 1214 | 1215 | notebook 1216 | 1217 | 1218 | 1219 | peak_hold 1220 | False 1221 | 1222 | 1223 | ref_level 1224 | 0 1225 | 1226 | 1227 | ref_scale 1228 | 2.0 1229 | 1230 | 1231 | fft_rate 1232 | 15 1233 | 1234 | 1235 | samp_rate 1236 | out_rate 1237 | 1238 | 1239 | title 1240 | FFT Plot 1241 | 1242 | 1243 | type 1244 | float 1245 | 1246 | 1247 | win_size 1248 | 1249 | 1250 | 1251 | win 1252 | None 1253 | 1254 | 1255 | y_divs 1256 | 10 1257 | 1258 | 1259 | y_per_div 1260 | 10 1261 | 1262 | 1263 | 1264 | wxgui_scopesink2 1265 | 1266 | ac_couple 1267 | False 1268 | 1269 | 1270 | alias 1271 | 1272 | 1273 | 1274 | comment 1275 | 1276 | 1277 | 1278 | affinity 1279 | 1280 | 1281 | 1282 | _enabled 1283 | 0 1284 | 1285 | 1286 | _coordinate 1287 | (1064, 396) 1288 | 1289 | 1290 | _rotation 1291 | 0 1292 | 1293 | 1294 | grid_pos 1295 | 1296 | 1297 | 1298 | id 1299 | wxgui_scopesink2_1 1300 | 1301 | 1302 | notebook 1303 | 1304 | 1305 | 1306 | num_inputs 1307 | 2 1308 | 1309 | 1310 | samp_rate 1311 | out_rate 1312 | 1313 | 1314 | t_scale 1315 | 0.5 1316 | 1317 | 1318 | title 1319 | Saturation Detection 1320 | 1321 | 1322 | trig_mode 1323 | wxgui.TRIG_MODE_NORM 1324 | 1325 | 1326 | type 1327 | float 1328 | 1329 | 1330 | v_offset 1331 | 0 1332 | 1333 | 1334 | v_scale 1335 | 0.5 1336 | 1337 | 1338 | win_size 1339 | 1340 | 1341 | 1342 | xy_mode 1343 | True 1344 | 1345 | 1346 | y_axis_label 1347 | Counts 1348 | 1349 | 1350 | 1351 | analog_sig_source_x_0 1352 | blocks_multiply_xx_0 1353 | 0 1354 | 0 1355 | 1356 | 1357 | analog_sig_source_x_1 1358 | blocks_multiply_xx_1 1359 | 0 1360 | 1 1361 | 1362 | 1363 | blocks_add_xx_0 1364 | blocks_multiply_const_vxx_1 1365 | 0 1366 | 0 1367 | 1368 | 1369 | blocks_add_xx_0 1370 | wxgui_fftsink2_0 1371 | 0 1372 | 0 1373 | 1374 | 1375 | blocks_add_xx_0 1376 | wxgui_scopesink2_1 1377 | 0 1378 | 0 1379 | 1380 | 1381 | blocks_complex_to_float_0 1382 | blocks_multiply_xx_1 1383 | 1 1384 | 0 1385 | 1386 | 1387 | blocks_complex_to_float_0 1388 | blocks_multiply_xx_0 1389 | 0 1390 | 1 1391 | 1392 | 1393 | blocks_file_source_0_0_0 1394 | blocks_interleaved_short_to_complex_0_0 1395 | 0 1396 | 0 1397 | 1398 | 1399 | blocks_float_to_char_0 1400 | blocks_file_sink_1 1401 | 0 1402 | 0 1403 | 1404 | 1405 | blocks_interleaved_short_to_complex_0_0 1406 | blocks_throttle_0 1407 | 0 1408 | 0 1409 | 1410 | 1411 | blocks_multiply_const_vxx_0 1412 | pfb_arb_resampler_xxx_0 1413 | 0 1414 | 0 1415 | 1416 | 1417 | blocks_multiply_const_vxx_1 1418 | blocks_float_to_char_0 1419 | 0 1420 | 0 1421 | 1422 | 1423 | blocks_multiply_const_vxx_1 1424 | blocks_threshold_ff_0 1425 | 0 1426 | 0 1427 | 1428 | 1429 | blocks_multiply_xx_0 1430 | blocks_add_xx_0 1431 | 0 1432 | 0 1433 | 1434 | 1435 | blocks_multiply_xx_1 1436 | blocks_add_xx_0 1437 | 0 1438 | 1 1439 | 1440 | 1441 | blocks_threshold_ff_0 1442 | wxgui_scopesink2_1 1443 | 0 1444 | 1 1445 | 1446 | 1447 | blocks_throttle_0 1448 | blocks_multiply_const_vxx_0 1449 | 0 1450 | 0 1451 | 1452 | 1453 | pfb_arb_resampler_xxx_0 1454 | pfb_interpolator_ccf_0 1455 | 0 1456 | 0 1457 | 1458 | 1459 | pfb_interpolator_ccf_0 1460 | blocks_complex_to_float_0 1461 | 0 1462 | 0 1463 | 1464 | 1465 | -------------------------------------------------------------------------------- /UMTS/openbts-umts_6.25e6.cs16.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steve-m/fl2k-examples/8794a155741920162536623a61e0a34c343dc5c2/UMTS/openbts-umts_6.25e6.cs16.xz --------------------------------------------------------------------------------