{"id":305097,"date":"2020-06-09T15:00:54","date_gmt":"2020-06-09T15:00:54","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=305097"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=305097","title":{"rendered":"\u041f\u0430\u043d\u043e\u0440\u0430\u043c\u0430-FM \u0438\u043b\u0438 \u043a\u0430\u043a \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0441\u0435 \u0440\u0430\u0434\u0438\u043e\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0441\u0440\u0430\u0437\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SDR"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/505944\/\">\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.<\/p>\n<p>  \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432\u0441\u0435, \u0445\u043e\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u0440\u0430\u0434\u0438\u043e\u0441\u0432\u044f\u0437\u044c\u044e, \u0437\u043d\u0430\u044e\u0442 \u0447\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SDR-\u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0448\u0438\u0440\u043e\u043a\u0443\u044e \u043f\u043e\u043b\u043e\u0441\u0443 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0440\u0430\u0434\u0438\u043e\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0432 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u043a\u0430\u043a HDSDR \u0438\u043b\u0438 SDR# \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0443\u0434\u0438\u0432\u0438\u0442\u044c. \u042f \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0441\u0435\u0432\u0434\u043e-3D \u0441\u043f\u0435\u043a\u0442\u0440 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u044b\u0445 \u0441\u0442\u0430\u043d\u0446\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e RTL-SDR, GNU Radio \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 100 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qf\/n-\/ho\/qfn-ho2hxow_ndsn5t2enkyhpvw.png\"><\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a \u043f\u043e\u0441\u0435\u0440\u044c\u0435\u0437\u043d\u0435\u0435, \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u0435\u0441\u044c FM \u0441\u043f\u0435\u043a\u0442\u0440 88-108\u041c\u0413\u0446. <br \/>  \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438, \u0437\u0430\u0434\u0430\u0447\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430. SDR-\u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a \u043e\u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0440\u0430\u0434\u0438\u043e\u0441\u0438\u0433\u043d\u0430\u043b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0410\u0426\u041f. \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0448\u0438\u0440\u043e\u043a\u043e\u043f\u043e\u043b\u043e\u0441\u043d\u044b\u0439 IQ-\u0441\u0438\u0433\u043d\u0430\u043b \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0447\u0438\u0441\u0435\u043b, \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441 \u0410\u0426\u041f \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438. \u042d\u0442\u0430 \u0436\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0448\u0438\u0440\u0438\u043d\u0443 \u043f\u043e\u043b\u043e\u0441\u044b, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u0443\u044e \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u043e\u043c. \u0412\u0441\u0435 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 \u0432 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435, \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u043d\u0435 22050, \u0430 2000000 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 10000000 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u043f\u0435\u043a\u0442\u0440 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0430\u0434 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435. \u0414\u0430\u043b\u044c\u0448\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0432\u0441\u0435 \u044d\u0442\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d, \u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0440\u0435\u0448\u0435\u043d\u0430. \u041e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0432\u043e\u043f\u0440\u043e\u0441, \u043a\u0430\u043a \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u043e\u043c \u043a\u043e\u0434\u0430, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 GNU Radio.<\/p>\n<p>  \u0414\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430\u043c \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f RTL-SDR \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a, \u0446\u0435\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 30$. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0447\u0430\u0441\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u0442 70 \u0434\u043e 1700\u041c\u0413\u0446 \u0438 \u0448\u0438\u0440\u0438\u043d\u043e\u0439 \u043f\u043e\u043b\u043e\u0441\u044b \u0434\u043e 2\u041c\u0413\u0446:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/lm\/qx\/wn\/lmqxwny5-kkdljris4aq804koxc.png\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043a\u0442\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u0441 RTL-SDR \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a \u043d\u0443\u0436\u0435\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u043a\u0430\u043a \u043d\u0430 \u0444\u043e\u0442\u043e. \u0415\u0441\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0448\u0435\u0432\u044b\u0435 \u043a\u043b\u043e\u043d\u044b, \u043d\u043e \u043e\u043d\u0438 \u0445\u0443\u0436\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c.<\/p>\n<p>  \u041d\u0443 \u0430 \u043c\u044b \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c.<\/p>\n<h2>GNU Radio<\/h2>\n<p>  \u0413\u0440\u0430\u0444 \u0441\u0432\u044f\u0437\u0435\u0439 \u0432 GNU Radio \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mz\/f5\/rx\/mzf5rx2wvkinzcjna-5uh9k8v-m.png\"><\/p>\n<p>  \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430, \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0432 \u043d\u0430\u0431\u043e\u0440 \u00ab\u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432\u00bb \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1024, \u043d\u0430\u0434 \u044d\u0442\u0438\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c FFT, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0445 \u0432 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435, \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e UDP. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0432\u0441\u0435 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 Python \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SoapySDR \u0438 numpy, \u043d\u043e \u043e\u0431\u044a\u0435\u043c \u043a\u043e\u0434\u0430 \u0431\u044b\u043b \u0431\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u043b\u044c\u0448\u0435.<\/p>\n<p>  \u0411\u043b\u043e\u043a QT GUI Frequency Sink \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u00ab\u043e\u0442\u043b\u0430\u0434\u043a\u0438\u00bb, \u0441 \u043d\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0447\u0442\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0440\u0430\u0434\u0438\u043e\u0441\u0442\u0430\u043d\u0446\u0438\u0439 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0438 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430. \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ne\/l2\/1y\/nel21ym4dasbc3tr9ww18vmyn3o.png\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, GUI Frequency Sink \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0430 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u00abNo GUI\u00bb, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0437\u0440\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u044b. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u044d\u0442\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u0430\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043a\u0430\u043a \u0441\u0435\u0440\u0432\u0438\u0441, \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e UI.<\/p>\n<h2>\u041e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430<\/h2>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e UDP, \u0442\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0438\u0445 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043b\u044e\u0431\u044b\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c, \u0438 \u0434\u0430\u0436\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u041f\u041a. \u0411\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Python, \u0434\u043b\u044f \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u044d\u0442\u043e\u0433\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e UDP:<\/p>\n<pre><code class=\"python\">fft_size = 1024 udp_data = None UDP_IP = &quot;127.0.0.1&quot; UDP_PORT = 40868  sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # UDP sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind((UDP_IP, UDP_PORT)) sock.settimeout(0.5)  try:     data, addr = sock.recvfrom(fft_size * 4)     if len(data) == 4096:         udp_data = np.frombuffer(data, dtype=np.float32)         return True except socket.timeout:     pass<\/code><\/pre>\n<p>  \u0422.\u043a. \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439, \u0443\u0434\u043e\u0431\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 pygame. \u0420\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 3D-\u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e, \u043c\u044b \u0445\u0440\u0430\u043d\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435, \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u043b\u0438\u043d\u0438\u0438 \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437, \u043e\u0442 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0440\u044b\u0445 \u043a \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u044b\u043c.<\/p>\n<pre><code class=\"python\">fft_size = 1024 depth = 255 fft_data = np.zeros([depth, fft_size])  def draw_image(screen, font):     x_left, x_right, y_bottom = 0, img_size[0],  img_size[1] - 5     # Draw spectrum in pseudo-3d     for d in reversed(range(depth)):         for x in range(fft_size - 1):             d_x1, d_x2, d_y1, d_y2 = x + d, x + d + 1, y_bottom - int(y_ampl*fft_data[d][x]) - y_shift - d, y_bottom - int(y_ampl*fft_data[d][x+1]) - y_shift - d             if d_y1 &gt; y_bottom - 34: d_y1 = y_bottom - 34             if d_y2 &gt; y_bottom - 34: d_y2 = y_bottom - 34             dim = 1 - 0.8*(d\/depth)             color = int(dim*data_2_color(fft_data[d][x]))             pygame.draw.line(screen, (color\/\/2,color,0) if d &gt; 0 else (0, 250, 0), (d_x1, d_y1), (d_x2, d_y2), (2 if d == 0 else 1))<\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435, \u044d\u0442\u043e \u0432\u044b\u0432\u043e\u0434 \u0447\u0430\u0441\u0442\u043e\u0442 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0439 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435 \u0434\u0430\u0435\u0442 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 1024 \u0442\u043e\u0447\u043a\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0448\u0438\u0440\u0438\u043d\u0435 \u043f\u043e\u043b\u043e\u0441\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430. \u041c\u044b \u0442\u0430\u043a\u0436\u0435 \u0437\u043d\u0430\u0435\u043c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u043e\u0439 \u0448\u043a\u043e\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0435\u0439.<\/p>\n<pre><code class=\"python\">stations = [(&quot;101.8&quot;, 101.8), (&quot;102.1&quot;, 102.1), (&quot;102.4&quot;, 102.4), ... ] for st_name, freq in stations:     x_pos = fft_size*(freq - center_freq)*1000000\/\/sample_rate     textsurface = font.render(st_name, False, (255, 255, 0))     screen.blit(textsurface, (img_size[0]\/\/2 + x_pos - textsurface.get_width()\/\/2, y_bottom - 22))<\/code><\/pre>\n<p>  \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u0432\u0441\u0435, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u0435, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043e\u0431\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 real-time \u043f\u0430\u043d\u043e\u0440\u0430\u043c\u0443, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 FM-\u0441\u0442\u0430\u043d\u0446\u0438\u0438:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/7q\/_9\/vm\/7q_9vm1aphyckftit98ad-7cdp8.gif\"><\/p>\n<p>  \u041b\u0435\u0433\u043a\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0432\u0435\u0449\u0430\u044e\u0442 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c, \u0438\u043b\u0438 \u043f\u043e \u0448\u0438\u0440\u0438\u043d\u0435 \u043f\u043e\u043b\u043e\u0441\u044b \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u043c\u043e\u043d\u043e-\u0432\u0435\u0449\u0430\u043d\u0438\u0435 \u043e\u0442 \u0441\u0442\u0435\u0440\u0435\u043e.<\/p>\n<p>  \u041d\u0443 \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u0435\u0449\u0430\u043d\u043d\u0430\u044f \u043f\u0430\u043d\u043e\u0440\u0430\u043c\u0430 \u0432\u0441\u0435\u0433\u043e FM-\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043e\u0442\u043b\u043e\u0436\u0438\u0442\u044c RTL-SDR \u0438 \u0432\u0437\u044f\u0442\u044c \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a \u043f\u043e\u0441\u0435\u0440\u044c\u0435\u0437\u043d\u0435\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0439:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/fq\/jz\/cm\/fqjzcmtcssghqxee50-ryzebns8.png\"><\/p>\n<p>  \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0442 Ettus Research, \u043d\u043e \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0432\u0441\u0435 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0432 GNU Radio \u043e\u0434\u0438\u043d \u0431\u043b\u043e\u043a \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439. \u0410 \u0432\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u0435 \u043f\u0440\u0438 \u0448\u0438\u0440\u0438\u043d\u0435 \u043f\u043e\u043b\u043e\u0441\u044b \u043f\u0440\u0438\u0435\u043c\u0430 24\u041c\u0413\u0446:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/04\/dx\/qn\/04dxqnsdq9hwoccs6qqfpmc-bqo.gif\"><\/p>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u043d\u0446\u0438\u0438 FM-\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430, \u043d\u043e \u0438 \u043b\u044e\u0431\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435, \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0447\u0430\u0441\u0442\u043e\u0442 SDR-\u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u0432\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0430\u0432\u0438\u0430\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zh\/kf\/wc\/zhkfwcmltjsrw9a-blgtzw-rmgq.gif\"><\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b (\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043c\u0435\u0442\u0435\u043e\u0441\u043b\u0443\u0436\u0431\u0430 ATIS) \u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0439 \u0440\u0430\u0434\u0438\u043e\u043e\u0431\u043c\u0435\u043d. \u0410 \u0432\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 GSM, \u043e\u0434\u043d\u0430\u043a\u043e, \u0435\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b \u0448\u0438\u0440\u0435 \u0447\u0435\u043c 24\u041c\u0413\u0446, \u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/y4\/t3\/vt\/y4t3vtbijv-t5wcfib0u_uu48qk.png\"><\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0434\u0438\u043e\u044d\u0444\u0438\u0440\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0434\u0430\u0436\u0435 \u0432 3D. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0431\u044b\u043b\u043e \u0446\u0435\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u00ab\u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0441\u043f\u0435\u043a\u0442\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u00bb, \u044d\u0442\u043e \u043b\u0438\u0448\u044c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f, \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0444\u0430\u043d\u0430. \u0423\u0432\u044b, \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e, \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0442\u044b\u0441\u044f\u0447 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432 Python \u044d\u0442\u043e \u043d\u0435 \u043b\u0443\u0447\u0448\u0438\u0439 \u0432\u044b\u0431\u043e\u0440. \u0422\u0430\u043a\u0436\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0441\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0439 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0436\u0435\u043b\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0433\u043e, \u0432 \u0438\u0434\u0435\u0430\u043b\u0435, \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u043c.<\/p>\n<p>  \u0414\u043b\u044f \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0445 \u043f\u043e\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">sdr_render.py<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">import numpy as np from matplotlib import pyplot as plt from PIL import Image, ImageDraw import sys import pygame from pygame.locals import * from threading import Thread import io import cv2 import time import socket   # FFT receiver_name = &quot;RTL-SDR&quot; center_freq = 102.5 sample_rate = 1800000 stations = [(&quot;101.8&quot;, 101.8), (&quot;102.1&quot;, 102.1), (&quot;102.4&quot;, 102.4), (&quot;102.7&quot;, 102.7), (&quot;103.0&quot;, 103.0), (&quot;103.2&quot;, 103.2)]  # Load data from UDP UDP_IP = &quot;127.0.0.1&quot; UDP_PORT = 40868 udp_data = None sock = None  # Panorama history fft_size = 1024 depth = 255 fft_data = np.zeros([depth, fft_size])  # Canvas and draw img_size = (fft_size, fft_size*9\/\/16) y_ampl = 90 color_ampl = 70 y_shift = 250   def udp_prepare():     global sock     sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # UDP     sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)     sock.bind((UDP_IP, UDP_PORT))     sock.settimeout(0.5)   def udp_getdata():     global sock, udp_data     try:         data, addr = sock.recvfrom(fft_size * 4)         if len(data) == 4096:             udp_data = np.frombuffer(data, dtype=np.float32)             return True     except socket.timeout:         pass     return False   def clear_data():     for y in range(depth):         fft_data[y, :] = np.full((fft_size,), -1024)   def add_new_line():     global udp_data, fft_data     # Shift old data up     for y in reversed(range(depth - 1)):         fft_data[y + 1, :] = fft_data[y, :]     # Put new data at the bottom line     if udp_data is not None:         fft_data[0, :] = udp_data   def data_2_color(data):     c = -data + 2  # TODO: detect noise floor of the spectrum     color = 150 - int(color_ampl * c)     if color &lt; 20:         color = 20     if color &gt; 150:         color = 150     return color   def draw_image(screen, font):     x_left, x_right, y_bottom = 0, img_size[0],  img_size[1] - 5     # Draw spectrum in pseudo-3d     for d in reversed(range(depth)):         for x in range(fft_size - 1):             d_x1, d_x2, d_y1, d_y2 = x + d, x + d + 1, y_bottom - int(y_ampl*fft_data[d][x]) - y_shift - d, y_bottom - int(y_ampl*fft_data[d][x+1]) - y_shift - d             if d_y1 &gt; y_bottom - 34: d_y1 = y_bottom - 34             if d_y2 &gt; y_bottom - 34: d_y2 = y_bottom - 34             dim = 1 - 0.8*(d\/depth)             color = int(dim*data_2_color(fft_data[d][x]))             pygame.draw.line(screen, (color\/\/2,color,0) if d &gt; 0 else (0, 250, 0), (d_x1, d_y1), (d_x2, d_y2), (2 if d == 0 else 1))                  # Bottom line     pygame.draw.line(screen, (0,100,0), (x_left, y_bottom - 30), (x_right, y_bottom - 30), 2)     # Station names     for st_name, freq in stations:         x_pos = fft_size*(freq - center_freq)*1000000\/\/sample_rate         textsurface = font.render(st_name, False, (255, 255, 0))         screen.blit(textsurface, (img_size[0]\/\/2 + x_pos - textsurface.get_width()\/\/2, y_bottom - 22))     text_mhz = font.render(&quot;MHz&quot;, False, (255, 255, 0))     screen.blit(text_mhz, (img_size[0] - 5 - text_mhz.get_width(), y_bottom - 22))   if __name__ == &quot;__main__&quot;:     # UI init     screen = pygame.display.set_mode(img_size)     pygame.display.set_caption(receiver_name)     pygame.font.init()     font = pygame.font.SysFont('Arial Bold', 30)      # Subscribe to UDP     clear_data()     udp_prepare()      # Main loop     is_active = True     while is_active:         # Get new data         if udp_getdata():             add_new_line()              # Update screen             screen.fill((0, 0, 0))             draw_image(screen, font)             pygame.display.flip()          # Check sys events         for events in pygame.event.get():             if events.type == QUIT:                 is_active = False<\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">sdr_receiver.grc<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">&lt;?xml version='1.0' encoding='utf-8'?&gt; &lt;?grc format='1' created='3.7.13'?&gt; &lt;flow_graph&gt;   &lt;timestamp&gt;Sun Jun  7 13:17:58 2020&lt;\/timestamp&gt;   &lt;block&gt;     &lt;key&gt;options&lt;\/key&gt;     &lt;param&gt;       &lt;key&gt;author&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;window_size&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;category&lt;\/key&gt;       &lt;value&gt;[GRC Hier Blocks]&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;comment&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;description&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_enabled&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_coordinate&lt;\/key&gt;       &lt;value&gt;(8, 8)&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_rotation&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;generate_options&lt;\/key&gt;       &lt;value&gt;no_gui&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;hier_block_src_path&lt;\/key&gt;       &lt;value&gt;.:&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;id&lt;\/key&gt;       &lt;value&gt;top_block&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;max_nouts&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;qt_qss_theme&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;realtime_scheduling&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;run_command&lt;\/key&gt;       &lt;value&gt;{python} -u {filename}&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;run_options&lt;\/key&gt;       &lt;value&gt;prompt&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;run&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;sizing_mode&lt;\/key&gt;       &lt;value&gt;fixed&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;thread_safe_setters&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;title&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;placement&lt;\/key&gt;       &lt;value&gt;(0,0)&lt;\/value&gt;     &lt;\/param&gt;   &lt;\/block&gt;   &lt;block&gt;     &lt;key&gt;variable&lt;\/key&gt;     &lt;param&gt;       &lt;key&gt;comment&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_enabled&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_coordinate&lt;\/key&gt;       &lt;value&gt;(168, 12)&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_rotation&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;id&lt;\/key&gt;       &lt;value&gt;fft_size&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;value&lt;\/key&gt;       &lt;value&gt;1024&lt;\/value&gt;     &lt;\/param&gt;   &lt;\/block&gt;   &lt;block&gt;     &lt;key&gt;variable&lt;\/key&gt;     &lt;param&gt;       &lt;key&gt;comment&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_enabled&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_coordinate&lt;\/key&gt;       &lt;value&gt;(256, 12)&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_rotation&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;id&lt;\/key&gt;       &lt;value&gt;samp_rate&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;value&lt;\/key&gt;       &lt;value&gt;1800000&lt;\/value&gt;     &lt;\/param&gt;   &lt;\/block&gt;   &lt;block&gt;     &lt;key&gt;blocks_complex_to_mag_squared&lt;\/key&gt;     &lt;param&gt;       &lt;key&gt;alias&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;comment&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;affinity&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_enabled&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_coordinate&lt;\/key&gt;       &lt;value&gt;(648, 108)&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_rotation&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;id&lt;\/key&gt;       &lt;value&gt;blocks_complex_to_mag_squared_0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;maxoutbuf&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;minoutbuf&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;vlen&lt;\/key&gt;       &lt;value&gt;fft_size&lt;\/value&gt;     &lt;\/param&gt;   &lt;\/block&gt;   &lt;block&gt;     &lt;key&gt;blocks_nlog10_ff&lt;\/key&gt;     &lt;param&gt;       &lt;key&gt;alias&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;comment&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;affinity&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_enabled&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_coordinate&lt;\/key&gt;       &lt;value&gt;(832, 100)&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_rotation&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;id&lt;\/key&gt;       &lt;value&gt;blocks_nlog10_ff_0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;maxoutbuf&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;minoutbuf&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;vlen&lt;\/key&gt;       &lt;value&gt;fft_size&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;k&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;n&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;   &lt;\/block&gt;   &lt;block&gt;     &lt;key&gt;blocks_stream_to_vector&lt;\/key&gt;     &lt;param&gt;       &lt;key&gt;alias&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;comment&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;affinity&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_enabled&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_coordinate&lt;\/key&gt;       &lt;value&gt;(256, 108)&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_rotation&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;id&lt;\/key&gt;       &lt;value&gt;blocks_stream_to_vector_0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;type&lt;\/key&gt;       &lt;value&gt;complex&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;maxoutbuf&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;minoutbuf&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;num_items&lt;\/key&gt;       &lt;value&gt;fft_size&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;vlen&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;   &lt;\/block&gt;   &lt;block&gt;     &lt;key&gt;blocks_udp_sink&lt;\/key&gt;     &lt;param&gt;       &lt;key&gt;alias&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;comment&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;affinity&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ipaddr&lt;\/key&gt;       &lt;value&gt;127.0.0.1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;port&lt;\/key&gt;       &lt;value&gt;40868&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_enabled&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_coordinate&lt;\/key&gt;       &lt;value&gt;(1000, 76)&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_rotation&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;id&lt;\/key&gt;       &lt;value&gt;blocks_udp_sink_0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;type&lt;\/key&gt;       &lt;value&gt;float&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;psize&lt;\/key&gt;       &lt;value&gt;fft_size*4&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;eof&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;vlen&lt;\/key&gt;       &lt;value&gt;fft_size&lt;\/value&gt;     &lt;\/param&gt;   &lt;\/block&gt;   &lt;block&gt;     &lt;key&gt;fft_vxx&lt;\/key&gt;     &lt;param&gt;       &lt;key&gt;alias&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;comment&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;affinity&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_enabled&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;fft_size&lt;\/key&gt;       &lt;value&gt;fft_size&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;forward&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_coordinate&lt;\/key&gt;       &lt;value&gt;(424, 76)&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_rotation&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;id&lt;\/key&gt;       &lt;value&gt;fft_vxx_0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;type&lt;\/key&gt;       &lt;value&gt;complex&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;maxoutbuf&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;minoutbuf&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;nthreads&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;shift&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;window&lt;\/key&gt;       &lt;value&gt;window.blackmanharris(fft_size)&lt;\/value&gt;     &lt;\/param&gt;   &lt;\/block&gt;   &lt;block&gt;     &lt;key&gt;qtgui_freq_sink_x&lt;\/key&gt;     &lt;param&gt;       &lt;key&gt;autoscale&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;average&lt;\/key&gt;       &lt;value&gt;1.0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;axislabels&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw&lt;\/key&gt;       &lt;value&gt;samp_rate&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;alias&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;fc&lt;\/key&gt;       &lt;value&gt;102.5e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;comment&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ctrlpanel&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;affinity&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_enabled&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;fftsize&lt;\/key&gt;       &lt;value&gt;1024&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_coordinate&lt;\/key&gt;       &lt;value&gt;(256, 188)&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gui_hint&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_rotation&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;grid&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;id&lt;\/key&gt;       &lt;value&gt;qtgui_freq_sink_x_0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;legend&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;alpha1&lt;\/key&gt;       &lt;value&gt;1.0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;color1&lt;\/key&gt;       &lt;value&gt;&quot;blue&quot;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;label1&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;width1&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;alpha10&lt;\/key&gt;       &lt;value&gt;1.0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;color10&lt;\/key&gt;       &lt;value&gt;&quot;dark blue&quot;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;label10&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;width10&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;alpha2&lt;\/key&gt;       &lt;value&gt;1.0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;color2&lt;\/key&gt;       &lt;value&gt;&quot;red&quot;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;label2&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;width2&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;alpha3&lt;\/key&gt;       &lt;value&gt;1.0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;color3&lt;\/key&gt;       &lt;value&gt;&quot;green&quot;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;label3&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;width3&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;alpha4&lt;\/key&gt;       &lt;value&gt;1.0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;color4&lt;\/key&gt;       &lt;value&gt;&quot;black&quot;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;label4&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;width4&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;alpha5&lt;\/key&gt;       &lt;value&gt;1.0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;color5&lt;\/key&gt;       &lt;value&gt;&quot;cyan&quot;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;label5&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;width5&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;alpha6&lt;\/key&gt;       &lt;value&gt;1.0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;color6&lt;\/key&gt;       &lt;value&gt;&quot;magenta&quot;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;label6&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;width6&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;alpha7&lt;\/key&gt;       &lt;value&gt;1.0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;color7&lt;\/key&gt;       &lt;value&gt;&quot;yellow&quot;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;label7&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;width7&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;alpha8&lt;\/key&gt;       &lt;value&gt;1.0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;color8&lt;\/key&gt;       &lt;value&gt;&quot;dark red&quot;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;label8&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;width8&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;alpha9&lt;\/key&gt;       &lt;value&gt;1.0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;color9&lt;\/key&gt;       &lt;value&gt;&quot;dark green&quot;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;label9&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;width9&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;maxoutbuf&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;minoutbuf&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;name&lt;\/key&gt;       &lt;value&gt;&quot;&quot;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;nconnections&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;showports&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freqhalf&lt;\/key&gt;       &lt;value&gt;True&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;tr_chan&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;tr_level&lt;\/key&gt;       &lt;value&gt;0.0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;tr_mode&lt;\/key&gt;       &lt;value&gt;qtgui.TRIG_MODE_FREE&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;tr_tag&lt;\/key&gt;       &lt;value&gt;&quot;&quot;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;type&lt;\/key&gt;       &lt;value&gt;complex&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;update_time&lt;\/key&gt;       &lt;value&gt;0.10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;wintype&lt;\/key&gt;       &lt;value&gt;firdes.WIN_BLACKMAN_hARRIS&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;label&lt;\/key&gt;       &lt;value&gt;Relative Gain&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ymax&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ymin&lt;\/key&gt;       &lt;value&gt;-140&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;units&lt;\/key&gt;       &lt;value&gt;dB&lt;\/value&gt;     &lt;\/param&gt;   &lt;\/block&gt;   &lt;block&gt;     &lt;key&gt;rtlsdr_source&lt;\/key&gt;     &lt;param&gt;       &lt;key&gt;alias&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant0&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain0&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw0&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode0&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr0&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq0&lt;\/key&gt;       &lt;value&gt;102.5e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode0&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain0&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode0&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain0&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant10&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain10&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw10&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode10&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr10&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq10&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode10&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain10&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode10&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain10&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant11&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain11&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw11&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode11&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr11&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq11&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode11&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain11&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode11&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain11&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant12&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain12&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw12&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode12&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr12&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq12&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode12&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain12&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode12&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain12&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant13&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain13&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw13&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode13&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr13&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq13&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode13&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain13&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode13&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain13&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant14&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain14&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw14&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode14&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr14&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq14&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode14&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain14&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode14&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain14&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant15&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain15&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw15&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode15&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr15&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq15&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode15&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain15&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode15&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain15&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant16&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain16&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw16&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode16&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr16&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq16&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode16&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain16&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode16&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain16&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant17&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain17&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw17&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode17&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr17&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq17&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode17&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain17&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode17&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain17&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant18&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain18&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw18&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode18&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr18&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq18&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode18&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain18&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode18&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain18&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant19&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain19&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw19&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode19&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr19&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq19&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode19&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain19&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode19&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain19&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant1&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain1&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw1&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode1&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr1&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq1&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode1&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain1&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode1&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain1&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant20&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain20&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw20&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode20&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr20&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq20&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode20&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain20&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode20&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain20&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant21&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain21&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw21&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode21&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr21&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq21&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode21&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain21&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode21&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain21&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant22&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain22&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw22&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode22&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr22&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq22&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode22&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain22&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode22&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain22&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant23&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain23&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw23&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode23&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr23&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq23&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode23&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain23&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode23&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain23&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant24&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain24&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw24&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode24&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr24&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq24&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode24&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain24&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode24&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain24&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant25&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain25&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw25&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode25&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr25&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq25&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode25&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain25&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode25&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain25&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant26&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain26&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw26&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode26&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr26&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq26&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode26&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain26&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode26&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain26&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant27&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain27&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw27&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode27&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr27&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq27&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode27&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain27&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode27&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain27&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant28&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain28&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw28&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode28&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr28&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq28&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode28&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain28&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode28&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain28&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant29&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain29&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw29&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode29&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr29&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq29&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode29&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain29&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode29&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain29&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant2&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain2&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw2&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode2&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr2&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq2&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode2&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain2&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode2&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain2&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant30&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain30&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw30&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode30&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr30&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq30&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode30&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain30&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode30&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain30&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant31&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain31&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw31&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode31&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr31&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq31&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode31&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain31&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode31&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain31&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant3&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain3&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw3&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode3&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr3&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq3&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode3&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain3&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode3&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain3&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant4&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain4&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw4&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode4&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr4&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq4&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode4&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain4&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode4&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain4&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant5&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain5&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw5&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode5&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr5&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq5&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode5&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain5&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode5&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain5&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant6&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain6&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw6&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode6&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr6&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq6&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode6&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain6&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode6&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain6&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant7&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain7&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw7&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode7&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr7&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq7&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode7&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain7&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode7&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain7&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant8&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain8&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw8&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode8&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr8&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq8&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode8&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain8&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode8&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain8&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;ant9&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bb_gain9&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;bw9&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;dc_offset_mode9&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;corr9&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;freq9&lt;\/key&gt;       &lt;value&gt;100e6&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain_mode9&lt;\/key&gt;       &lt;value&gt;False&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;if_gain9&lt;\/key&gt;       &lt;value&gt;20&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;iq_balance_mode9&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;gain9&lt;\/key&gt;       &lt;value&gt;10&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;comment&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;affinity&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;args&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_enabled&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_coordinate&lt;\/key&gt;       &lt;value&gt;(16, 96)&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;_rotation&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;id&lt;\/key&gt;       &lt;value&gt;rtlsdr_source_0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;maxoutbuf&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;clock_source0&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;time_source0&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;clock_source1&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;time_source1&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;clock_source2&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;time_source2&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;clock_source3&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;time_source3&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;clock_source4&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;time_source4&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;clock_source5&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;time_source5&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;clock_source6&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;time_source6&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;clock_source7&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;time_source7&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;minoutbuf&lt;\/key&gt;       &lt;value&gt;0&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;nchan&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;num_mboards&lt;\/key&gt;       &lt;value&gt;1&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;type&lt;\/key&gt;       &lt;value&gt;fc32&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;sample_rate&lt;\/key&gt;       &lt;value&gt;samp_rate&lt;\/value&gt;     &lt;\/param&gt;     &lt;param&gt;       &lt;key&gt;sync&lt;\/key&gt;       &lt;value&gt;&lt;\/value&gt;     &lt;\/param&gt;   &lt;\/block&gt;   &lt;connection&gt;     &lt;source_block_id&gt;blocks_complex_to_mag_squared_0&lt;\/source_block_id&gt;     &lt;sink_block_id&gt;blocks_nlog10_ff_0&lt;\/sink_block_id&gt;     &lt;source_key&gt;0&lt;\/source_key&gt;     &lt;sink_key&gt;0&lt;\/sink_key&gt;   &lt;\/connection&gt;   &lt;connection&gt;     &lt;source_block_id&gt;blocks_nlog10_ff_0&lt;\/source_block_id&gt;     &lt;sink_block_id&gt;blocks_udp_sink_0&lt;\/sink_block_id&gt;     &lt;source_key&gt;0&lt;\/source_key&gt;     &lt;sink_key&gt;0&lt;\/sink_key&gt;   &lt;\/connection&gt;   &lt;connection&gt;     &lt;source_block_id&gt;blocks_stream_to_vector_0&lt;\/source_block_id&gt;     &lt;sink_block_id&gt;fft_vxx_0&lt;\/sink_block_id&gt;     &lt;source_key&gt;0&lt;\/source_key&gt;     &lt;sink_key&gt;0&lt;\/sink_key&gt;   &lt;\/connection&gt;   &lt;connection&gt;     &lt;source_block_id&gt;fft_vxx_0&lt;\/source_block_id&gt;     &lt;sink_block_id&gt;blocks_complex_to_mag_squared_0&lt;\/sink_block_id&gt;     &lt;source_key&gt;0&lt;\/source_key&gt;     &lt;sink_key&gt;0&lt;\/sink_key&gt;   &lt;\/connection&gt;   &lt;connection&gt;     &lt;source_block_id&gt;rtlsdr_source_0&lt;\/source_block_id&gt;     &lt;sink_block_id&gt;blocks_stream_to_vector_0&lt;\/sink_block_id&gt;     &lt;source_key&gt;0&lt;\/source_key&gt;     &lt;sink_key&gt;0&lt;\/sink_key&gt;   &lt;\/connection&gt;   &lt;connection&gt;     &lt;source_block_id&gt;rtlsdr_source_0&lt;\/source_block_id&gt;     &lt;sink_block_id&gt;qtgui_freq_sink_x_0&lt;\/sink_block_id&gt;     &lt;source_key&gt;0&lt;\/source_key&gt;     &lt;sink_key&gt;0&lt;\/sink_key&gt;   &lt;\/connection&gt; &lt;\/flow_graph&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, \u0432\u0441\u0435\u043c \u0443\u0434\u0430\u0447\u043d\u044b\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432.<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/505944\/\"> https:\/\/habr.com\/ru\/post\/505944\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/505944\/\">\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.<\/p>\n<p>  \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432\u0441\u0435, \u0445\u043e\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u0440\u0430\u0434\u0438\u043e\u0441\u0432\u044f\u0437\u044c\u044e, \u0437\u043d\u0430\u044e\u0442 \u0447\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SDR-\u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0448\u0438\u0440\u043e\u043a\u0443\u044e \u043f\u043e\u043b\u043e\u0441\u0443 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0440\u0430\u0434\u0438\u043e\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0432 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u043a\u0430\u043a HDSDR \u0438\u043b\u0438 SDR# \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0443\u0434\u0438\u0432\u0438\u0442\u044c. \u042f \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0441\u0435\u0432\u0434\u043e-3D \u0441\u043f\u0435\u043a\u0442\u0440 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u044b\u0445 \u0441\u0442\u0430\u043d\u0446\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e RTL-SDR, GNU Radio \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 100 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qf\/n-\/ho\/qfn-ho2hxow_ndsn5t2enkyhpvw.png\"><\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a \u043f\u043e\u0441\u0435\u0440\u044c\u0435\u0437\u043d\u0435\u0435, \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u0435\u0441\u044c FM \u0441\u043f\u0435\u043a\u0442\u0440 88-108\u041c\u0413\u0446. <br \/>  \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-305097","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/305097","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=305097"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/305097\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=305097"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=305097"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=305097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}