fm_radio.grc 14 KB

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