REKLAMA

Transmisja danych dźwiękiem w JavaScript od podstaw. Część 3: Własny stos sieciowy

W pierwszej części tej serii (Programista nr 51) omówiliśmy szczegółowo zasadę działania prostego i intuicyjnego algorytmu Dyskretnej Transformaty Fouriera. W tej części pokażemy, jak ten sam algorytm przetestować na prawdziwych próbkach audio przy użyciu Web Audio API omówionego w części drugiej (Programista nr 57). Oprócz tego przeanalizujemy metody modulacji cyfrowej oraz stworzymy krok po kroku prostą implementację stosu sieciowego bazującego na modelu OSI oraz TCP/IP. Umożliwi nam on zrealizowanie aplikacji przesyłającej wiadomości tekstowe między dwoma urządzeniami tylko za pomocą dźwięku...

Zagadnienia poruszane w tym artykule:

  • WaveAnalyser oraz WaveGenerator czyli DSP po naszemu;
  • WaveAnalyser oraz WaveGenerator – testy praktyczne;
  • Problem synchronizacji częstotliwości a dryfowanie fazy;
  • WaveAnalyser kontra AnalyserNode;
  • Wydajność WaveAnalyser;
  • Przetwarzanie offline;
  • Metody modulacji cyfrowej;
  • OFDM – ortogonalne zwielokrotnianie w dziedzinie częstotliwości (Orthogonal Frequency-Division Multiplexing);
  • Testowanie metod modulacji;
  • Jaką metodę modulacji wybrać?
  • AnalyserNode – szybkość dostarczania nowych tablic FFT;
  • Spectral Waterfall;
  • 44.1 kHz czy 48 kHz? Oto jest pytanie;
  • Rozkład energii w prążkach widmowych;
  • Mapowanie prążków widmowych na symbole FSK;
  • Efekt Dopplera;
  • Próbkowanie tablic wyników FFT;
  • Problem synchronizacji;
  • Warstwa fizyczna (ang. Physical Layer);
  • Warstwa łącza danych (ang. Data Link Layer);
  • Warstwa Transportowa (ang. Transport Layer);
  • Warstwa Aplikacji (ang. Application Layer) – protokół wymiany tekstu;
  • Porównanie z modelem OSI oraz TCP/IP;
  • Jak rozbudować nasz system i zwiększyć prędkość transmisji?


Artykuł znajduje się w miesięczniku "Programista" nr 65 (10/2017). Jest to wydanie z przełomu listopada i grudnia. Szczegółowy spis treści: http://programistamag.pl/programista-10-2017-65/

Autorem artykułu jest Robert Rypuła. Pasjonat komputerów i programowania. Od wielu lat związany z aplikacjami webowymi. Obecnie zatrudniony w PGS Software na stanowisku Frontend Developer. Wcześniej doświadczenie zdobywał w firmie Okinet. Poza technologiami webowymi twórca m.in. aplikacji HgtReader umożliwiającej rendering topografii całej Ziemi (OpenGL/Qt). Fan pisania własnych rozwiązań od zera wszędzie tam, gdzie jest to możliwe.