Radio définie par logiciel - comment ça marche? Partie 10

Salut, Habr.

Dans la partie "anniversaire" de la série sur la SDR, je veux parler de l'un des protocoles, grùce auquel de nombreux jambons ont rejoint "à leur insu" le monde des signaux numériques à large bande. Cette norme a également été la premiÚre (et à notre connaissance, la seule) tentative de transmission de son numérique à de courtes longueurs d'onde.



Comme beaucoup l'ont probablement déjà deviné, nous parlerons de la norme DRM - Digital Radio Mondiale (à ne pas confondre avec les autres DRM, Digital Rights Management).

Eh bien, parce que Si nous parlons de SDR, nous verrons non seulement comment recevoir des DRM, mais aussi comment les transmettre. Suite sous la coupe.

L'histoire


L'histoire de la norme DRM n'est pas facile. Il a été introduit pour la premiÚre fois en 2003, et des transmissions de test ont été effectuées depuis 2007, et avec un succÚs variable, se poursuivent périodiquement et toujours.

Le DRM était basé sur deux idées principales.

  • Transmission du son Ă  de courtes longueurs d'onde avec une «qualitĂ© numĂ©rique», sans bruit ni dĂ©coloration, avec un dĂ©bit de 6 Ă  34Kbit / s. Cependant, la «qualitĂ© numĂ©rique» ne peut ĂȘtre Ă©crite ici qu’entre guillemets, car Ă  un dĂ©bit de 12 Kbit, le son provient d' une qualitĂ© assez ... relativement faible. De plus, le signal HF est vraiment sujet Ă  la fois au bruit et Ă  la dĂ©coloration, et pour que le «chiffre» soit dĂ©codĂ©, un rapport signal / bruit trĂšs Ă©levĂ© est nĂ©cessaire - de sorte que le signal analogique ordinaire sonnera encore mieux. En gĂ©nĂ©ral, il suffit d’essayer au moins une fois dans la vie rĂ©elle d’accepter les DRM pour comprendre que l’idĂ©e ne va pas dĂ©coller. Mais la diffusion a nĂ©anmoins Ă©tĂ© effectuĂ©e pĂ©riodiquement, y compris depuis la Russie (voir KDPV), et certaines stations de radio diffusent parfois encore en DRM.
  • Transmission sonore dans la bande FM. Cette norme a Ă©tĂ© appelĂ©e DRM +. Ici, l'idĂ©e Ă©tait d'Ă©conomiser la ressource en frĂ©quence - grĂące Ă  la compression numĂ©rique, jusqu'Ă  4 transmissions audio peuvent ĂȘtre transmises immĂ©diatement dans la bande 100KHz, ce qui promettait de bons avantages dans les grandes villes comme Londres, oĂč il n'y a plus de frĂ©quences libres. D'un autre cĂŽtĂ©, DAB fonctionnait dĂ©jĂ  en Europe et une autre norme n'Ă©tait tout simplement pas nĂ©cessaire ici. Selon WikipĂ©dia, le test de diffusion de DRM + a Ă©tĂ© rĂ©alisĂ© en Écosse au cours de la 2010e annĂ©e, alors que certains cas rĂ©els de diffusion de DRM + n'ont pas encore Ă©tĂ© entendus.

La norme DRM est essentiellement quelque peu surrĂ©aliste - depuis des annĂ©es, des stations de radio fonctionnent, des Ă©missions diffusent ... Mais il n'y a pas de rĂ©cepteurs de cette norme en vente. GĂ©nĂ©ralement. Aucun. Il est clair que la norme Ă©tant numĂ©rique, le rĂ©cepteur habituel ne peut entendre que des sifflements, et personne n'a encore appris Ă  dĂ©coder QAM Ă  l'oreille. La rĂ©ception de DRM n'Ă©tait donc un divertissement que pour la radio amateur. Il semble que 1-2 rĂ©cepteurs existaient, sur lesquels il y a mĂȘme quelques vidĂ©os sur YouTube ( 1 et 2 ), mais il n'y a rien en vente maintenant sur Ebay ou Amazon.

Le deuxiĂšme problĂšme de la rĂ©ception de DRM est que dans les villes oĂč la diffusion HF est de facto morte - il y a tellement d'interfĂ©rences avec les appareils Ă©lectromĂ©nagers et les alimentations que mĂȘme si vous allumez la radio HF, vous entendrez un craquement et du bruit - le dĂ©codage dans de telles conditions ne fonctionne pas sera, dans le meilleur des cas, le rĂ©cepteur pourra montrer la station Ă©conomiseur d'Ă©cran, mais sans son. Vous pouvez bien sĂ»r placer l'antenne sur le balcon ou sur le toit, la configurer avec soin, et en principe, il est tout Ă  fait possible de recevoir et de dĂ©coder des DRM d'un appartement en ville pour des radio-amateurs. Les gens ordinaires ne s'embĂȘteront pas avec ce 100%, personne ne montera sur le toit pour accrocher une antenne pour recevoir un signal audio avec un dĂ©bit de 12Kbit / s.

En général, il n'y a pas de récepteurs, pas d'audience. Mais il y a une émission. Le gopher du film se repose ...

À propos, en ce moment, au moment de la rĂ©daction (juillet 2019), la diffusion du test DRM + est en cours Ă  Saint-PĂ©tersbourg, afin que ceux qui souhaitent ĂȘtre un gopher puissent essayer de recevoir un signal (il n'y a rien Ă  Ă©couter, il n'y a pas de rĂ©cepteurs, ou mĂȘme des dĂ©codeurs SDR logiciels pour DRM +). Pour la rĂ©ception, vous pouvez utiliser RTL-SDR, et si vous ĂȘtes chanceux, alors dans la bande FM, vous pouvez voir un signal numĂ©rique d'une largeur d'environ 100 KHz. Cependant, comme dĂ©jĂ  mentionnĂ©, aucun dĂ©codeur n'a pu ĂȘtre trouvĂ© pour lui.

Réception DRM


Les premiers signalements de jambons DRM sur radioscanner remontent Ă  2008. La rĂ©ception d'un signal numĂ©rique d'une largeur de 10 KHz n'est pas possible sur un rĂ©cepteur domestique ordinaire (et mĂȘme amateur), donc ceux qui voulaient avoir Ă  souder le convertisseur pour sortir le rĂ©cepteur IF sur la carte son. AprĂšs l'apparition du SDR, le problĂšme rĂ©solu par lui-mĂȘme, vous pouvez choisir n'importe quelle bande passante dans les capacitĂ©s du rĂ©cepteur (pour les premiers SDR basĂ©s sur une carte son, c'Ă©tait gĂ©nĂ©ralement 48KHz, ce qui est plus que suffisant). Le dĂ©codage lui-mĂȘme a Ă©tĂ© effectuĂ© Ă  l'aide d'un programme Dream trĂšs pratique et de haute qualitĂ©.

Comme mentionné ci-dessus, les stations DRM fonctionnent assez réguliÚrement, et les trouver en direct n'est pas si difficile. Par exemple, sur websdr , un tel signal se distingue trÚs facilement sur le spectre - si un signal numérique à 10 kHz est visible dans la plage de diffusion, alors c'est tout. Exemple de capture d'écran d'une station fonctionnant à 15 MHz prise au moment de la rédaction:



Le dĂ©coder simplement Ă  l'aide de websdr ne fonctionnera pas, la bande passante du rĂ©cepteur en ligne est trop petite. Cependant, tout le monde peut Ă©couter DRM, un fichier enregistrĂ© en direct peut ĂȘtre tĂ©lĂ©chargĂ© ici . Pour le dĂ©codage, vous pouvez utiliser le programme Dream dĂ©jĂ  mentionnĂ©, une version de travail avec toutes les DLL nĂ©cessaires peut ĂȘtre trouvĂ©e sur le site Web de radioscanner .

Si nous parlons des récepteurs "de fer", il a été annoncé, par exemple, le récepteur Gospell GR-216, mais il n'est pas en direct sur eBay ou Amazon.
Edit: comme suggéré dans les commentaires, ce récepteur est désormais vendu sur le marché australien sous la marque Tecsun Q-3061. Le prix d'émission est de 500 AUD, soit environ 350 $.


Ceux qui souhaitent hĂ©berger eux-mĂȘmes des stations DRM peuvent consulter le calendrier sur https://www.drm.org/what-can-i-hear/broadcast-schedule-2/ .

Transmission DRM


Maintenant, nous nous tournons vers non moins intĂ©ressant - la possibilitĂ© de transmettre des signaux DRM (et si je ne me trompe pas, cela est dĂ©crit dans RuNet pour la premiĂšre fois). Cela peut ĂȘtre fait en utilisant GNU Radio et le module gr-drm .



Techniquement, DRM utilise la modulation QAM, et a quelques paramĂštres de dĂ©bit et de bande passante. De plus, non seulement le son (mono et stĂ©rĂ©o) peut ĂȘtre transmis, mais aussi le texte, le logo de la chaĂźne et d'autres informations de service. Pour les ondes dĂ©camĂ©triques (modes AD), la bande occupĂ©e peut varier de 4,5 Ă  20 kHz, mais en pratique, seuls des signaux de 10 kHz ont Ă©tĂ© rencontrĂ©s. Pour VHF (mode E), comme dĂ©jĂ  mentionnĂ©, une bande de 100 kHz est utilisĂ©e.

Tableau de www.drm.org/DRM_Handbook_2018.pdf :


Une description plus détaillée de la norme est en PDF , vous pouvez lire briÚvement sur Signalwiki .

Revenons à notre graphique de connexion. Comme vous pouvez le voir, l'encodeur DRM génÚre un signal à partir de plusieurs composants.

  • Canal d'accĂšs rapide (FAC). Contient des informations sur les propriĂ©tĂ©s du signal ODFM et la configuration SDC / MSC. Les informations sur les canaux sont transmises toutes les 0,4 s, ce qui permet au rĂ©cepteur de commencer rapidement Ă  recevoir un signal de station. Les paramĂštres de signal peuvent ĂȘtre configurĂ©s dans le bloc de configuration DRM.
  • Service Description Channel (SDC). DĂ©crit le canal de transmission MSC.
  • Canal de service principal (MSC). Contient des trames de donnĂ©es; QAM16 ou QAM64 peuvent ĂȘtre utilisĂ©es pour la transmission.

Eh bien, la chose la plus intĂ©ressante est que tout cela peut ĂȘtre exĂ©cutĂ© sans problĂšme sur un PC ordinaire. Gr-drm est inclus dans le package PothosSDR pour Windows, mais hĂ©las, cela ne fonctionne pas lĂ -bas - il y a un signal, mais le dĂ©codage se produit avec des erreurs. Sous Ubuntu, tout dĂ©marre bien.

Vous pouvez utiliser un fichier WAV ou un Ă©metteur-rĂ©cepteur SDR complet tel que HackRF comme pĂ©riphĂ©rique de sortie dans GNU Radio. Pour ceux qui veulent expĂ©rimenter par eux-mĂȘmes, le fichier GRC est sous le spoiler.

rdm_transmit.grc
<?xml version='1.0' encoding='utf-8'?> <?grc format='1' created='3.7.11'?> <flow_graph> <timestamp>Tue Apr 29 11:37:08 2014</timestamp> <block> <key>options</key> <param> <key>author</key> <value>Felix Wunsch</value> </param> <param> <key>window_size</key> <value>3000, 2000</value> </param> <param> <key>category</key> <value>Custom</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>description</key> <value>Generic DRM Transmitter. For the MSC, only SM and EEP is implemented.</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(1016, 16)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>generate_options</key> <value>no_gui</value> </param> <param> <key>hier_block_src_path</key> <value>.:</value> </param> <param> <key>id</key> <value>drm_transmitter</value> </param> <param> <key>max_nouts</key> <value>0</value> </param> <param> <key>qt_qss_theme</key> <value></value> </param> <param> <key>realtime_scheduling</key> <value></value> </param> <param> <key>run_command</key> <value>{python} -u {filename}</value> </param> <param> <key>run_options</key> <value>run</value> </param> <param> <key>run</key> <value>True</value> </param> <param> <key>thread_safe_setters</key> <value></value> </param> <param> <key>title</key> <value>DRM Transmitter</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(240, 60)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>file_dest</value> </param> <param> <key>value</key> <value>"D:\\MyProjects\\GNURadio\\gr-drm-master\\apps\\sound_drm_out.wav"</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(56, 60)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>file_source</value> </param> <param> <key>value</key> <value>"D:\\MyProjects\\GNURadio\\gr-drm-master\\apps\\sound.wav"</value> </param> </block> <block> <key>variable_drm_config</key> <param> <key>audio_sample_rate</key> <value>12000</value> </param> <param> <key>comment</key> <value>Before generating the flow graph, define the path to a 24 kHz wav-file and change the parameters of the UHD sink. Do not forget to set the correct audio_sample_rate.</value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(1208, 12)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>tp</value> </param> <param> <key>long_interl</key> <value>True</value> </param> <param> <key>msc_mapping</key> <value>2</value> </param> <param> <key>msc_prot_level_2_16</key> <value>1</value> </param> <param> <key>msc_prot_level_2_64</key> <value>0</value> </param> <param> <key>RM</key> <value>1</value> </param> <param> <key>sdc_mapping</key> <value>0</value> </param> <param> <key>SO</key> <value>3</value> </param> <param> <key>station_label</key> <value>"Radioscanner Test"</value> </param> <param> <key>text_message</key> <value>"DRM transmission with GNU Radio"</value> </param> </block> <block> <key>analog_sig_source_x</key> <param> <key>amp</key> <value>1</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>freq</key> <value>7000</value> </param> <param> <key>_coordinate</key> <value>(576, 624)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>analog_sig_source_x_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>offset</key> <value>0</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> <key>samp_rate</key> <value>drm.FS_SOUNDCARD</value> </param> <param> <key>waveform</key> <value>analog.GR_COS_WAVE</value> </param> </block> <block> <key>audio_sink</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>device_name</key> <value></value> </param> <param> <key>_enabled</key> <value>0</value> </param> <param> <key>_coordinate</key> <value>(1184, 556)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>audio_sink_0</value> </param> <param> <key>num_inputs</key> <value>1</value> </param> <param> <key>ok_to_block</key> <value>True</value> </param> <param> <key>samp_rate</key> <value>48000</value> </param> </block> <block> <key>audio_source</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>device_name</key> <value></value> </param> <param> <key>_enabled</key> <value>0</value> </param> <param> <key>_coordinate</key> <value>(56, 156)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>audio_source_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>num_outputs</key> <value>1</value> </param> <param> <key>ok_to_block</key> <value>True</value> </param> <param> <key>samp_rate</key> <value>44100</value> </param> </block> <block> <key>blocks_complex_to_real</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(1008, 640)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_complex_to_real_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <block> <key>blocks_multiply_const_vxx</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>const</key> <value>32768</value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(272, 236)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_multiply_const_vxx_0</value> </param> <param> <key>type</key> <value>float</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <block> <key>blocks_multiply_const_vxx</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value>Prevent clipping</value> </param> <param> <key>const</key> <value>7e-3</value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(688, 468)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_multiply_const_vxx_1</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <block> <key>blocks_multiply_xx</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(864, 624)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_multiply_xx_0</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>num_inputs</key> <value>2</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <block> <key>blocks_wavfile_sink</key> <param> <key>bits_per_sample</key> <value>16</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>file</key> <value>file_dest</value> </param> <param> <key>_coordinate</key> <value>(1200, 620)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_wavfile_sink_0</value> </param> <param> <key>nchan</key> <value>1</value> </param> <param> <key>samp_rate</key> <value>drm.FS_SOUNDCARD</value> </param> </block> <block> <key>blocks_wavfile_source</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>file</key> <value>file_source</value> </param> <param> <key>_coordinate</key> <value>(56, 228)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_wavfile_source_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>nchan</key> <value>1</value> </param> <param> <key>repeat</key> <value>False</value> </param> </block> <block> <key>cell_mapping_cc</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value>Multiplex the three logical channels and the pilot cells and create transmission frames.</value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(1184, 264)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>cell_mapping_cc_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>tp</key> <value>tp</value> </param> </block> <block> <key>digital_ofdm_cyclic_prefixer</key> <param> <key>alias</key> <value></value> </param> <param> <key>cp_len</key> <value>tp.ofdm().nfft()*tp.ofdm().cp_ratio_enum()/tp.ofdm().cp_ratio_denom()</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>input_size</key> <value>tp.ofdm().nfft()</value> </param> <param> <key>_coordinate</key> <value>(456, 448)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>digital_ofdm_cyclic_prefixer_1</value> </param> <param> <key>tagname</key> <value></value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>rolloff</key> <value>0</value> </param> </block> <block> <key>drm_audio_encoder_sb</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(456, 240)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>drm_audio_encoder_sb_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>len_out</key> <value>tp.msc().L_MUX()</value> </param> <param> <key>tp</key> <value>tp</value> </param> </block> <block> <key>drm_generate_fac_b</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(56, 344)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>drm_generate_fac_b_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>tp</key> <value>tp</value> </param> </block> <block> <key>drm_generate_sdc_b</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(56, 296)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>drm_generate_sdc_b_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>tp</key> <value>tp</value> </param> </block> <block> <key>drm_interleaver_cc</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value>Additional interleaving</value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(952, 240)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>drm_interleaver_cc_0</value> </param> <param> <key>depth</key> <value>drm.INTL_DEPTH_DRM</value> </param> <param> <key>interl_seq</key> <value>tp.msc().cell_interl_seq()</value> </param> <param> <key>long_interl</key> <value>tp.cfg().long_interl()</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> </block> <block> <key>drm_scrambler_bb</key> <param> <key>alias</key> <value></value> </param> <param> <key>block_len</key> <value>tp.msc().L_MUX()</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(608, 240)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>drm_scrambler_bb_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> </block> <block> <key>drm_scrambler_bb</key> <param> <key>alias</key> <value></value> </param> <param> <key>block_len</key> <value>tp.fac().L()</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(608, 344)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>drm_scrambler_bb_0_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> </block> <block> <key>drm_scrambler_bb</key> <param> <key>alias</key> <value></value> </param> <param> <key>block_len</key> <value>tp.sdc().L()</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(608, 296)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>drm_scrambler_bb_0_1</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> </block> <block> <key>fft_vxx</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>fft_size</key> <value>tp.ofdm().nfft()</value> </param> <param> <key>forward</key> <value>False</value> </param> <param> <key>_coordinate</key> <value>(232, 440)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>fft_vxx_0</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>nthreads</key> <value>1</value> </param> <param> <key>shift</key> <value>True</value> </param> <param> <key>window</key> <value></value> </param> </block> <block> <key>mlc_bc</key> <param> <key>alias</key> <value></value> </param> <param> <key>channel_type</key> <value>"FAC"</value> </param> <param> <key>comment</key> <value>Apply channel coding and interleaving</value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(744, 340)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>mlc_bc_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>tp</key> <value>tp</value> </param> </block> <block> <key>mlc_bc</key> <param> <key>alias</key> <value></value> </param> <param> <key>channel_type</key> <value>"MSC"</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(744, 236)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>mlc_bc_0_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>tp</key> <value>tp</value> </param> </block> <block> <key>mlc_bc</key> <param> <key>alias</key> <value></value> </param> <param> <key>channel_type</key> <value>"SDC"</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(744, 292)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>mlc_bc_0_1</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>tp</key> <value>tp</value> </param> </block> <block> <key>rational_resampler_xxx</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value>Ingoing sample rate is assumed to be 48 kHz. 250 kHz is one of the lowest achievable rates of the USRP.</value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>decim</key> <value>drm.FS_SOUNDCARD / 1000</value> </param> <param> <key>_enabled</key> <value>0</value> </param> <param> <key>fbw</key> <value>0</value> </param> <param> <key>_coordinate</key> <value>(864, 448)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>rational_resampler_xxx_0</value> </param> <param> <key>interp</key> <value>250</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>taps</key> <value></value> </param> <param> <key>type</key> <value>ccc</value> </param> </block> <block> <key>rational_resampler_xxx</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>decim</key> <value>441</value> </param> <param> <key>_enabled</key> <value>0</value> </param> <param> <key>fbw</key> <value>0</value> </param> <param> <key>_coordinate</key> <value>(248, 136)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>rational_resampler_xxx_0_0</value> </param> <param> <key>interp</key> <value>240</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>taps</key> <value></value> </param> <param> <key>type</key> <value>fff</value> </param> </block> <block> <key>virtual_source</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(56, 468)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>sym_in</value> </param> <param> <key>stream_id</key> <value>symbols</value> </param> </block> <block> <key>virtual_sink</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(1408, 292)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>sym_out</value> </param> <param> <key>stream_id</key> <value>symbols</value> </param> </block> <block> <key>uhd_usrp_sink</key> <param> <key>alias</key> <value></value> </param> <param> <key>ant0</key> <value>TXA</value> </param> <param> <key>bw0</key> <value>0</value> </param> <param> <key>center_freq0</key> <value>5e6</value> </param> <param> <key>norm_gain0</key> <value>False</value> </param> <param> <key>gain0</key> <value>0</value> </param> <param> <key>ant10</key> <value></value> </param> <param> <key>bw10</key> <value>0</value> </param> <param> <key>center_freq10</key> <value>0</value> </param> <param> <key>norm_gain10</key> <value>False</value> </param> <param> <key>gain10</key> <value>0</value> </param> <param> <key>ant11</key> <value></value> </param> <param> <key>bw11</key> <value>0</value> </param> <param> <key>center_freq11</key> <value>0</value> </param> <param> <key>norm_gain11</key> <value>False</value> </param> <param> <key>gain11</key> <value>0</value> </param> <param> <key>ant12</key> <value></value> </param> <param> <key>bw12</key> <value>0</value> </param> <param> <key>center_freq12</key> <value>0</value> </param> <param> <key>norm_gain12</key> <value>False</value> </param> <param> <key>gain12</key> <value>0</value> </param> <param> <key>ant13</key> <value></value> </param> <param> <key>bw13</key> <value>0</value> </param> <param> <key>center_freq13</key> <value>0</value> </param> <param> <key>norm_gain13</key> <value>False</value> </param> <param> <key>gain13</key> <value>0</value> </param> <param> <key>ant14</key> <value></value> </param> <param> <key>bw14</key> <value>0</value> </param> <param> <key>center_freq14</key> <value>0</value> </param> <param> <key>norm_gain14</key> <value>False</value> </param> <param> <key>gain14</key> <value>0</value> </param> <param> <key>ant15</key> <value></value> </param> <param> <key>bw15</key> <value>0</value> </param> <param> <key>center_freq15</key> <value>0</value> </param> <param> <key>norm_gain15</key> <value>False</value> </param> <param> <key>gain15</key> <value>0</value> </param> <param> <key>ant16</key> <value></value> </param> <param> <key>bw16</key> <value>0</value> </param> <param> <key>center_freq16</key> <value>0</value> </param> <param> <key>norm_gain16</key> <value>False</value> </param> <param> <key>gain16</key> <value>0</value> </param> <param> <key>ant17</key> <value></value> </param> <param> <key>bw17</key> <value>0</value> </param> <param> <key>center_freq17</key> <value>0</value> </param> <param> <key>norm_gain17</key> <value>False</value> </param> <param> <key>gain17</key> <value>0</value> </param> <param> <key>ant18</key> <value></value> </param> <param> <key>bw18</key> <value>0</value> </param> <param> <key>center_freq18</key> <value>0</value> </param> <param> <key>norm_gain18</key> <value>False</value> </param> <param> <key>gain18</key> <value>0</value> </param> <param> <key>ant19</key> <value></value> </param> <param> <key>bw19</key> <value>0</value> </param> <param> <key>center_freq19</key> <value>0</value> </param> <param> <key>norm_gain19</key> <value>False</value> </param> <param> <key>gain19</key> <value>0</value> </param> <param> <key>ant1</key> <value></value> </param> <param> <key>bw1</key> <value>0</value> </param> <param> <key>center_freq1</key> <value>0</value> </param> <param> <key>norm_gain1</key> <value>False</value> </param> <param> <key>gain1</key> <value>0</value> </param> <param> <key>ant20</key> <value></value> </param> <param> <key>bw20</key> <value>0</value> </param> <param> <key>center_freq20</key> <value>0</value> </param> <param> <key>norm_gain20</key> <value>False</value> </param> <param> <key>gain20</key> <value>0</value> </param> <param> <key>ant21</key> <value></value> </param> <param> <key>bw21</key> <value>0</value> </param> <param> <key>center_freq21</key> <value>0</value> </param> <param> <key>norm_gain21</key> <value>False</value> </param> <param> <key>gain21</key> <value>0</value> </param> <param> <key>ant22</key> <value></value> </param> <param> <key>bw22</key> <value>0</value> </param> <param> <key>center_freq22</key> <value>0</value> </param> <param> <key>norm_gain22</key> <value>False</value> </param> <param> <key>gain22</key> <value>0</value> </param> <param> <key>ant23</key> <value></value> </param> <param> <key>bw23</key> <value>0</value> </param> <param> <key>center_freq23</key> <value>0</value> </param> <param> <key>norm_gain23</key> <value>False</value> </param> <param> <key>gain23</key> <value>0</value> </param> <param> <key>ant24</key> <value></value> </param> <param> <key>bw24</key> <value>0</value> </param> <param> <key>center_freq24</key> <value>0</value> </param> <param> <key>norm_gain24</key> <value>False</value> </param> <param> <key>gain24</key> <value>0</value> </param> <param> <key>ant25</key> <value></value> </param> <param> <key>bw25</key> <value>0</value> </param> <param> <key>center_freq25</key> <value>0</value> </param> <param> <key>norm_gain25</key> <value>False</value> </param> <param> <key>gain25</key> <value>0</value> </param> <param> <key>ant26</key> <value></value> </param> <param> <key>bw26</key> <value>0</value> </param> <param> <key>center_freq26</key> <value>0</value> </param> <param> <key>norm_gain26</key> <value>False</value> </param> <param> <key>gain26</key> <value>0</value> </param> <param> <key>ant27</key> <value></value> </param> <param> <key>bw27</key> <value>0</value> </param> <param> <key>center_freq27</key> <value>0</value> </param> <param> <key>norm_gain27</key> <value>False</value> </param> <param> <key>gain27</key> <value>0</value> </param> <param> <key>ant28</key> <value></value> </param> <param> <key>bw28</key> <value>0</value> </param> <param> <key>center_freq28</key> <value>0</value> </param> <param> <key>norm_gain28</key> <value>False</value> </param> <param> <key>gain28</key> <value>0</value> </param> <param> <key>ant29</key> <value></value> </param> <param> <key>bw29</key> <value>0</value> </param> <param> <key>center_freq29</key> <value>0</value> </param> <param> <key>norm_gain29</key> <value>False</value> </param> <param> <key>gain29</key> <value>0</value> </param> <param> <key>ant2</key> <value></value> </param> <param> <key>bw2</key> <value>0</value> </param> <param> <key>center_freq2</key> <value>0</value> </param> <param> <key>norm_gain2</key> <value>False</value> </param> <param> <key>gain2</key> <value>0</value> </param> <param> <key>ant30</key> <value></value> </param> <param> <key>bw30</key> <value>0</value> </param> <param> <key>center_freq30</key> <value>0</value> </param> <param> <key>norm_gain30</key> <value>False</value> </param> <param> <key>gain30</key> <value>0</value> </param> <param> <key>ant31</key> <value></value> </param> <param> <key>bw31</key> <value>0</value> </param> <param> <key>center_freq31</key> <value>0</value> </param> <param> <key>norm_gain31</key> <value>False</value> </param> <param> <key>gain31</key> <value>0</value> </param> <param> <key>ant3</key> <value></value> </param> <param> <key>bw3</key> <value>0</value> </param> <param> <key>center_freq3</key> <value>0</value> </param> <param> <key>norm_gain3</key> <value>False</value> </param> <param> <key>gain3</key> <value>0</value> </param> <param> <key>ant4</key> <value></value> </param> <param> <key>bw4</key> <value>0</value> </param> <param> <key>center_freq4</key> <value>0</value> </param> <param> <key>norm_gain4</key> <value>False</value> </param> <param> <key>gain4</key> <value>0</value> </param> <param> <key>ant5</key> <value></value> </param> <param> <key>bw5</key> <value>0</value> </param> <param> <key>center_freq5</key> <value>0</value> </param> <param> <key>norm_gain5</key> <value>False</value> </param> <param> <key>gain5</key> <value>0</value> </param> <param> <key>ant6</key> <value></value> </param> <param> <key>bw6</key> <value>0</value> </param> <param> <key>center_freq6</key> <value>0</value> </param> <param> <key>norm_gain6</key> <value>False</value> </param> <param> <key>gain6</key> <value>0</value> </param> <param> <key>ant7</key> <value></value> </param> <param> <key>bw7</key> <value>0</value> </param> <param> <key>center_freq7</key> <value>0</value> </param> <param> <key>norm_gain7</key> <value>False</value> </param> <param> <key>gain7</key> <value>0</value> </param> <param> <key>ant8</key> <value></value> </param> <param> <key>bw8</key> <value>0</value> </param> <param> <key>center_freq8</key> <value>0</value> </param> <param> <key>norm_gain8</key> <value>False</value> </param> <param> <key>gain8</key> <value>0</value> </param> <param> <key>ant9</key> <value></value> </param> <param> <key>bw9</key> <value>0</value> </param> <param> <key>center_freq9</key> <value>0</value> </param> <param> <key>norm_gain9</key> <value>False</value> </param> <param> <key>gain9</key> <value>0</value> </param> <param> <key>clock_rate</key> <value>0.0</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>dev_addr</key> <value></value> </param> <param> <key>dev_args</key> <value>""</value> </param> <param> <key>_enabled</key> <value>0</value> </param> <param> <key>_coordinate</key> <value>(1168, 424)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>uhd_usrp_sink_0</value> </param> <param> <key>type</key> <value>fc32</value> </param> <param> <key>clock_source0</key> <value></value> </param> <param> <key>sd_spec0</key> <value></value> </param> <param> <key>time_source0</key> <value></value> </param> <param> <key>clock_source1</key> <value></value> </param> <param> <key>sd_spec1</key> <value></value> </param> <param> <key>time_source1</key> <value></value> </param> <param> <key>clock_source2</key> <value></value> </param> <param> <key>sd_spec2</key> <value></value> </param> <param> <key>time_source2</key> <value></value> </param> <param> <key>clock_source3</key> <value></value> </param> <param> <key>sd_spec3</key> <value></value> </param> <param> <key>time_source3</key> <value></value> </param> <param> <key>clock_source4</key> <value></value> </param> <param> <key>sd_spec4</key> <value></value> </param> <param> <key>time_source4</key> <value></value> </param> <param> <key>clock_source5</key> <value></value> </param> <param> <key>sd_spec5</key> <value></value> </param> <param> <key>time_source5</key> <value></value> </param> <param> <key>clock_source6</key> <value></value> </param> <param> <key>sd_spec6</key> <value></value> </param> <param> <key>time_source6</key> <value></value> </param> <param> <key>clock_source7</key> <value></value> </param> <param> <key>sd_spec7</key> <value></value> </param> <param> <key>time_source7</key> <value></value> </param> <param> <key>nchan</key> <value>1</value> </param> <param> <key>num_mboards</key> <value>1</value> </param> <param> <key>samp_rate</key> <value>48000 * 250 / 48</value> </param> <param> <key>hide_cmd_port</key> <value>False</value> </param> <param> <key>hide_lo_controls</key> <value>True</value> </param> <param> <key>stream_args</key> <value></value> </param> <param> <key>stream_chans</key> <value>[]</value> </param> <param> <key>sync</key> <value></value> </param> <param> <key>len_tag_name</key> <value></value> </param> <param> <key>otw</key> <value></value> </param> </block> <connection> <source_block_id>analog_sig_source_x_0</source_block_id> <sink_block_id>blocks_multiply_xx_0</sink_block_id> <source_key>0</source_key> <sink_key>1</sink_key> </connection> <connection> <source_block_id>audio_source_0</source_block_id> <sink_block_id>rational_resampler_xxx_0_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_complex_to_real_0</source_block_id> <sink_block_id>audio_sink_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_complex_to_real_0</source_block_id> <sink_block_id>blocks_wavfile_sink_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_multiply_const_vxx_0</source_block_id> <sink_block_id>drm_audio_encoder_sb_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_multiply_const_vxx_1</source_block_id> <sink_block_id>blocks_multiply_xx_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_multiply_const_vxx_1</source_block_id> <sink_block_id>rational_resampler_xxx_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_multiply_xx_0</source_block_id> <sink_block_id>blocks_complex_to_real_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_wavfile_source_0</source_block_id> <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>cell_mapping_cc_0</source_block_id> <sink_block_id>sym_out</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>digital_ofdm_cyclic_prefixer_1</source_block_id> <sink_block_id>blocks_multiply_const_vxx_1</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>drm_audio_encoder_sb_0</source_block_id> <sink_block_id>drm_scrambler_bb_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>drm_generate_fac_b_0</source_block_id> <sink_block_id>drm_scrambler_bb_0_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>drm_generate_sdc_b_0</source_block_id> <sink_block_id>drm_scrambler_bb_0_1</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>drm_interleaver_cc_0</source_block_id> <sink_block_id>cell_mapping_cc_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>drm_scrambler_bb_0</source_block_id> <sink_block_id>mlc_bc_0_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>drm_scrambler_bb_0_0</source_block_id> <sink_block_id>mlc_bc_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>drm_scrambler_bb_0_1</source_block_id> <sink_block_id>mlc_bc_0_1</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>fft_vxx_0</source_block_id> <sink_block_id>digital_ofdm_cyclic_prefixer_1</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>mlc_bc_0</source_block_id> <sink_block_id>cell_mapping_cc_0</sink_block_id> <source_key>0</source_key> <sink_key>2</sink_key> </connection> <connection> <source_block_id>mlc_bc_0_0</source_block_id> <sink_block_id>drm_interleaver_cc_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>mlc_bc_0_1</source_block_id> <sink_block_id>cell_mapping_cc_0</sink_block_id> <source_key>0</source_key> <sink_key>1</sink_key> </connection> <connection> <source_block_id>rational_resampler_xxx_0</source_block_id> <sink_block_id>uhd_usrp_sink_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>rational_resampler_xxx_0_0</source_block_id> <sink_block_id>drm_audio_encoder_sb_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>sym_in</source_block_id> <sink_block_id>fft_vxx_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> </flow_graph> 


Hélas, USRP ne transmet pas à HF, mais je n'ai pas HackRF. Il n'a donc pas été possible de faire un véritable test de diffusion, mais je peux confirmer que le décodage du son via Dream se produit sans erreur.

Conclusion


Curieusement, malgrĂ© le dĂ©sespoir apparemment de 99%, la norme DRM est toujours en vie. Cependant, il est peu probable qu'il rĂ©ussisse et dĂ©passe les expĂ©riences locales - la qualitĂ© sonore du DRM ne rĂ©pond pas aux normes modernes et il n'y a pas de rĂ©cepteurs sur le marchĂ©. D'un point de vue technique, ce qui semblait ĂȘtre une «percĂ©e» en 2003 est dĂ©sormais peu pertinent.

Mais d'un autre cÎté, la norme DRM contient de nombreuses idées intéressantes, sa réception a été (et est) une expérience assez intéressante pour les radio-amateurs, tous ceux qui peuvent la rejoindre pendant que la station drm est en ondes le peuvent.

Sur ce, la série d'articles sur le SDR est terminée, j'espÚre que quelqu'un était intéressé et utile.
Toutes les expériences réussies.

Source: https://habr.com/ru/post/fr461653/


All Articles