Top 20

1 0x00h 699 pts
2 boris39 699 pts
3 neoxquick 680 pts
4 maf-ia 661 pts
5 thefinder 643 pts
6 benito255 607 pts
7 mego 590 pts
8 madbat2 579 pts
9 Mart 552 pts
10 tehron 502 pts
11 Kithyane 502 pts
12 egosum 472 pts
13 plucth 445 pts
14 Zeta 415 pts
15 Undr 414 pts
16 CoYoTe99 414 pts
17 loonies2 410 pts
18 Armavica 409 pts
19 vitalimarrenra 403 pts
20 b0n0n 396 pts

Classement complet

Shoutbox

3 Apr - 12:45 pm

Bonjour metatr0n, pas besoin besoin restaurer mon compte précédent puisque j'ai pu revalider les épreuves avec le nouveau :) Si le système de mail ne fonctionne plus, il est probable que l'épreuve "Email (21)" soit également impactée. Au passage je te signale un potentiel problème de précision numérique avec l'épreuve "Polynomial regression (25)" nécessitant plusieurs essais pour valider l'épreuve. Lorsque je vérifie mon polynôme en local (double C++), je respecte pourtant la tolérance de précision. Merci pour les épreuves, je me régale ! :)

26 Mar - 6:14 pm

Bonjour, effectivement notre système de mail a l'air d'être en vrac, si tu veux récupérer ton compte je peux te réinitialiser ton mot de passe à la main

17 Mar - 5:36 pm

Bonjour, l'envoi d'email du système de ré-initialisation de mot de passe semble ne pas marcher (mail orange.fr). J'ai pourtant attendu et vérifié mes spams. J'ai du créer un compte "loonies2" en remplacement de "loonies".

11 Feb - 8:21 pm

Bonjour, oui bien sûr, on peut utiliser n'importe quel langage

9 Feb - 11:30 pm

Bonjours, on peut utiliser python 3 ?

26 Jan - 2:06 pm

Hi, that's right, I'm gonna look into it, thanks

26 Jan - 12:58 pm

Hi, contest id 40 page throws an HTTP 500 error.

20 Aug - 6:04 am

Hi b0n0n, this chall does not appear to be broken sorry. What is your problem ?

14 Aug - 11:22 pm

Multiplication of two (big) numbers (40) is broken, anyone plz fix it?

15 Feb - 3:58 am

En vérité je reconnais que c'est surtout moi qui ait des soucis majeurs ... je reçois le mail là, puis pour la compression ça doit être un problème stupide de mon côté

Connexion
Mot de passe oublié

Supportez nousx

Vous aimez µContest ?
Supportez nous en votant (fun et difficulté) pour µContest sur WeChall :)
Si vous ne l'avez pas encore fait, profitez-en pour lier votre compte
Wechall à µContest pour pouvoir voter !

Merci

Liste des épreuves :: Multimédia :: Transmission of a digital signal (33)

Résumé

ID : 33
Points : 18
Validations :
Page de l'épreuve
Reporter un bug

Description


Cette épreuve aborde la problématique de la transmission d'un signal numérique grâce à un signal analogique.

Prenons tout d'abord la suite binaire que nous désirons transmettre : 011000101.
La première étape consiste par exemple à associer un signal analogique à chaque bit.
De nombreuses possibilités existent, une des plus connues et plus simples est d'associer un état 0 au bit 0, et une constante au bit 1. On obtient donc des créneaux (codage NRZ-L unipolaire :p).

Mais ce ne serait pas rigolo si c'était aussi simple, c'est pourquoi on va utiliser le codage suivant :
- Le bit 1 correspond à une période de sinusoïde de phase nulle.
- Le bit 0 correspond à une période de sinusoïde de phase Pi.

Cela veut dire que 1 correspond à ceci :


et 0 correspond à :



Ceci étant dit, on peut maintenant représenter notre suite numérique par un signal analogique :



On pourrait envoyer directement ce signal analogique pour transmettre l'information. Mais pour compliquer un peu, on va moduler ce signal en amplitude avec une porteuse sinusoïdale.

La modulation d'amplitude consiste simplement en la multiplication d'une porteuse et du signal utile. Le signal utile est représenté sur le graphe ci-dessous, la porteuse a alors cette allure :



Le produit de ces deux signaux donne le signal qu'on va réellement transmettre (et que vous devez démoduler et décoder !) suivant :



On se met donc dans le rôle du récepteur, qui reçoit ce signal. Pour l'analyser, il l'échantillonne. Le signal échantillonné se trouve alors dans la variable signal_recu, au format WAV.

Vous devez renvoyer la suite binaire dans la variable resultat sous forme d'une chaîne de caractères '0' et '1'.
Ici vous devriez renvoyer "011000101".

Comme nous sommes gentils, la fréquence de la porteuse est fournie dans la variable freq_porteuse.

A vous de jouer !


Variables


Nom Type Description
Variables à récupérer
signal_recuChaîne de caractèreschar*Le signal reçu au format wav. Vous devez le démoduler et décoder la suite binaire qu'il représente. Attention : Ce buffer peut contenir des '\0', utilisez la longueur fournie par la bibliothèque plutôt que la fonction strlen.
freq_porteuseEntierintFréquence de la porteuse, en Hz
Variables à renvoyer
resultatChaîne de caractèreschar*La suite binaire décodée, composée de caractères '0' et '1'.