Top 20

1 0x00h 700 pts
2 boris39 700 pts
3 neoxquick 681 pts
4 maf-ia 662 pts
5 thefinder 644 pts
6 benito255 608 pts
7 mego 591 pts
8 madbat2 581 pts
9 Mart 553 pts
10 Stupefy 533 pts
11 nikokks 512 pts
12 tehron 504 pts
13 Kithyane 502 pts
14 plucth 480 pts
15 egosum 473 pts
16 CoYoTe99 416 pts
17 Undr 415 pts
18 Zeta 415 pts
19 loonies2 411 pts
20 Armavica 409 pts

Full ranking


12 May - 11:47 am

Working again now.

10 May - 4:05 pm

Hello, sorry for the late answer, in fact yes there is an issue with the mail, we will try to fix it quickly. Thanks for reporting

7 May - 6:07 pm

Hi there is a issue for the challenfe Email (number 21). I don't receive a mail on any of them: gmail, hotmail, yahoo. do i fail or is it the challenge ?

28 Feb - 10:35 am

Yes we fixed it

27 Feb - 10:00 pm

Thank you, just validated contest22. The solution checker seems to have been fixed.

27 Feb - 8:40 am

Yes several solutions are accepted of course. I will check one of your answers

26 Feb - 7:51 pm

No 500 error, but the solutions I'm submitting can be verified to be correct. It can't be that only one configuration is accepted, right? - as there are multiple correct configurations for each problem.

26 Feb - 5:54 pm

contest 22 is not concerned by the issue I found, and seems to be working (I suppose you don't have 500 error on this one ?). Your solutions are indeed rejected, but I did not check them yet

26 Feb - 3:25 pm

The validation for contest 22 also seems to be wrong (it's not accepting solutions that are clearly correct). I submitted bug report yesterday.

26 Feb - 9:59 am

Ok I fixed the issue It is higly possible that other challenges are impacted, so don't hesitate to tell meif you encounter this again. Thank you for reporting

Password forgotten

Support usx

You like µContest ?
Support us by voting (fun and difficulty) for µContest on WeChall :)
If you have not already, take the opportunity to link your Wechall
account to µContest in order to be able to vote !

Thank you

Contests list :: Multimedia :: Transmission of a digital signal (33)


ID : 33
Points : 18
Validations :
Challenge page
Report a bug


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 !


Name Type Description
Variables to get
signal_recuStringchar*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_porteuseIntegerintFréquence de la porteuse, en Hz
Variables to send back
resultatStringchar*La suite binaire décodée, composée de caractères '0' et '1'.