{"id":96001,"date":"2020-10-06T13:42:04","date_gmt":"2020-10-06T11:42:04","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/sdr-dvb-t2-receiver-na-c"},"modified":"2020-10-06T13:42:04","modified_gmt":"2020-10-06T11:42:04","slug":"sdr-dvb-t2-receiver-na-c","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/sdr-dvb-t2-receiver-na-c","title":{"rendered":"Receptor SDR DVB-T2 em C++","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>R\u00e1dio Definido por Software (software defined radio) \u00e9 um m\u00e9todo que substitui o trabalho em metal (o que, em ess\u00eancia, \u00e9 ben\u00e9fico para a sa\u00fade) pela dor de cabe\u00e7a da programa\u00e7\u00e3o. O SDR \u00e9 prevido para um grande futuro, e sua principal vantagem \u00e9 a remo\u00e7\u00e3o das limita\u00e7\u00f5es na implementa\u00e7\u00e3o de protocolos de r\u00e1dio. Um exemplo \u00e9 o m\u00e9todo de modula\u00e7\u00e3o OFDM (Orthogonal frequency-division multiplexing), que s\u00f3 se tornou poss\u00edvel atrav\u00e9s do m\u00e9todo SDR. No entanto, o SDR tamb\u00e9m oferece outra possibilidade puramente engenheiral \u2014 a capacidade de controlar e visualizar o sinal em qualquer ponto arbitr\u00e1rio com o m\u00ednimo de esfor\u00e7o.<\/p>\n<p><\/p>\n<p>Um dos padr\u00f5es de comunica\u00e7\u00e3o interessantes \u00e9 a televis\u00e3o digital terrestre DVB-T2.<br \/>\nPor qu\u00ea? Claro, voc\u00ea poderia simplesmente ligar a televis\u00e3o sem se levantar, mas n\u00e3o h\u00e1 absolutamente nada para assistir l\u00e1, e isso n\u00e3o \u00e9 apenas minha opini\u00e3o, mas um fato m\u00e9dico.<\/p>\n<p><\/p>\n<p>Falando s\u00e9rio, o DVB-T2 foi desenvolvido com possibilidades muito amplas, incluindo:<\/p>\n<p><\/p>\n<ul>\n<li>aplica\u00e7\u00e3o interna<\/li>\n<li>modula\u00e7\u00e3o de QPSK a 256QAM<\/li>\n<li>largura de banda de 1,7MHz a 8MHz <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>H\u00e1 experi\u00eancia na recep\u00e7\u00e3o de televis\u00e3o digital pelo princ\u00edpio do SDR. O padr\u00e3o DVB-T est\u00e1 presente em um projeto conhecido chamado GNURadio. Existe um bloco gr-dvbs2rx para o padr\u00e3o DVB-T2 (tudo para o mesmo GNURadio), mas que requer pr\u00e9-sincroniza\u00e7\u00e3o do sinal e \u00e9 inspirador (um agradecimento especial a Ron Economos).<\/p>\n<p><\/p>\n<p>O que temos.<\/p>\n<p><\/p>\n<p>H\u00e1 um padr\u00e3o ETSI EN 302 755, que descreve detalhadamente a transmiss\u00e3o, mas n\u00e3o a recep\u00e7\u00e3o.<\/p>\n<p><\/p>\n<p>O sinal no ar com uma taxa de amostragem de 9,14285714285714285714 MHz, modulado em COFDM com 32768 portadoras, na largura de banda de 8 MHZ.<\/p>\n<p><\/p>\n<p>\u00c9 recomendado receber tais sinais com o dobro da taxa de amostragem (para n\u00e3o perder nada) e em uma frequ\u00eancia intermedi\u00e1ria superior \u00e0 largura de banda (recep\u00e7\u00e3o superheter\u00f3dina), para eliminar o deslocamento de corrente cont\u00ednua (DC) e \"permea\u00e7\u00e3o\" do oscilador local (LO) na entrada do receptor. Dispositivos que atendem a esses requisitos s\u00e3o muito caros para simples curiosidade.<\/p>\n<p><\/p>\n<p>O SdrPlay com 10Msps 10bit ou o AirSpy com caracter\u00edsticas semelhantes s\u00e3o significativamente mais baratos. Aqui n\u00e3o se fala sobre o dobro da taxa de amostragem e a recep\u00e7\u00e3o pode ser feita apenas com convers\u00e3o direta (Zero IF). Portanto, (por raz\u00f5es financeiras) estamos nos voltando para o lado dos adeptos do \"SDR puro\" com o m\u00ednimo de convers\u00e3o de hardware.<\/p>\n<p><\/p>\n<p>Foi necess\u00e1rio resolver duas tarefas:<\/p>\n<p><\/p>\n<ol>\n<li>Sincroniza\u00e7\u00e3o. Determinar a exata desvio da frequ\u00eancia de r\u00e1dio com precis\u00e3o at\u00e9 a fase e o desvio da taxa de amostragem.<\/li>\n<li>Reescrever o padr\u00e3o DVB-T2 de maneira inversa.<\/li>\n<\/ol>\n<p><\/p>\n<p>A segunda tarefa exige muito mais c\u00f3digo, mas \u00e9 solucion\u00e1vel com persist\u00eancia e pode ser facilmente verificada por sinais de teste. <\/p>\n<p><\/p>\n<p>Os sinais de teste est\u00e3o dispon\u00edveis no servidor da BBC ftp:\/\/ftp.kw.bbc.co.uk\/t2refs\/ com instru\u00e7\u00f5es detalhadas.<\/p>\n<p><\/p>\n<p>A solu\u00e7\u00e3o da primeira tarefa depende fortemente das caracter\u00edsticas do dispositivo SDR e das capacidades de controle. Usar fun\u00e7\u00f5es de controle de frequ\u00eancia recomendadas, conforme mencionado, n\u00e3o foi bem-sucedido, mas proporcionou uma grande experi\u00eancia em leitura de documenta\u00e7\u00e3o t\u00e9cnica, programa\u00e7\u00e3o, assistindo s\u00e9ries, resolu\u00e7\u00e3o de quest\u00f5es filos\u00f3ficas... em resumo, n\u00e3o consegui abandonar o projeto. <\/p>\n<p><\/p>\n<p>A f\u00e9 no 'pure SDR' apenas se fortaleceu. <\/p>\n<p><\/p>\n<p>Recebemos o sinal como ele \u00e9, o interpolamos praticamente at\u00e9 uma forma anal\u00f3gica e extra\u00edmos um sinal discreto, mas semelhante ao original.<\/p>\n<p><\/p>\n<p>Diagrama de sincroniza\u00e7\u00e3o:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Receptor SDR DVB-T2 em C++\" src=\"\/wp-content\/uploads\/2020\/10\/b6362e201fb355fb63760fa901ecf73e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Aqui tudo \u00e9 conforme o manual. A seguir \u00e9 um pouco mais complicado. \u00c9 necess\u00e1rio calcular as desvios. H\u00e1 muita literatura e artigos de pesquisa que comparam as vantagens e desvantagens de diferentes m\u00e9todos. Cl\u00e1ssicos incluem 'Michael Speth, Stefan Fechtel, Gunnar Fock, Heinrich Meyr, Optimum Receiver Design for OFDM-Based Broadband Transmission \u2013 Part I e II'. No entanto, nunca encontrei um engenheiro que soubesse e quisesse fazer esses c\u00e1lculos, por isso foi adotada uma abordagem engenheiral. Com o mesmo m\u00e9todo de sincroniza\u00e7\u00e3o, foram introduzidos dist\u00farbios no sinal de teste. Para selecionar as melhores m\u00e9tricas para desempenho e simplicidade de implementa\u00e7\u00e3o, diferentes m\u00e9tricas foram comparadas com desvios conhecidos (que eu mesmo introduzi). O desvio da frequ\u00eancia de recep\u00e7\u00e3o \u00e9 calculado comparando o intervalo de prote\u00e7\u00e3o e sua parte repetitiva. A fase da frequ\u00eancia de recep\u00e7\u00e3o e a frequ\u00eancia de amostragem s\u00e3o avaliadas com base na desvio das fases dos sinais piloto e essa mesma informa\u00e7\u00e3o \u00e9 utilizada em um equalizador OFDM simples e linear.<\/p>\n<p><\/p>\n<p>Caracter\u00edstica do equalizador:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Receptor SDR DVB-T2 em C++\" src=\"\/wp-content\/uploads\/2020\/10\/d4a1bc8fc4d5e27cb7d376a810ea4485.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>E tudo isso funciona bem se soubermos quando come\u00e7a o quadro DVB-T2. Para isso, um s\u00edmbolo de pr\u00e9\u00e2mbulo P1 \u00e9 transmitido no sinal. O m\u00e9todo de detec\u00e7\u00e3o e decodifica\u00e7\u00e3o do s\u00edmbolo P1 \u00e9 descrito na Especifica\u00e7\u00e3o T\u00e9cnica ETSI TS 102 831 (que tamb\u00e9m cont\u00e9m muitas recomenda\u00e7\u00f5es \u00fateis para recep\u00e7\u00e3o).<\/p>\n<p><\/p>\n<p>Autocorrela\u00e7\u00e3o do sinal P1 (o ponto mais alto marca o in\u00edcio do quadro):<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Receptor SDR DVB-T2 em C++\" src=\"\/wp-content\/uploads\/2020\/10\/10e052a169a20b16d28d01b1462f4ff3.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A primeira imagem (faltam apenas seis meses para a imagem em movimento...):<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Receptor SDR DVB-T2 em C++\" src=\"\/wp-content\/uploads\/2020\/10\/8c434965be9c2450afd3c82b3ebbb4f4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>E \u00e9 aqui que vamos entender o que \u00e9 desequil\u00edbrio de IQ, offset DC e vazamento de LO. Normalmente, a compensa\u00e7\u00e3o dessas distor\u00e7\u00f5es espec\u00edficas da convers\u00e3o direta \u00e9 implementada no driver do dispositivo SDR. Portanto, levou muito tempo para entender: a remo\u00e7\u00e3o de estrelas de uma constela\u00e7\u00e3o amig\u00e1vel QAM64 \u00e9 uma tarefa das fun\u00e7\u00f5es de compensa\u00e7\u00e3o. Tive que desligar tudo e escrever minha pr\u00f3pria solu\u00e7\u00e3o.<\/p>\n<p><\/p>\n<p>E agora a imagem come\u00e7ou a se mover:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Receptor SDR DVB-T2 em C++\" src=\"\/wp-content\/uploads\/2020\/10\/0ddb224d2e0a3890ac9d335c96ba24f0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Modula\u00e7\u00e3o QAM64 com uma rota\u00e7\u00e3o espec\u00edfica da constela\u00e7\u00e3o no padr\u00e3o DVB-T2:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Receptor SDR DVB-T2 em C++\" src=\"\/wp-content\/uploads\/2020\/10\/b06328fa648125249ef9b0b74522e831.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Resumindo, esse \u00e9 o resultado de passar o recheio de volta pela moedora de carne. O padr\u00e3o prev\u00ea quatro tipos de embaralhamento:<\/p>\n<p><\/p>\n<ul>\n<li>embaralhamento de bits (bit interleaving com tor\u00e7\u00e3o de colunas)<\/li>\n<li>embaralhamento de c\u00e9lulas (cell interleaving no bloco de codifica\u00e7\u00e3o)<\/li>\n<li>embaralhamento temporal (time interleaving tamb\u00e9m conhecido em grupos de blocos de codifica\u00e7\u00e3o)<\/li>\n<li>embaralhamento de frequ\u00eancia (frequency interleaving em s\u00edmbolo OFDM)<\/li>\n<\/ul>\n<p><\/p>\n<p>Como resultado, temos este sinal na entrada:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Receptor SDR DVB-T2 em C++\" src=\"\/wp-content\/uploads\/2020\/10\/cb60687702c5f225840df30124a9ef68.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tudo isso \u00e9 uma luta pela resist\u00eancia a interfer\u00eancias do sinal codificado.<\/p>\n<p><\/p>\n<h4 id=\"itog\">Resultado<\/h4>\n<p><\/p>\n<p>Agora podemos ver n\u00e3o apenas o sinal em si e sua forma, mas tamb\u00e9m as informa\u00e7\u00f5es de servi\u00e7o.<br \/>\nNo ar, h\u00e1 dois multiplexos. Em cada um, dois canais f\u00edsicos (PLP). <\/p>\n<p><\/p>\n<p>Uma peculiaridade foi notada no primeiro multiplexo \u2014 o primeiro PLP tem a etiqueta 'multiple', o que faz sentido, j\u00e1 que ele n\u00e3o est\u00e1 sozinho no multiplexo, enquanto o segundo PLP tem a etiqueta 'single' e isso \u00e9 uma quest\u00e3o.<br \/>\nAinda mais interessante \u00e9 a segunda peculiaridade no segundo multiplexo \u2014 todos os programas est\u00e3o no primeiro PLP, e no segundo PLP, a uma velocidade baixa, h\u00e1 um sinal de natureza desconhecida. Pelo menos, o player VLC, que compreende cerca de cinquenta formatos de v\u00eddeo e tantos de \u00e1udio, n\u00e3o o reconhece. <\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Oleg-Malyutin\/sdr_receiver_dvb_t2\">O projeto pode ser encontrado aqui<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>O projeto foi criado com o objetivo de determinar a pr\u00f3pria possibilidade de decodificar DVB-T2 usando SdrPlay (e agora tamb\u00e9m AirSpy), portanto, esta \u00e9 uma vers\u00e3o ainda n\u00e3o alfa.<\/p>\n<p><\/p>\n<p>P.S. Enquanto o artigo era escrito com dificuldade, consegui adicionar o PlutoSDR ao projeto.<\/p>\n<p><\/p>\n<p>Algu\u00e9m pode dizer imediatamente que s\u00f3 h\u00e1 6Msps para o sinal IQ na sa\u00edda USB2.0, enquanto s\u00e3o necess\u00e1rios pelo menos 9,2Msps, mas isso j\u00e1 \u00e9 um assunto separado.<\/p>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/522150\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Software Defined Radio (\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e-\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u0430\u044f \u0440\u0430\u0434\u0438\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0430) \u2014 \u044d\u0442\u043e \u043c\u0435\u0442\u043e\u0434 \u0437\u0430\u043c\u0435\u043d\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u043c\u0435\u0442\u0430\u043b\u043b\u0443 (\u0447\u0442\u043e, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u044f) \u043d\u0430 \u0433\u043e\u043b\u043e\u0432\u043d\u0443\u044e \u0431\u043e\u043b\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. SDR \u043f\u0440\u043e\u0440\u043e\u0447\u0430\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u043e\u043c \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043d\u044f\u0442\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0434\u0438\u043e\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432. \u041f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u043c\u043e\u0434\u0443\u043b\u044f\u0446\u0438\u0438 OFDM (Orthogonal frequency-division multiplexing), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0442\u0430\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u043c SDR. \u041d\u043e \u0435\u0441\u0442\u044c \u0432 SDR \u0438 \u0435\u0449\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":96002,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-96001","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"Software Defined Radio (\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e-\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u0430\u044f \u0440\u0430\u0434\u0438\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0430) \u2014 \u044d\u0442\u043e \u043c\u0435\u0442\u043e\u0434 \u0437\u0430\u043c\u0435\u043d\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u043c\u0435\u0442\u0430\u043b\u043b\u0443 (\u0447\u0442\u043e, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u044f) \u043d\u0430 \u0433\u043e\u043b\u043e\u0432\u043d\u0443\u044e \u0431\u043e\u043b\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/sdr-dvb-t2-receiver-na-c\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47SDR DVB-T2 receiver \u043d\u0430 C++ | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Software Defined Radio (\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e-\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u0430\u044f \u0440\u0430\u0434\u0438\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0430) \u2014 \u044d\u0442\u043e \u043c\u0435\u0442\u043e\u0434 \u0437\u0430\u043c\u0435\u043d\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u043c\u0435\u0442\u0430\u043b\u043b\u0443 (\u0447\u0442\u043e, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u044f) \u043d\u0430 \u0433\u043e\u043b\u043e\u0432\u043d\u0443\u044e \u0431\u043e\u043b\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/sdr-dvb-t2-receiver-na-c\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-06T11:42:04+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-06T11:42:04+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Receptor SDR DVB-T2 em C++ | ProHoster","description":"Software Defined Radio (r\u00e1dio definido por software) \u00e9 um m\u00e9todo que substitui o trabalho em metal (o que, de fato, \u00e9 \u00fatil para a sa\u00fade) por uma dor de cabe\u00e7a de programa\u00e7\u00e3o.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/sdr-dvb-t2-receiver-na-c","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47SDR DVB-T2 receiver \u043d\u0430 C++ | ProHoster","og:description":"Software Defined Radio (\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e-\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u0430\u044f \u0440\u0430\u0434\u0438\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0430) \u2014 \u044d\u0442\u043e \u043c\u0435\u0442\u043e\u0434 \u0437\u0430\u043c\u0435\u043d\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u043c\u0435\u0442\u0430\u043b\u043b\u0443 (\u0447\u0442\u043e, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u044f) \u043d\u0430 \u0433\u043e\u043b\u043e\u0432\u043d\u0443\u044e \u0431\u043e\u043b\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/sdr-dvb-t2-receiver-na-c","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-06T11:42:04+00:00","article:modified_time":"2020-10-06T11:42:04+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"96001","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:53:26","updated":"2022-09-28 21:02:51","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/96001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=96001"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/96001\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/96002"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=96001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=96001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=96001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}