Commit c96248899b41bf28ee9602d793eec9fc17320996

Authored by bmarechal
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))