fm_radio.grc 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726
  1. options:
  2. parameters:
  3. author: ''
  4. category: '[GRC Hier Blocks]'
  5. cmake_opt: ''
  6. comment: ''
  7. copyright: ''
  8. description: ''
  9. gen_cmake: 'On'
  10. gen_linking: dynamic
  11. generate_options: qt_gui
  12. hier_block_src_path: '.:'
  13. id: fm_radio
  14. max_nouts: '0'
  15. output_language: python
  16. placement: (0,0)
  17. qt_qss_theme: ''
  18. realtime_scheduling: ''
  19. run: 'True'
  20. run_command: '{python} -u {filename}'
  21. run_options: prompt
  22. sizing_mode: fixed
  23. thread_safe_setters: ''
  24. title: FM Radio Receiver
  25. window_size: ''
  26. states:
  27. bus_sink: false
  28. bus_source: false
  29. bus_structure: null
  30. coordinate: [32, 34]
  31. rotation: 0
  32. state: enabled
  33. blocks:
  34. - name: audio_sample_rate_hertz
  35. id: variable
  36. parameters:
  37. comment: ''
  38. value: '48000'
  39. states:
  40. bus_sink: false
  41. bus_source: false
  42. bus_structure: null
  43. coordinate: [1105, 404]
  44. rotation: 0
  45. state: true
  46. - name: channel_width_hertz
  47. id: variable
  48. parameters:
  49. comment: ''
  50. value: '250000'
  51. states:
  52. bus_sink: false
  53. bus_source: false
  54. bus_structure: null
  55. coordinate: [705, 156]
  56. rotation: 0
  57. state: true
  58. - name: frequency_mhz
  59. id: variable_qtgui_range
  60. parameters:
  61. comment: ''
  62. gui_hint: ''
  63. label: Frequency MHz
  64. min_len: '200'
  65. orient: Qt.Horizontal
  66. rangeType: float
  67. start: '87.5'
  68. step: '0.1'
  69. stop: '108'
  70. value: '98.3'
  71. widget: counter_slider
  72. states:
  73. bus_sink: false
  74. bus_source: false
  75. bus_structure: null
  76. coordinate: [405, 36]
  77. rotation: 0
  78. state: true
  79. - name: samp_rate
  80. id: variable
  81. parameters:
  82. comment: ''
  83. value: '2560000'
  84. states:
  85. bus_sink: false
  86. bus_source: false
  87. bus_structure: null
  88. coordinate: [33, 182]
  89. rotation: 0
  90. state: enabled
  91. - name: volume
  92. id: variable_qtgui_range
  93. parameters:
  94. comment: ''
  95. gui_hint: ''
  96. label: Volume
  97. min_len: '200'
  98. orient: Qt.Horizontal
  99. rangeType: float
  100. start: '0'
  101. step: '0.05'
  102. stop: '1'
  103. value: '0.5'
  104. widget: counter_slider
  105. states:
  106. bus_sink: false
  107. bus_source: false
  108. bus_structure: null
  109. coordinate: [1563, 545]
  110. rotation: 0
  111. state: true
  112. - name: analog_wfm_rcv_0
  113. id: analog_wfm_rcv
  114. parameters:
  115. affinity: ''
  116. alias: ''
  117. audio_decimation: '1'
  118. comment: ''
  119. maxoutbuf: '0'
  120. minoutbuf: '0'
  121. quad_rate: channel_width_hertz
  122. states:
  123. bus_sink: false
  124. bus_source: false
  125. bus_structure: null
  126. coordinate: [1100, 261]
  127. rotation: 0
  128. state: enabled
  129. - name: audio_sink_0
  130. id: audio_sink
  131. parameters:
  132. affinity: ''
  133. alias: ''
  134. comment: ''
  135. device_name: ''
  136. num_inputs: '1'
  137. ok_to_block: 'True'
  138. samp_rate: audio_sample_rate_hertz
  139. states:
  140. bus_sink: false
  141. bus_source: false
  142. bus_structure: null
  143. coordinate: [1156, 503]
  144. rotation: 180
  145. state: enabled
  146. - name: blocks_multiply_const_vxx_0
  147. id: blocks_multiply_const_vxx
  148. parameters:
  149. affinity: ''
  150. alias: ''
  151. comment: ''
  152. const: volume
  153. maxoutbuf: '0'
  154. minoutbuf: '0'
  155. type: float
  156. vlen: '1'
  157. states:
  158. bus_sink: false
  159. bus_source: false
  160. bus_structure: null
  161. coordinate: [1594, 479]
  162. rotation: 180
  163. state: true
  164. - name: low_pass_filter_0
  165. id: low_pass_filter
  166. parameters:
  167. affinity: ''
  168. alias: ''
  169. beta: '6.76'
  170. comment: https://de.wikipedia.org/wiki/Datei:UKW-Rundfunk-Basisband.svg
  171. cutoff_freq: '100000'
  172. decim: int(samp_rate/channel_width_hertz)
  173. gain: '2'
  174. interp: '1'
  175. maxoutbuf: '0'
  176. minoutbuf: '0'
  177. samp_rate: samp_rate
  178. type: fir_filter_ccf
  179. width: '10000'
  180. win: firdes.WIN_KAISER
  181. states:
  182. bus_sink: false
  183. bus_source: false
  184. bus_structure: null
  185. coordinate: [669, 283]
  186. rotation: 0
  187. state: true
  188. - name: qtgui_freq_sink_x_0
  189. id: qtgui_freq_sink_x
  190. parameters:
  191. affinity: ''
  192. alias: ''
  193. alpha1: '1.0'
  194. alpha10: '1.0'
  195. alpha2: '1.0'
  196. alpha3: '1.0'
  197. alpha4: '1.0'
  198. alpha5: '1.0'
  199. alpha6: '1.0'
  200. alpha7: '1.0'
  201. alpha8: '1.0'
  202. alpha9: '1.0'
  203. autoscale: 'False'
  204. average: '1.0'
  205. axislabels: 'True'
  206. bw: channel_width_hertz
  207. color1: '"blue"'
  208. color10: '"dark blue"'
  209. color2: '"red"'
  210. color3: '"green"'
  211. color4: '"black"'
  212. color5: '"cyan"'
  213. color6: '"magenta"'
  214. color7: '"yellow"'
  215. color8: '"dark red"'
  216. color9: '"dark green"'
  217. comment: ''
  218. ctrlpanel: 'False'
  219. fc: '0'
  220. fftsize: '1024'
  221. freqhalf: 'True'
  222. grid: 'False'
  223. gui_hint: ''
  224. label: Relative Gain
  225. label1: ''
  226. label10: ''''''
  227. label2: ''''''
  228. label3: ''''''
  229. label4: ''''''
  230. label5: ''''''
  231. label6: ''''''
  232. label7: ''''''
  233. label8: ''''''
  234. label9: ''''''
  235. legend: 'False'
  236. maxoutbuf: '0'
  237. minoutbuf: '0'
  238. name: '"Demod Out"'
  239. nconnections: '1'
  240. showports: 'False'
  241. tr_chan: '0'
  242. tr_level: '0.0'
  243. tr_mode: qtgui.TRIG_MODE_FREE
  244. tr_tag: '""'
  245. type: float
  246. units: dB
  247. update_time: '0.10'
  248. width1: '1'
  249. width10: '1'
  250. width2: '1'
  251. width3: '1'
  252. width4: '1'
  253. width5: '1'
  254. width6: '1'
  255. width7: '1'
  256. width8: '1'
  257. width9: '1'
  258. wintype: firdes.WIN_BLACKMAN_hARRIS
  259. ymax: '10'
  260. ymin: '-140'
  261. states:
  262. bus_sink: false
  263. bus_source: false
  264. bus_structure: null
  265. coordinate: [1578, 111]
  266. rotation: 0
  267. state: true
  268. - name: qtgui_waterfall_sink_x_0
  269. id: qtgui_waterfall_sink_x
  270. parameters:
  271. affinity: ''
  272. alias: ''
  273. alpha1: '1.0'
  274. alpha10: '1.0'
  275. alpha2: '1.0'
  276. alpha3: '1.0'
  277. alpha4: '1.0'
  278. alpha5: '1.0'
  279. alpha6: '1.0'
  280. alpha7: '1.0'
  281. alpha8: '1.0'
  282. alpha9: '1.0'
  283. axislabels: 'True'
  284. bw: samp_rate
  285. color1: '0'
  286. color10: '0'
  287. color2: '0'
  288. color3: '0'
  289. color4: '0'
  290. color5: '0'
  291. color6: '0'
  292. color7: '0'
  293. color8: '0'
  294. color9: '0'
  295. comment: ''
  296. fc: frequency_mhz*1e6
  297. fftsize: '1048'
  298. freqhalf: 'True'
  299. grid: 'False'
  300. gui_hint: ''
  301. int_max: '10'
  302. int_min: '-140'
  303. label1: ''
  304. label10: ''
  305. label2: ''
  306. label3: ''
  307. label4: ''
  308. label5: ''
  309. label6: ''
  310. label7: ''
  311. label8: ''
  312. label9: ''
  313. legend: 'True'
  314. maxoutbuf: '0'
  315. minoutbuf: '0'
  316. name: '""'
  317. nconnections: '1'
  318. showports: 'False'
  319. type: complex
  320. update_time: '0.10'
  321. wintype: firdes.WIN_BLACKMAN_hARRIS
  322. states:
  323. bus_sink: false
  324. bus_source: false
  325. bus_structure: null
  326. coordinate: [676, 559]
  327. rotation: 0
  328. state: true
  329. - name: rational_resampler_xxx_0
  330. id: rational_resampler_xxx
  331. parameters:
  332. affinity: ''
  333. alias: ''
  334. comment: ''
  335. decim: channel_width_hertz
  336. fbw: '0'
  337. interp: audio_sample_rate_hertz
  338. maxoutbuf: '0'
  339. minoutbuf: '0'
  340. taps: ''
  341. type: fff
  342. states:
  343. bus_sink: false
  344. bus_source: false
  345. bus_structure: null
  346. coordinate: [1576, 292]
  347. rotation: 0
  348. state: true
  349. - name: rtlsdr_source_0
  350. id: rtlsdr_source
  351. parameters:
  352. affinity: ''
  353. alias: ''
  354. ant0: ''
  355. ant1: ''
  356. ant10: ''
  357. ant11: ''
  358. ant12: ''
  359. ant13: ''
  360. ant14: ''
  361. ant15: ''
  362. ant16: ''
  363. ant17: ''
  364. ant18: ''
  365. ant19: ''
  366. ant2: ''
  367. ant20: ''
  368. ant21: ''
  369. ant22: ''
  370. ant23: ''
  371. ant24: ''
  372. ant25: ''
  373. ant26: ''
  374. ant27: ''
  375. ant28: ''
  376. ant29: ''
  377. ant3: ''
  378. ant30: ''
  379. ant31: ''
  380. ant4: ''
  381. ant5: ''
  382. ant6: ''
  383. ant7: ''
  384. ant8: ''
  385. ant9: ''
  386. args: '""'
  387. bb_gain0: '20'
  388. bb_gain1: '20'
  389. bb_gain10: '20'
  390. bb_gain11: '20'
  391. bb_gain12: '20'
  392. bb_gain13: '20'
  393. bb_gain14: '20'
  394. bb_gain15: '20'
  395. bb_gain16: '20'
  396. bb_gain17: '20'
  397. bb_gain18: '20'
  398. bb_gain19: '20'
  399. bb_gain2: '20'
  400. bb_gain20: '20'
  401. bb_gain21: '20'
  402. bb_gain22: '20'
  403. bb_gain23: '20'
  404. bb_gain24: '20'
  405. bb_gain25: '20'
  406. bb_gain26: '20'
  407. bb_gain27: '20'
  408. bb_gain28: '20'
  409. bb_gain29: '20'
  410. bb_gain3: '20'
  411. bb_gain30: '20'
  412. bb_gain31: '20'
  413. bb_gain4: '20'
  414. bb_gain5: '20'
  415. bb_gain6: '20'
  416. bb_gain7: '20'
  417. bb_gain8: '20'
  418. bb_gain9: '20'
  419. bw0: '0'
  420. bw1: '0'
  421. bw10: '0'
  422. bw11: '0'
  423. bw12: '0'
  424. bw13: '0'
  425. bw14: '0'
  426. bw15: '0'
  427. bw16: '0'
  428. bw17: '0'
  429. bw18: '0'
  430. bw19: '0'
  431. bw2: '0'
  432. bw20: '0'
  433. bw21: '0'
  434. bw22: '0'
  435. bw23: '0'
  436. bw24: '0'
  437. bw25: '0'
  438. bw26: '0'
  439. bw27: '0'
  440. bw28: '0'
  441. bw29: '0'
  442. bw3: '0'
  443. bw30: '0'
  444. bw31: '0'
  445. bw4: '0'
  446. bw5: '0'
  447. bw6: '0'
  448. bw7: '0'
  449. bw8: '0'
  450. bw9: '0'
  451. clock_source0: ''
  452. clock_source1: ''
  453. clock_source2: ''
  454. clock_source3: ''
  455. clock_source4: ''
  456. clock_source5: ''
  457. clock_source6: ''
  458. clock_source7: ''
  459. comment: '> What is the RTL-SDRs sample rate?
  460. > The maximum sample rate is 3.2 MS/s (mega samples per second).
  461. > However, the RTL-SDR is unstable at this rate and may drop samples.
  462. > The maximum sample rate that does not drop samples is 2.56 MS/s, [...]
  463. https://www.rtl-sdr.com/about-rtl-sdr/'
  464. corr0: '0'
  465. corr1: '0'
  466. corr10: '0'
  467. corr11: '0'
  468. corr12: '0'
  469. corr13: '0'
  470. corr14: '0'
  471. corr15: '0'
  472. corr16: '0'
  473. corr17: '0'
  474. corr18: '0'
  475. corr19: '0'
  476. corr2: '0'
  477. corr20: '0'
  478. corr21: '0'
  479. corr22: '0'
  480. corr23: '0'
  481. corr24: '0'
  482. corr25: '0'
  483. corr26: '0'
  484. corr27: '0'
  485. corr28: '0'
  486. corr29: '0'
  487. corr3: '0'
  488. corr30: '0'
  489. corr31: '0'
  490. corr4: '0'
  491. corr5: '0'
  492. corr6: '0'
  493. corr7: '0'
  494. corr8: '0'
  495. corr9: '0'
  496. dc_offset_mode0: '0'
  497. dc_offset_mode1: '0'
  498. dc_offset_mode10: '0'
  499. dc_offset_mode11: '0'
  500. dc_offset_mode12: '0'
  501. dc_offset_mode13: '0'
  502. dc_offset_mode14: '0'
  503. dc_offset_mode15: '0'
  504. dc_offset_mode16: '0'
  505. dc_offset_mode17: '0'
  506. dc_offset_mode18: '0'
  507. dc_offset_mode19: '0'
  508. dc_offset_mode2: '0'
  509. dc_offset_mode20: '0'
  510. dc_offset_mode21: '0'
  511. dc_offset_mode22: '0'
  512. dc_offset_mode23: '0'
  513. dc_offset_mode24: '0'
  514. dc_offset_mode25: '0'
  515. dc_offset_mode26: '0'
  516. dc_offset_mode27: '0'
  517. dc_offset_mode28: '0'
  518. dc_offset_mode29: '0'
  519. dc_offset_mode3: '0'
  520. dc_offset_mode30: '0'
  521. dc_offset_mode31: '0'
  522. dc_offset_mode4: '0'
  523. dc_offset_mode5: '0'
  524. dc_offset_mode6: '0'
  525. dc_offset_mode7: '0'
  526. dc_offset_mode8: '0'
  527. dc_offset_mode9: '0'
  528. freq0: frequency_mhz*1e6
  529. freq1: 100e6
  530. freq10: 100e6
  531. freq11: 100e6
  532. freq12: 100e6
  533. freq13: 100e6
  534. freq14: 100e6
  535. freq15: 100e6
  536. freq16: 100e6
  537. freq17: 100e6
  538. freq18: 100e6
  539. freq19: 100e6
  540. freq2: 100e6
  541. freq20: 100e6
  542. freq21: 100e6
  543. freq22: 100e6
  544. freq23: 100e6
  545. freq24: 100e6
  546. freq25: 100e6
  547. freq26: 100e6
  548. freq27: 100e6
  549. freq28: 100e6
  550. freq29: 100e6
  551. freq3: 100e6
  552. freq30: 100e6
  553. freq31: 100e6
  554. freq4: 100e6
  555. freq5: 100e6
  556. freq6: 100e6
  557. freq7: 100e6
  558. freq8: 100e6
  559. freq9: 100e6
  560. gain0: '20'
  561. gain1: '10'
  562. gain10: '10'
  563. gain11: '10'
  564. gain12: '10'
  565. gain13: '10'
  566. gain14: '10'
  567. gain15: '10'
  568. gain16: '10'
  569. gain17: '10'
  570. gain18: '10'
  571. gain19: '10'
  572. gain2: '10'
  573. gain20: '10'
  574. gain21: '10'
  575. gain22: '10'
  576. gain23: '10'
  577. gain24: '10'
  578. gain25: '10'
  579. gain26: '10'
  580. gain27: '10'
  581. gain28: '10'
  582. gain29: '10'
  583. gain3: '10'
  584. gain30: '10'
  585. gain31: '10'
  586. gain4: '10'
  587. gain5: '10'
  588. gain6: '10'
  589. gain7: '10'
  590. gain8: '10'
  591. gain9: '10'
  592. gain_mode0: 'False'
  593. gain_mode1: 'False'
  594. gain_mode10: 'False'
  595. gain_mode11: 'False'
  596. gain_mode12: 'False'
  597. gain_mode13: 'False'
  598. gain_mode14: 'False'
  599. gain_mode15: 'False'
  600. gain_mode16: 'False'
  601. gain_mode17: 'False'
  602. gain_mode18: 'False'
  603. gain_mode19: 'False'
  604. gain_mode2: 'False'
  605. gain_mode20: 'False'
  606. gain_mode21: 'False'
  607. gain_mode22: 'False'
  608. gain_mode23: 'False'
  609. gain_mode24: 'False'
  610. gain_mode25: 'False'
  611. gain_mode26: 'False'
  612. gain_mode27: 'False'
  613. gain_mode28: 'False'
  614. gain_mode29: 'False'
  615. gain_mode3: 'False'
  616. gain_mode30: 'False'
  617. gain_mode31: 'False'
  618. gain_mode4: 'False'
  619. gain_mode5: 'False'
  620. gain_mode6: 'False'
  621. gain_mode7: 'False'
  622. gain_mode8: 'False'
  623. gain_mode9: 'False'
  624. if_gain0: '20'
  625. if_gain1: '20'
  626. if_gain10: '20'
  627. if_gain11: '20'
  628. if_gain12: '20'
  629. if_gain13: '20'
  630. if_gain14: '20'
  631. if_gain15: '20'
  632. if_gain16: '20'
  633. if_gain17: '20'
  634. if_gain18: '20'
  635. if_gain19: '20'
  636. if_gain2: '20'
  637. if_gain20: '20'
  638. if_gain21: '20'
  639. if_gain22: '20'
  640. if_gain23: '20'
  641. if_gain24: '20'
  642. if_gain25: '20'
  643. if_gain26: '20'
  644. if_gain27: '20'
  645. if_gain28: '20'
  646. if_gain29: '20'
  647. if_gain3: '20'
  648. if_gain30: '20'
  649. if_gain31: '20'
  650. if_gain4: '20'
  651. if_gain5: '20'
  652. if_gain6: '20'
  653. if_gain7: '20'
  654. if_gain8: '20'
  655. if_gain9: '20'
  656. iq_balance_mode0: '0'
  657. iq_balance_mode1: '0'
  658. iq_balance_mode10: '0'
  659. iq_balance_mode11: '0'
  660. iq_balance_mode12: '0'
  661. iq_balance_mode13: '0'
  662. iq_balance_mode14: '0'
  663. iq_balance_mode15: '0'
  664. iq_balance_mode16: '0'
  665. iq_balance_mode17: '0'
  666. iq_balance_mode18: '0'
  667. iq_balance_mode19: '0'
  668. iq_balance_mode2: '0'
  669. iq_balance_mode20: '0'
  670. iq_balance_mode21: '0'
  671. iq_balance_mode22: '0'
  672. iq_balance_mode23: '0'
  673. iq_balance_mode24: '0'
  674. iq_balance_mode25: '0'
  675. iq_balance_mode26: '0'
  676. iq_balance_mode27: '0'
  677. iq_balance_mode28: '0'
  678. iq_balance_mode29: '0'
  679. iq_balance_mode3: '0'
  680. iq_balance_mode30: '0'
  681. iq_balance_mode31: '0'
  682. iq_balance_mode4: '0'
  683. iq_balance_mode5: '0'
  684. iq_balance_mode6: '0'
  685. iq_balance_mode7: '0'
  686. iq_balance_mode8: '0'
  687. iq_balance_mode9: '0'
  688. maxoutbuf: '0'
  689. minoutbuf: '0'
  690. nchan: '1'
  691. num_mboards: '1'
  692. sample_rate: samp_rate
  693. sync: sync
  694. time_source0: ''
  695. time_source1: ''
  696. time_source2: ''
  697. time_source3: ''
  698. time_source4: ''
  699. time_source5: ''
  700. time_source6: ''
  701. time_source7: ''
  702. type: fc32
  703. states:
  704. bus_sink: false
  705. bus_source: false
  706. bus_structure: null
  707. coordinate: [31, 290]
  708. rotation: 0
  709. state: true
  710. connections:
  711. - [analog_wfm_rcv_0, '0', qtgui_freq_sink_x_0, '0']
  712. - [analog_wfm_rcv_0, '0', rational_resampler_xxx_0, '0']
  713. - [blocks_multiply_const_vxx_0, '0', audio_sink_0, '0']
  714. - [low_pass_filter_0, '0', analog_wfm_rcv_0, '0']
  715. - [rational_resampler_xxx_0, '0', blocks_multiply_const_vxx_0, '0']
  716. - [rtlsdr_source_0, '0', low_pass_filter_0, '0']
  717. - [rtlsdr_source_0, '0', qtgui_waterfall_sink_x_0, '0']
  718. metadata:
  719. file_format: 1