Commit c96248899b41bf28ee9602d793eec9fc17320996
1 parent
719cdac4aa
Exists in
master
add fft
Showing 2 changed files with 360 additions and 3 deletions Side-by-side Diff
sdr/fm_radio/fm_radio_comp_decim_lpf.grc
| ... | ... | @@ -514,7 +514,7 @@ |
| 514 | 514 | </param> |
| 515 | 515 | <param> |
| 516 | 516 | <key>gui_hint</key> |
| 517 | - <value>12,0</value> | |
| 517 | + <value>13,0</value> | |
| 518 | 518 | </param> |
| 519 | 519 | <param> |
| 520 | 520 | <key>_rotation</key> |
| ... | ... | @@ -762,6 +762,305 @@ |
| 762 | 762 | </param> |
| 763 | 763 | </block> |
| 764 | 764 | <block> |
| 765 | + <key>qtgui_freq_sink_x</key> | |
| 766 | + <param> | |
| 767 | + <key>autoscale</key> | |
| 768 | + <value>False</value> | |
| 769 | + </param> | |
| 770 | + <param> | |
| 771 | + <key>average</key> | |
| 772 | + <value>0.05</value> | |
| 773 | + </param> | |
| 774 | + <param> | |
| 775 | + <key>axislabels</key> | |
| 776 | + <value>True</value> | |
| 777 | + </param> | |
| 778 | + <param> | |
| 779 | + <key>bw</key> | |
| 780 | + <value>samp_rate*10</value> | |
| 781 | + </param> | |
| 782 | + <param> | |
| 783 | + <key>alias</key> | |
| 784 | + <value></value> | |
| 785 | + </param> | |
| 786 | + <param> | |
| 787 | + <key>fc</key> | |
| 788 | + <value>0</value> | |
| 789 | + </param> | |
| 790 | + <param> | |
| 791 | + <key>comment</key> | |
| 792 | + <value></value> | |
| 793 | + </param> | |
| 794 | + <param> | |
| 795 | + <key>ctrlpanel</key> | |
| 796 | + <value>False</value> | |
| 797 | + </param> | |
| 798 | + <param> | |
| 799 | + <key>affinity</key> | |
| 800 | + <value></value> | |
| 801 | + </param> | |
| 802 | + <param> | |
| 803 | + <key>_enabled</key> | |
| 804 | + <value>True</value> | |
| 805 | + </param> | |
| 806 | + <param> | |
| 807 | + <key>fftsize</key> | |
| 808 | + <value>1024</value> | |
| 809 | + </param> | |
| 810 | + <param> | |
| 811 | + <key>_coordinate</key> | |
| 812 | + <value>(840, 432)</value> | |
| 813 | + </param> | |
| 814 | + <param> | |
| 815 | + <key>gui_hint</key> | |
| 816 | + <value>12,0</value> | |
| 817 | + </param> | |
| 818 | + <param> | |
| 819 | + <key>_rotation</key> | |
| 820 | + <value>0</value> | |
| 821 | + </param> | |
| 822 | + <param> | |
| 823 | + <key>grid</key> | |
| 824 | + <value>True</value> | |
| 825 | + </param> | |
| 826 | + <param> | |
| 827 | + <key>id</key> | |
| 828 | + <value>qtgui_freq_sink_x_0_0</value> | |
| 829 | + </param> | |
| 830 | + <param> | |
| 831 | + <key>legend</key> | |
| 832 | + <value>True</value> | |
| 833 | + </param> | |
| 834 | + <param> | |
| 835 | + <key>alpha1</key> | |
| 836 | + <value>1.0</value> | |
| 837 | + </param> | |
| 838 | + <param> | |
| 839 | + <key>color1</key> | |
| 840 | + <value>"blue"</value> | |
| 841 | + </param> | |
| 842 | + <param> | |
| 843 | + <key>label1</key> | |
| 844 | + <value></value> | |
| 845 | + </param> | |
| 846 | + <param> | |
| 847 | + <key>width1</key> | |
| 848 | + <value>1</value> | |
| 849 | + </param> | |
| 850 | + <param> | |
| 851 | + <key>alpha10</key> | |
| 852 | + <value>1.0</value> | |
| 853 | + </param> | |
| 854 | + <param> | |
| 855 | + <key>color10</key> | |
| 856 | + <value>"dark blue"</value> | |
| 857 | + </param> | |
| 858 | + <param> | |
| 859 | + <key>label10</key> | |
| 860 | + <value></value> | |
| 861 | + </param> | |
| 862 | + <param> | |
| 863 | + <key>width10</key> | |
| 864 | + <value>1</value> | |
| 865 | + </param> | |
| 866 | + <param> | |
| 867 | + <key>alpha2</key> | |
| 868 | + <value>1.0</value> | |
| 869 | + </param> | |
| 870 | + <param> | |
| 871 | + <key>color2</key> | |
| 872 | + <value>"red"</value> | |
| 873 | + </param> | |
| 874 | + <param> | |
| 875 | + <key>label2</key> | |
| 876 | + <value></value> | |
| 877 | + </param> | |
| 878 | + <param> | |
| 879 | + <key>width2</key> | |
| 880 | + <value>1</value> | |
| 881 | + </param> | |
| 882 | + <param> | |
| 883 | + <key>alpha3</key> | |
| 884 | + <value>1.0</value> | |
| 885 | + </param> | |
| 886 | + <param> | |
| 887 | + <key>color3</key> | |
| 888 | + <value>"green"</value> | |
| 889 | + </param> | |
| 890 | + <param> | |
| 891 | + <key>label3</key> | |
| 892 | + <value></value> | |
| 893 | + </param> | |
| 894 | + <param> | |
| 895 | + <key>width3</key> | |
| 896 | + <value>1</value> | |
| 897 | + </param> | |
| 898 | + <param> | |
| 899 | + <key>alpha4</key> | |
| 900 | + <value>1.0</value> | |
| 901 | + </param> | |
| 902 | + <param> | |
| 903 | + <key>color4</key> | |
| 904 | + <value>"black"</value> | |
| 905 | + </param> | |
| 906 | + <param> | |
| 907 | + <key>label4</key> | |
| 908 | + <value></value> | |
| 909 | + </param> | |
| 910 | + <param> | |
| 911 | + <key>width4</key> | |
| 912 | + <value>1</value> | |
| 913 | + </param> | |
| 914 | + <param> | |
| 915 | + <key>alpha5</key> | |
| 916 | + <value>1.0</value> | |
| 917 | + </param> | |
| 918 | + <param> | |
| 919 | + <key>color5</key> | |
| 920 | + <value>"cyan"</value> | |
| 921 | + </param> | |
| 922 | + <param> | |
| 923 | + <key>label5</key> | |
| 924 | + <value></value> | |
| 925 | + </param> | |
| 926 | + <param> | |
| 927 | + <key>width5</key> | |
| 928 | + <value>1</value> | |
| 929 | + </param> | |
| 930 | + <param> | |
| 931 | + <key>alpha6</key> | |
| 932 | + <value>1.0</value> | |
| 933 | + </param> | |
| 934 | + <param> | |
| 935 | + <key>color6</key> | |
| 936 | + <value>"magenta"</value> | |
| 937 | + </param> | |
| 938 | + <param> | |
| 939 | + <key>label6</key> | |
| 940 | + <value></value> | |
| 941 | + </param> | |
| 942 | + <param> | |
| 943 | + <key>width6</key> | |
| 944 | + <value>1</value> | |
| 945 | + </param> | |
| 946 | + <param> | |
| 947 | + <key>alpha7</key> | |
| 948 | + <value>1.0</value> | |
| 949 | + </param> | |
| 950 | + <param> | |
| 951 | + <key>color7</key> | |
| 952 | + <value>"yellow"</value> | |
| 953 | + </param> | |
| 954 | + <param> | |
| 955 | + <key>label7</key> | |
| 956 | + <value></value> | |
| 957 | + </param> | |
| 958 | + <param> | |
| 959 | + <key>width7</key> | |
| 960 | + <value>1</value> | |
| 961 | + </param> | |
| 962 | + <param> | |
| 963 | + <key>alpha8</key> | |
| 964 | + <value>1.0</value> | |
| 965 | + </param> | |
| 966 | + <param> | |
| 967 | + <key>color8</key> | |
| 968 | + <value>"dark red"</value> | |
| 969 | + </param> | |
| 970 | + <param> | |
| 971 | + <key>label8</key> | |
| 972 | + <value></value> | |
| 973 | + </param> | |
| 974 | + <param> | |
| 975 | + <key>width8</key> | |
| 976 | + <value>1</value> | |
| 977 | + </param> | |
| 978 | + <param> | |
| 979 | + <key>alpha9</key> | |
| 980 | + <value>1.0</value> | |
| 981 | + </param> | |
| 982 | + <param> | |
| 983 | + <key>color9</key> | |
| 984 | + <value>"dark green"</value> | |
| 985 | + </param> | |
| 986 | + <param> | |
| 987 | + <key>label9</key> | |
| 988 | + <value></value> | |
| 989 | + </param> | |
| 990 | + <param> | |
| 991 | + <key>width9</key> | |
| 992 | + <value>1</value> | |
| 993 | + </param> | |
| 994 | + <param> | |
| 995 | + <key>maxoutbuf</key> | |
| 996 | + <value>0</value> | |
| 997 | + </param> | |
| 998 | + <param> | |
| 999 | + <key>minoutbuf</key> | |
| 1000 | + <value>0</value> | |
| 1001 | + </param> | |
| 1002 | + <param> | |
| 1003 | + <key>name</key> | |
| 1004 | + <value>""</value> | |
| 1005 | + </param> | |
| 1006 | + <param> | |
| 1007 | + <key>nconnections</key> | |
| 1008 | + <value>2</value> | |
| 1009 | + </param> | |
| 1010 | + <param> | |
| 1011 | + <key>showports</key> | |
| 1012 | + <value>True</value> | |
| 1013 | + </param> | |
| 1014 | + <param> | |
| 1015 | + <key>freqhalf</key> | |
| 1016 | + <value>True</value> | |
| 1017 | + </param> | |
| 1018 | + <param> | |
| 1019 | + <key>tr_chan</key> | |
| 1020 | + <value>0</value> | |
| 1021 | + </param> | |
| 1022 | + <param> | |
| 1023 | + <key>tr_level</key> | |
| 1024 | + <value>0.0</value> | |
| 1025 | + </param> | |
| 1026 | + <param> | |
| 1027 | + <key>tr_mode</key> | |
| 1028 | + <value>qtgui.TRIG_MODE_FREE</value> | |
| 1029 | + </param> | |
| 1030 | + <param> | |
| 1031 | + <key>tr_tag</key> | |
| 1032 | + <value>""</value> | |
| 1033 | + </param> | |
| 1034 | + <param> | |
| 1035 | + <key>type</key> | |
| 1036 | + <value>float</value> | |
| 1037 | + </param> | |
| 1038 | + <param> | |
| 1039 | + <key>update_time</key> | |
| 1040 | + <value>0.10</value> | |
| 1041 | + </param> | |
| 1042 | + <param> | |
| 1043 | + <key>wintype</key> | |
| 1044 | + <value>firdes.WIN_BLACKMAN_hARRIS</value> | |
| 1045 | + </param> | |
| 1046 | + <param> | |
| 1047 | + <key>label</key> | |
| 1048 | + <value>Relative Gain</value> | |
| 1049 | + </param> | |
| 1050 | + <param> | |
| 1051 | + <key>ymax</key> | |
| 1052 | + <value>10</value> | |
| 1053 | + </param> | |
| 1054 | + <param> | |
| 1055 | + <key>ymin</key> | |
| 1056 | + <value>-140</value> | |
| 1057 | + </param> | |
| 1058 | + <param> | |
| 1059 | + <key>units</key> | |
| 1060 | + <value>dB</value> | |
| 1061 | + </param> | |
| 1062 | + </block> | |
| 1063 | + <block> | |
| 765 | 1064 | <key>qtgui_sink_x</key> |
| 766 | 1065 | <param> |
| 767 | 1066 | <key>bw</key> |
| ... | ... | @@ -2585,6 +2884,12 @@ |
| 2585 | 2884 | </block> |
| 2586 | 2885 | <connection> |
| 2587 | 2886 | <source_block_id>analog_wfm_rcv_0</source_block_id> |
| 2887 | + <sink_block_id>qtgui_freq_sink_x_0_0</sink_block_id> | |
| 2888 | + <source_key>0</source_key> | |
| 2889 | + <sink_key>0</sink_key> | |
| 2890 | + </connection> | |
| 2891 | + <connection> | |
| 2892 | + <source_block_id>analog_wfm_rcv_0</source_block_id> | |
| 2588 | 2893 | <sink_block_id>rational_resampler_xxx_0</sink_block_id> |
| 2589 | 2894 | <source_key>0</source_key> |
| 2590 | 2895 | <sink_key>0</sink_key> |
| ... | ... | @@ -2594,6 +2899,12 @@ |
| 2594 | 2899 | <sink_block_id>low_pass_filter_0_0</sink_block_id> |
| 2595 | 2900 | <source_key>0</source_key> |
| 2596 | 2901 | <sink_key>0</sink_key> |
| 2902 | + </connection> | |
| 2903 | + <connection> | |
| 2904 | + <source_block_id>analog_wfm_rcv_0_0</source_block_id> | |
| 2905 | + <sink_block_id>qtgui_freq_sink_x_0_0</sink_block_id> | |
| 2906 | + <source_key>0</source_key> | |
| 2907 | + <sink_key>1</sink_key> | |
| 2597 | 2908 | </connection> |
| 2598 | 2909 | <connection> |
| 2599 | 2910 | <source_block_id>low_pass_filter_0</source_block_id> |
sdr/fm_radio/fm_radio_comp_decim_lpf.py
| ... | ... | @@ -3,7 +3,7 @@ |
| 3 | 3 | ################################################## |
| 4 | 4 | # GNU Radio Python Flow Graph |
| 5 | 5 | # Title: Fm Radio Comp Decim Lpf |
| 6 | -# Generated: Sat Mar 18 09:58:42 2017 | |
| 6 | +# Generated: Sat Mar 18 10:30:17 2017 | |
| 7 | 7 | ################################################## |
| 8 | 8 | |
| 9 | 9 | if __name__ == '__main__': |
| ... | ... | @@ -95,6 +95,49 @@ |
| 95 | 95 | taps=None, |
| 96 | 96 | fractional_bw=None, |
| 97 | 97 | ) |
| 98 | + self.qtgui_freq_sink_x_0_0 = qtgui.freq_sink_f( | |
| 99 | + 1024, #size | |
| 100 | + firdes.WIN_BLACKMAN_hARRIS, #wintype | |
| 101 | + 0, #fc | |
| 102 | + samp_rate*10, #bw | |
| 103 | + "", #name | |
| 104 | + 2 #number of inputs | |
| 105 | + ) | |
| 106 | + self.qtgui_freq_sink_x_0_0.set_update_time(0.10) | |
| 107 | + self.qtgui_freq_sink_x_0_0.set_y_axis(-140, 10) | |
| 108 | + self.qtgui_freq_sink_x_0_0.set_y_label('Relative Gain', 'dB') | |
| 109 | + self.qtgui_freq_sink_x_0_0.set_trigger_mode(qtgui.TRIG_MODE_FREE, 0.0, 0, "") | |
| 110 | + self.qtgui_freq_sink_x_0_0.enable_autoscale(False) | |
| 111 | + self.qtgui_freq_sink_x_0_0.enable_grid(True) | |
| 112 | + self.qtgui_freq_sink_x_0_0.set_fft_average(0.05) | |
| 113 | + self.qtgui_freq_sink_x_0_0.enable_axis_labels(True) | |
| 114 | + self.qtgui_freq_sink_x_0_0.enable_control_panel(False) | |
| 115 | + | |
| 116 | + if not True: | |
| 117 | + self.qtgui_freq_sink_x_0_0.disable_legend() | |
| 118 | + | |
| 119 | + if "float" == "float" or "float" == "msg_float": | |
| 120 | + self.qtgui_freq_sink_x_0_0.set_plot_pos_half(not True) | |
| 121 | + | |
| 122 | + labels = ['', '', '', '', '', | |
| 123 | + '', '', '', '', ''] | |
| 124 | + widths = [1, 1, 1, 1, 1, | |
| 125 | + 1, 1, 1, 1, 1] | |
| 126 | + colors = ["blue", "red", "green", "black", "cyan", | |
| 127 | + "magenta", "yellow", "dark red", "dark green", "dark blue"] | |
| 128 | + alphas = [1.0, 1.0, 1.0, 1.0, 1.0, | |
| 129 | + 1.0, 1.0, 1.0, 1.0, 1.0] | |
| 130 | + for i in xrange(2): | |
| 131 | + if len(labels[i]) == 0: | |
| 132 | + self.qtgui_freq_sink_x_0_0.set_line_label(i, "Data {0}".format(i)) | |
| 133 | + else: | |
| 134 | + self.qtgui_freq_sink_x_0_0.set_line_label(i, labels[i]) | |
| 135 | + self.qtgui_freq_sink_x_0_0.set_line_width(i, widths[i]) | |
| 136 | + self.qtgui_freq_sink_x_0_0.set_line_color(i, colors[i]) | |
| 137 | + self.qtgui_freq_sink_x_0_0.set_line_alpha(i, alphas[i]) | |
| 138 | + | |
| 139 | + self._qtgui_freq_sink_x_0_0_win = sip.wrapinstance(self.qtgui_freq_sink_x_0_0.pyqwidget(), Qt.QWidget) | |
| 140 | + self.top_grid_layout.addWidget(self._qtgui_freq_sink_x_0_0_win, 12,0) | |
| 98 | 141 | self.qtgui_freq_sink_x_0 = qtgui.freq_sink_f( |
| 99 | 142 | 1024, #size |
| 100 | 143 | firdes.WIN_BLACKMAN_hARRIS, #wintype |
| ... | ... | @@ -137,7 +180,7 @@ |
| 137 | 180 | self.qtgui_freq_sink_x_0.set_line_alpha(i, alphas[i]) |
| 138 | 181 | |
| 139 | 182 | self._qtgui_freq_sink_x_0_win = sip.wrapinstance(self.qtgui_freq_sink_x_0.pyqwidget(), Qt.QWidget) |
| 140 | - self.top_grid_layout.addWidget(self._qtgui_freq_sink_x_0_win, 12,0) | |
| 183 | + self.top_grid_layout.addWidget(self._qtgui_freq_sink_x_0_win, 13,0) | |
| 141 | 184 | self.low_pass_filter_0_0 = filter.fir_filter_fff(10, firdes.low_pass( |
| 142 | 185 | 1, samp_rate*10, 96e3, 1e3, firdes.WIN_HAMMING, 6.76)) |
| 143 | 186 | self.low_pass_filter_0 = filter.fir_filter_ccf(4, firdes.low_pass( |
| 144 | 187 | |
| ... | ... | @@ -155,8 +198,10 @@ |
| 155 | 198 | ################################################## |
| 156 | 199 | # Connections |
| 157 | 200 | ################################################## |
| 201 | + self.connect((self.analog_wfm_rcv_0, 0), (self.qtgui_freq_sink_x_0_0, 0)) | |
| 158 | 202 | self.connect((self.analog_wfm_rcv_0, 0), (self.rational_resampler_xxx_0, 0)) |
| 159 | 203 | self.connect((self.analog_wfm_rcv_0_0, 0), (self.low_pass_filter_0_0, 0)) |
| 204 | + self.connect((self.analog_wfm_rcv_0_0, 0), (self.qtgui_freq_sink_x_0_0, 1)) | |
| 160 | 205 | self.connect((self.low_pass_filter_0, 0), (self.analog_wfm_rcv_0_0, 0)) |
| 161 | 206 | self.connect((self.low_pass_filter_0_0, 0), (self.qtgui_freq_sink_x_0, 1)) |
| 162 | 207 | self.connect((self.rational_resampler_xxx_0, 0), (self.audio_sink_0, 0)) |
| ... | ... | @@ -176,6 +221,7 @@ |
| 176 | 221 | def set_samp_rate(self, samp_rate): |
| 177 | 222 | self.samp_rate = samp_rate |
| 178 | 223 | self.rtlsdr_source_0.set_sample_rate(self.samp_rate*10*4) |
| 224 | + self.qtgui_freq_sink_x_0_0.set_frequency_range(0, self.samp_rate*10) | |
| 179 | 225 | self.qtgui_freq_sink_x_0.set_frequency_range(0, self.samp_rate) |
| 180 | 226 | self.low_pass_filter_0_0.set_taps(firdes.low_pass(1, self.samp_rate*10, 96e3, 1e3, firdes.WIN_HAMMING, 6.76)) |
| 181 | 227 | self.low_pass_filter_0.set_taps(firdes.low_pass(1, self.samp_rate*10*4, 100e3, 1e3, firdes.WIN_HAMMING, 6.76)) |