FM Receiver from Recording
Broadcast FM receiver - a hosted 250 kHz IQ recording demodulated to audio and played through the speakers, with a live volume control
- Author Claude
- Category Audio
- Blocks 12
- Connections 6
- File
audio/fm_receiver_recording.grc
Blocks used
| Block | Module | Used |
|---|---|---|
| Variable | GNU Radio | 3 |
| QT GUI Frequency Sink | GNU Radio | 2 |
| Audio Sink | GNU Radio | 1 |
| GR World Recording | GNU Radio | 1 |
| GUI Layout | GNU Radio | 1 |
| Multiply Const | GNU Radio | 1 |
| QT GUI Range | GNU Radio | 1 |
| Rational Resampler | GNU Radio | 1 |
| WBFM Receive | GNU Radio | 1 |
Flowgraph source
audio/fm_receiver_recording.grc
options:
parameters:
author: Claude
comment: ''
copyright: ''
description: Broadcast FM receiver - a hosted 250 kHz IQ recording demodulated to audio and played through the speakers, with a live volume control
generate_options: qt_gui
id: FM_Receiver_from_Recording
title: FM Receiver from Recording
states:
coordinate: [10, 10]
rotation: 0
state: enabled
blocks:
- name: audio_rate
id: variable
parameters:
comment: ''
value: '48000'
states:
coordinate: [590, 10]
rotation: 0
state: enabled
- name: quad_rate
id: variable
parameters:
comment: ''
value: '240000'
states:
coordinate: [760, 10]
rotation: 0
state: enabled
- name: samp_rate
id: variable
parameters:
comment: ''
value: '250000'
states:
coordinate: [930, 10]
rotation: 0
state: enabled
- name: volume
id: variable_qtgui_range
parameters:
comment: ''
label: Volume
min_len: '240'
orient: QtCore.Qt.Horizontal
rangeType: float
start: '0'
step: '0.01'
stop: '1'
value: '0.3'
widget: counter_slider
states:
coordinate: [1100, 10]
rotation: 0
state: enabled
- name: audio_spectrum
id: qtgui_freq_sink_x
parameters:
affinity: ''
alias: ''
alpha1: '1'
alpha10: '1'
alpha2: '1'
alpha3: '1'
alpha4: '1'
alpha5: '1'
alpha6: '1'
alpha7: '1'
alpha8: '1'
alpha9: '1'
autoscale: 'False'
average: '1.0'
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: ''
ctrlpanel: 'False'
fc: '0'
fftsize: '1024'
freqhalf: 'False'
grid: 'True'
label1: Audio
label10: ''
label2: ''
label3: ''
label4: ''
label5: ''
label6: ''
label7: ''
label8: ''
label9: ''
legend: 'False'
marker1: '-1'
marker10: '-1'
marker2: '-1'
marker3: '-1'
marker4: '-1'
marker5: '-1'
marker6: '-1'
marker7: '-1'
marker8: '-1'
marker9: '-1'
maxoutbuf: '0'
minoutbuf: '0'
name: Demodulated audio (19 kHz stereo pilot visible)
nconnections: '1'
samp_rate: audio_rate
style1: '1'
style10: '1'
style2: '1'
style3: '1'
style4: '1'
style5: '1'
style6: '1'
style7: '1'
style8: '1'
style9: '1'
tr_chan: '0'
tr_level: '0'
tr_mode: qtgui.TRIG_MODE_FREE
tr_tag: ''
type: float
update_time: '0.1'
width1: '1'
width10: '1'
width2: '1'
width3: '1'
width4: '1'
width5: '1'
width6: '1'
width7: '1'
width8: '1'
width9: '1'
ymax: '-20'
ymin: '-120'
states:
coordinate: [1410, 210]
rotation: 0
state: enabled
- name: recording
id: wasm_gr_world_recording
parameters:
affinity: ''
alias: ''
comment: ''
length: '0'
maxoutbuf: '0'
minoutbuf: '0'
offset: '0'
recording: fm_rds_250k_1Msamples
repeat: 'True'
type: complex
states:
coordinate: [10, 250]
rotation: 0
state: enabled
- name: resample_to_quad
id: rational_resampler_xxx
parameters:
affinity: ''
alias: ''
comment: ''
decim: '25'
fbw: '0'
interp: '24'
maxoutbuf: '0'
minoutbuf: '0'
taps: '[]'
type: ccc
states:
coordinate: [390, 230]
rotation: 0
state: enabled
- name: rf_spectrum
id: qtgui_freq_sink_x
parameters:
affinity: ''
alias: ''
alpha1: '1'
alpha10: '1'
alpha2: '1'
alpha3: '1'
alpha4: '1'
alpha5: '1'
alpha6: '1'
alpha7: '1'
alpha8: '1'
alpha9: '1'
autoscale: 'False'
average: '1.0'
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: ''
ctrlpanel: 'False'
fc: '100000000'
fftsize: '1024'
freqhalf: 'True'
grid: 'True'
label1: FM station
label10: ''
label2: ''
label3: ''
label4: ''
label5: ''
label6: ''
label7: ''
label8: ''
label9: ''
legend: 'False'
marker1: '-1'
marker10: '-1'
marker2: '-1'
marker3: '-1'
marker4: '-1'
marker5: '-1'
marker6: '-1'
marker7: '-1'
marker8: '-1'
marker9: '-1'
maxoutbuf: '0'
minoutbuf: '0'
name: RF spectrum
nconnections: '1'
samp_rate: samp_rate
style1: '1'
style10: '1'
style2: '1'
style3: '1'
style4: '1'
style5: '1'
style6: '1'
style7: '1'
style8: '1'
style9: '1'
tr_chan: '0'
tr_level: '0'
tr_mode: qtgui.TRIG_MODE_FREE
tr_tag: ''
type: complex
update_time: '0.1'
width1: '1'
width10: '1'
width2: '1'
width3: '1'
width4: '1'
width5: '1'
width6: '1'
width7: '1'
width8: '1'
width9: '1'
ymax: '10'
ymin: '-100'
states:
coordinate: [390, 370]
rotation: 0
state: enabled
- name: speakers
id: audio_sink
parameters:
affinity: ''
alias: ''
comment: ''
device_name: ''
num_inputs: '1'
ok_to_block: 'True'
samp_rate: audio_rate
states:
coordinate: [1410, 390]
rotation: 0
state: enabled
- name: volume_gain
id: blocks_multiply_const_vxx
parameters:
affinity: ''
alias: ''
comment: ''
const: volume
maxoutbuf: '0'
minoutbuf: '0'
mode: scalar
type: float
vlen: '1'
states:
coordinate: [1100, 250]
rotation: 0
state: enabled
- name: wasm_gui_layout_0
id: wasm_gui_layout
parameters:
affinity: ''
alias: ''
columns: '12'
comment: ''
layout: '{}'
row_height: '60'
states:
coordinate: [300, 10]
rotation: 0
state: enabled
- name: wbfm_demod
id: analog_wfm_rcv
parameters:
affinity: ''
alias: ''
audio_decimation: '5'
comment: ''
deemph_tau: '0.000075'
maxoutbuf: '0'
minoutbuf: '0'
quad_rate: quad_rate
states:
coordinate: [740, 240]
rotation: 0
state: enabled
connections:
- [recording, '0', resample_to_quad, '0']
- [recording, '0', rf_spectrum, '0']
- [resample_to_quad, '0', wbfm_demod, '0']
- [volume_gain, '0', audio_spectrum, '0']
- [volume_gain, '0', speakers, '0']
- [wbfm_demod, '0', volume_gain, '0']
metadata:
file_format: 1
grc_version: 3.11.0.0