options: parameters: author: '' catch_exceptions: 'True' category: '[GRC Hier Blocks]' cmake_opt: '' comment: '' copyright: '' description: https://gallicchio.github.io/learnSDR/lesson01.html gen_cmake: 'On' gen_linking: dynamic generate_options: qt_gui hier_block_src_path: '.:' id: RTL_SDR_FM max_nouts: '0' output_language: python placement: (0,0) qt_qss_theme: '' realtime_scheduling: '' run: 'True' run_command: '{python} -u {filename}' run_options: prompt sizing_mode: fixed thread_safe_setters: '' title: Hello World window_size: (1000,1000) states: bus_sink: false bus_source: false bus_structure: null coordinate: [8, 4.0] rotation: 0 state: enabled blocks: - name: freq id: variable parameters: comment: '' value: freq_range*1e6 states: bus_sink: false bus_source: false bus_structure: null coordinate: [32, 324.0] rotation: 0 state: enabled - name: freq_range id: variable_qtgui_range parameters: comment: '' gui_hint: '' label: '' min_len: '200' orient: QtCore.Qt.Horizontal rangeType: float start: '87.5' step: '0.1' stop: '108' value: '88' widget: counter_slider states: bus_sink: false bus_source: false bus_structure: null coordinate: [328, 388.0] rotation: 0 state: enabled - name: samp_rate id: variable parameters: comment: '' value: 2.4e6 states: bus_sink: false bus_source: false bus_structure: null coordinate: [32, 252.0] rotation: 0 state: enabled - name: analog_wfm_rcv_0 id: analog_wfm_rcv parameters: affinity: '' alias: '' audio_decimation: '10' comment: '' maxoutbuf: '0' minoutbuf: '0' quad_rate: samp_rate/5 states: bus_sink: false bus_source: false bus_structure: null coordinate: [576, 276.0] rotation: 0 state: enabled - name: audio_sink_0 id: audio_sink parameters: affinity: '' alias: '' comment: '' device_name: '' num_inputs: '1' ok_to_block: 'True' samp_rate: '48000' states: bus_sink: false bus_source: false bus_structure: null coordinate: [616, 484.0] rotation: 0 state: enabled - name: low_pass_filter_0 id: low_pass_filter parameters: affinity: '' alias: '' beta: '6.76' comment: '' cutoff_freq: 0.05e6 decim: '5' gain: '1' interp: '1' maxoutbuf: '0' minoutbuf: '0' samp_rate: samp_rate type: fir_filter_ccf width: 0.025e6 win: window.WIN_HAMMING states: bus_sink: false bus_source: false bus_structure: null coordinate: [296, 148.0] rotation: 0 state: enabled - name: note_0 id: note parameters: alias: '' comment: "Decimation \u0441\u0435 \u0432\u043E\u0434\u0438, \u0447\u0435 \"\u043F\ \u0440\u0435\u043C\u0430\u0445\u0432\u0430 \u0432\u0441\u0435\u043A\u0438 N-\u0442\ \u0438 sample\" \u043D\u0430 \u0441\u0438\u0433\u043D\u0430\u043B\u0430, \u043E\ \u0431\u0430\u0447\u0435 \u0438\u043C\u0430 \u043D\u044F\u043A\u043E\u0438 \u0434\ \u0435\u0442\u0430\u0439\u043B\u0438.\n\u0415\u0444\u0435\u043A\u0442\u0430\ \ \u043D\u0430 decimation \u0435 \u0440\u0430\u0437\u043B\u0438\u0447\u0435\u043D\ \ \u043E\u0442 sample rate, \u0437\u0430\u0449\u043E\u0442\u043E \u043F\u0440\ \u0438 decimation\n\u043D\u0430\u043C\u0430\u043B\u044F\u043C\u0435 \u0432\u0438\ \u0441\u043E\u043A\u043E\u0447\u0435\u0441\u0442\u043E\u0442\u043D\u0438\u0442\ \u0435 \u0441\u0438\u0433\u043D\u0430\u043B\u0438 \u0447\u0440\u0435\u0437 \u0441\ \u0430\u043C\u0438\u044F low pass filter.\n\n\u0421\u043F\u043E\u0440\u0435\u0434\ \ \u0442\u0435\u043E\u0440\u0435\u043C\u0430\u0442\u0430 \u043D\u0430 Nyquist\u2013\ Shannon, \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 sample-\u0432\u0430\ \u043C\u0435 \u043F\u043E\u043D\u0435 2x \u043D\u0430 \u043D\u0430\u0439-\u0432\ \u0438\u0441\u043E\u043A\u043E\u0447\u0435\u0441\u0442\u043E\u0442\u043D\u0430\ \u0442\u0430 \u0432\u044A\u043B\u043D\u0430 (\u043F\u043E-\u043A\u043E\u043D\ \u043A\u0440\u0435\u0442\u043D\u043E bandwidth).\n\u0412 Low Pass Filter \u0431\ \u044F\u0445 \u0441\u043B\u043E\u0436\u0438\u043B Decimation=1 \u0438 SampleRate=samp_rate/5,\ \ \u043A\u043E\u0435\u0442\u043E \u0435 \u0440\u0430\u0437\u043B\u0438\u0447\ \u043D\u043E \u043E\u0442 Decimation=5 \u0438 SampleRate=samp_rate.\n\n\u041F\ \u0440\u0438 \u043F\u044A\u0440\u0432\u043E\u0442\u043E, \u0443\u0434\u0440\u044F\ \u043C \u043D\u0430 \u0442\u0435\u043E\u0440\u0435\u043C\u0430\u0442\u0430,\ \ \u0437\u0430\u0449\u043E\u0442\u043E \u043F\u0440\u0430\u0432\u044F sampling\ \ \u043D\u0430 480k, \u0434\u043E\u043A\u0430\u0442\u043E bandwidth \u043C\u0438\ \ \u0435 1.4M (2.4M / 2 ; RTLSDR sample rate = 2 * bandwidth).\n\u041F\u0440\ \u0438 \u0432\u0442\u043E\u0440\u043E\u0442\u043E, \u043F\u044A\u0440\u0432\u043E\ \ \u0441\u0438\u0433\u043D\u0430\u043B\u0430 (\u043D\u0430 \u043F\u044A\u043B\ \u0435\u043D sample rate) \u043C\u0438\u043D\u0430\u0432\u0430 \u043F\u0440\u0435\ \u0437 \u0444\u0438\u043B\u0442\u044A\u0440\u0430 (\u0442.\u0435. \u0432\u0441\ \u0438\u0447\u043A\u043E \u043D\u0430\u0434 50k \u0441\u0435 \u043D\u0430\u043C\ \u0430\u043B\u044F \u0434\u043E 0) \u0438 \u0441\u043B\u0435\u0434 \u0442\u043E\ \u0432\u0430 \u0441\u0435 \u043D\u0430\u043C\u0430\u043B\u044F sample rate-\u0430\ \ \u043D\u0430 480k" note: Decimation vs sample rate states: bus_sink: false bus_source: false bus_structure: null coordinate: [8, 468.0] rotation: 0 state: enabled - name: note_1 id: note parameters: alias: '' comment: "RTLSDR sample rate = 2 * band width\n\u0421\u0438\u0433\u043D\u0430\u043B\ \u0438\u0442\u0435 \u043E\u0442 \u0446\u0435\u043D\u0442\u0440\u0430\u043B\u043D\ \u0430\u0442\u0430 \u0447\u0435\u0441\u0442\u043E\u0442\u0430 \u0441\u0435 \u0438\ \u0437\u0432\u0430\u0436\u0434\u0430\u0442 (\u0446\u0435\u043D\u0442\u0440\u0438\ \u0440\u0430\u0442),\n\u0442\u0430\u043A\u0430 \u0447\u0435 \u0446\u0435\u043D\ \u0442\u0440\u0430\u043B\u043D\u0430\u0442\u0430 \u0447\u0435\u0441\u0442\u043E\ \u0442\u0430 \u0434\u0430 \u0435 0.\n\u0417\u0430\u0442\u043E\u0432\u0430 \u043D\ \u0435 \u0441\u0442\u0438\u0433\u0430\u043C\u0435 \u0434\u043E \u043F\u0440\u043E\ \u0431\u043B\u0435\u043C\u0438 (\u0441 Nyquist\u2013Shannon) \u0432\u044A\u043F\ \u0440\u0435\u043A\u0438, \u0447\u0435\n\u0432\u0437\u0435\u043C\u0430\u043C\ \u0435 \u0441\u0438\u0433\u043D\u0430\u043B\u0438 \u043E\u0442 (\u043F\u0440\ \u0438\u043C\u0435\u0440\u043D\u043E) 88M \u0441\u044A\u0441 sample rate \u043E\ \u0442 2.4M." note: RTLSDR bandwidth states: bus_sink: false bus_source: false bus_structure: null coordinate: [176, 4.0] rotation: 0 state: enabled - name: qtgui_freq_sink_x_0 id: qtgui_freq_sink_x parameters: affinity: '' alias: '' alpha1: '1.0' alpha10: '1.0' alpha2: '1.0' alpha3: '1.0' alpha4: '1.0' alpha5: '1.0' alpha6: '1.0' alpha7: '1.0' alpha8: '1.0' alpha9: '1.0' autoscale: 'False' average: '1.0' axislabels: 'True' bw: samp_rate color1: '"blue"' color10: '"dark blue"' color2: '"red"' color3: '"green"' color4: '"black"' color5: '"cyan"' color6: '"magenta"' color7: '"yellow"' color8: '"dark red"' color9: '"dark green"' comment: '' ctrlpanel: 'False' fc: freq fftsize: '1024' freqhalf: 'True' grid: 'False' gui_hint: '' label: Relative Gain label1: '' label10: '''''' label2: '''''' label3: '''''' label4: '''''' label5: '''''' label6: '''''' label7: '''''' label8: '''''' label9: '''''' legend: 'True' maxoutbuf: '0' minoutbuf: '0' name: Entire band nconnections: '1' norm_window: 'False' showports: 'False' tr_chan: '0' tr_level: '0.0' tr_mode: qtgui.TRIG_MODE_FREE tr_tag: '""' type: complex units: dB update_time: '0.10' width1: '1' width10: '1' width2: '1' width3: '1' width4: '1' width5: '1' width6: '1' width7: '1' width8: '1' width9: '1' wintype: window.WIN_BLACKMAN_hARRIS ymax: '10' ymin: '-140' states: bus_sink: false bus_source: false bus_structure: null coordinate: [296, 284.0] rotation: 0 state: enabled - name: qtgui_freq_sink_x_1 id: qtgui_freq_sink_x parameters: affinity: '' alias: '' alpha1: '1.0' alpha10: '1.0' alpha2: '1.0' alpha3: '1.0' alpha4: '1.0' alpha5: '1.0' alpha6: '1.0' alpha7: '1.0' alpha8: '1.0' alpha9: '1.0' autoscale: 'False' average: '1.0' axislabels: 'True' bw: samp_rate/5 color1: '"blue"' color10: '"dark blue"' color2: '"red"' color3: '"green"' color4: '"black"' color5: '"cyan"' color6: '"magenta"' color7: '"yellow"' color8: '"dark red"' color9: '"dark green"' comment: '' ctrlpanel: 'False' fc: '0' fftsize: '1024' freqhalf: 'True' grid: 'False' gui_hint: '' label: Relative Gain label1: '' label10: '''''' label2: '''''' label3: '''''' label4: '''''' label5: '''''' label6: '''''' label7: '''''' label8: '''''' label9: '''''' legend: 'True' maxoutbuf: '0' minoutbuf: '0' name: After low pass filter nconnections: '1' norm_window: 'False' showports: 'False' tr_chan: '0' tr_level: '0.0' tr_mode: qtgui.TRIG_MODE_FREE tr_tag: '""' type: complex units: dB update_time: '0.10' width1: '1' width10: '1' width2: '1' width3: '1' width4: '1' width5: '1' width6: '1' width7: '1' width8: '1' width9: '1' wintype: window.WIN_BLACKMAN_hARRIS ymax: '10' ymin: '-140' states: bus_sink: false bus_source: false bus_structure: null coordinate: [576, 76.0] rotation: 0 state: enabled - name: qtgui_freq_sink_x_2 id: qtgui_freq_sink_x parameters: affinity: '' alias: '' alpha1: '1.0' alpha10: '1.0' alpha2: '1.0' alpha3: '1.0' alpha4: '1.0' alpha5: '1.0' alpha6: '1.0' alpha7: '1.0' alpha8: '1.0' alpha9: '1.0' autoscale: 'False' average: '1.0' axislabels: 'True' bw: samp_rate/5/10 color1: '"blue"' color10: '"dark blue"' color2: '"red"' color3: '"green"' color4: '"black"' color5: '"cyan"' color6: '"magenta"' color7: '"yellow"' color8: '"dark red"' color9: '"dark green"' comment: '' ctrlpanel: 'False' fc: '0' fftsize: '1024' freqhalf: 'True' grid: 'False' gui_hint: '' label: Relative Gain label1: Audio label10: '''''' label2: '''''' label3: '''''' label4: '''''' label5: '''''' label6: '''''' label7: '''''' label8: '''''' label9: '''''' legend: 'True' maxoutbuf: '0' minoutbuf: '0' name: Audio nconnections: '1' norm_window: 'False' showports: 'False' tr_chan: '0' tr_level: '0.0' tr_mode: qtgui.TRIG_MODE_FREE tr_tag: '""' type: float units: dB update_time: '0.10' width1: '1' width10: '1' width2: '1' width3: '1' width4: '1' width5: '1' width6: '1' width7: '1' width8: '1' width9: '1' wintype: window.WIN_BLACKMAN_hARRIS ymax: '10' ymin: '-140' states: bus_sink: false bus_source: false bus_structure: null coordinate: [608, 388.0] rotation: 0 state: enabled - name: qtgui_time_sink_x_0 id: qtgui_time_sink_x parameters: affinity: '' alias: '' alpha1: '1.0' alpha10: '1.0' alpha2: '1.0' alpha3: '1.0' alpha4: '1.0' alpha5: '1.0' alpha6: '1.0' alpha7: '1.0' alpha8: '1.0' alpha9: '1.0' autoscale: 'False' axislabels: 'True' color1: blue color10: dark blue color2: red color3: green color4: black color5: cyan color6: magenta color7: yellow color8: dark red color9: dark green comment: "\u0412\u0445\u043E\u0434\u043D\u0438\u0442\u0435 \u0434\u0430\u043D\u043D\ \u0438 \u0441\u0430 \u043A\u043E\u043C\u043F\u043B\u0435\u043A\u0441\u043D\u0438\ \ \u0447\u0438\u0441\u043B\u0430" ctrlpanel: 'False' entags: 'True' grid: 'False' gui_hint: '' label1: Real label10: Signal 10 label2: Imag label3: Signal 3 label4: Signal 4 label5: Signal 5 label6: Signal 6 label7: Signal 7 label8: Signal 8 label9: Signal 9 legend: 'True' marker1: '-1' marker10: '-1' marker2: '-1' marker3: '-1' marker4: '-1' marker5: '-1' marker6: '-1' marker7: '-1' marker8: '-1' marker9: '-1' name: '""' nconnections: '1' size: '1024' srate: samp_rate/5 stemplot: 'False' style1: '1' style10: '1' style2: '1' style3: '1' style4: '1' style5: '1' style6: '1' style7: '1' style8: '1' style9: '1' tr_chan: '0' tr_delay: '0' tr_level: '0.0' tr_mode: qtgui.TRIG_MODE_FREE tr_slope: qtgui.TRIG_SLOPE_POS tr_tag: '""' type: complex update_time: '0.10' width1: '1' width10: '1' width2: '1' width3: '1' width4: '1' width5: '1' width6: '1' width7: '1' width8: '1' width9: '1' ylabel: Amplitude ymax: '1' ymin: '-1' yunit: '""' states: bus_sink: false bus_source: false bus_structure: null coordinate: [576, 172.0] rotation: 0 state: enabled - name: soapy_rtlsdr_source_0 id: soapy_rtlsdr_source parameters: affinity: '' agc: 'False' alias: '' bias: 'False' bufflen: '16384' center_freq: freq comment: '' dev_args: '' freq_correction: '0' gain: '20' maxoutbuf: '0' minoutbuf: '0' samp_rate: samp_rate type: fc32 states: bus_sink: false bus_source: false bus_structure: null coordinate: [32, 180.0] rotation: 0 state: enabled connections: - [analog_wfm_rcv_0, '0', audio_sink_0, '0'] - [analog_wfm_rcv_0, '0', qtgui_freq_sink_x_2, '0'] - [low_pass_filter_0, '0', analog_wfm_rcv_0, '0'] - [low_pass_filter_0, '0', qtgui_freq_sink_x_1, '0'] - [low_pass_filter_0, '0', qtgui_time_sink_x_0, '0'] - [soapy_rtlsdr_source_0, '0', low_pass_filter_0, '0'] - [soapy_rtlsdr_source_0, '0', qtgui_freq_sink_x_0, '0'] metadata: file_format: 1 grc_version: 3.10.12.0