fm_radio.grc 14 KB

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