ITBlog

IT Blog w tematach różnych...

  • O blogu…
  • Edukacja
    • Moodle – stare
    • Moodle2
    • Testy
    • Wykłady IT
  • Firma

Generator modulacji AM i FM

Napisane przez Igor Brzeżek on 16 czerwca 2026
Napisane w: Programowanie.

Contents
  1. Audio Modulator i Mikser – modulacja AM, FM i miksowanie plików WAV
  2. Do czego służy Audio Modulator i Mikser?
  3. Jak to działa – mechanizm wewnętrzny
  4. Wymagania
  5. Instalacja
  6. Użycie z poziomu wiersza poleceń
  7. Podstawowe wywołanie
  8. Argumenty wymagane
  9. Opcje dodatkowe
  10. Przykłady użycia
  11. 1. Modulacja amplitudy (AM)
  12. 2. Miksowanie (sumowanie) ze statystykami i nadpisywaniem
  13. 3. Modulacja częstotliwości (FM)
  14. 4. Wyświetlenie szczegółowej pomocy
  15. Typy modulacji – szczegółowy opis
  16. Modulacja amplitudy (AM)
  17. Modulacja częstotliwości (FM)
  18. Proste sumowanie (miksowanie)
  19. Ochrona przed nadpisywaniem
  20. Statystyki plików
  21. Podsumowanie

Audio Modulator i Mikser – modulacja AM, FM i miksowanie plików WAV

Audio Modulator i Mikser to skrypt napisany w Pythonie, który służy do przetwarzania sygnałów audio w plikach WAV. Program umożliwia wykonywanie trzech operacji: modulacji amplitudy (AM), modulacji częstotliwości (FM) oraz prostego sumowania dwóch sygnałów (miksowania). Narzędzie działa z poziomu wiersza poleceń i oferuje szereg przydatnych opcji, takich jak wyświetlanie statystyk plików wejściowych czy kolorowane wyjście w terminalu.

GitHub: github.com/IgorBrzezek/modulation

Do czego służy Audio Modulator i Mikser?

Program służy do eksperymentowania z modulacją sygnałów audio. Znajdzie zastosowanie w edukacji (nauka o modulacji AM i FM), w tworzeniu efektów dźwiękowych, a także w podstawowym miksowaniu dwóch ścieżek dźwiękowych. Dzięki niemu można na przykład nałożyć efekt tremolo (AM) na nagranie, wygenerować efekty typu vibrato (FM) lub połączyć dwie ścieżki w jedną.

Jak to działa – mechanizm wewnętrzny

Skrypt wczytuje dwa pliki WAV: nośną (carrier) oraz sygnał modulujący (signal). Oba sygnały są normalizowane do zakresu [-1.0, 1.0], a następnie łączone zgodnie z wybranym efektem. Wynik jest ponownie normalizowany i zapisywany jako plik WAV 16-bitowy.

Poszczególne tryby działają następująco:

  • AM (Amplitude Modulation) – amplituda sygnału nośnego jest zmieniana zgodnie z chwilową amplitudą sygnału modulującego według wzoru: (1.0 + signal_norm) * carrier_norm. Efekt przypomina znane z radia zniekształcenia AM.
  • FM (Frequency Modulation) – program tworzy syntetyczną falę nośną o częstotliwości 2000 Hz i moduluje jej częstotliwość z dewiacją 1000 Hz zgodnie z amplitudą sygnału modulującego. Implementacja została wzmocniona dla wyraźnej słyszalności efektu.
  • SUM (Sumowanie/miksowanie) – oba sygnały są dodawane do siebie (amplituda + amplituda), a wynik jest ponownie normalizowany, aby uniknąć przesterowania. To zwykłe łączenie dwóch ścieżek.

Wymagania

  • Python 3.x
  • Biblioteki: numpy, scipy
  • Opcjonalnie: colorama (dla kolorowanego wyjścia w terminalu)

Instalacja

Wymagane biblioteki instalujemy za pomocą pip:

pip install numpy scipy colorama

Użycie z poziomu wiersza poleceń

Podstawowe wywołanie

python modulation.py -c CARRIER_FILE -s SIGNAL_FILE -e EFFECT -o OUTPUT_FILE [OPCJE]

Argumenty wymagane

Opcja Opis
-c, --carrier Ścieżka do pliku WAV z sygnałem nośnym
-s, --signal Ścieżka do pliku WAV z sygnałem modulującym
-e, --effect Efekt do zastosowania: am, fm lub sum
-o, --output Ścieżka do wynikowego pliku WAV

Opcje dodatkowe

Opcja Opis
--stat Wyświetla szczegółowe statystyki plików wejściowych (częstotliwość próbkowania, czas trwania, liczba próbek, wartości amplitud)
--color Włącza kolorowane wyjście ANSI w terminalu
--overwrite Nadpisuje istniejący plik wyjściowy bez pytania
-h Wyświetla krótką pomoc
--help Wyświetla szczegółową pomoc z przykładami i metadanymi

Przykłady użycia

1. Modulacja amplitudy (AM)

python modulation.py -c carrier.wav -s signal.wav -e am -o modulated_am.wav

Wykonuje modulację amplitudy sygnału nośnego carrier.wav sygnałem modulującym signal.wav. Wynik zapisuje do pliku modulated_am.wav.

2. Miksowanie (sumowanie) ze statystykami i nadpisywaniem

python modulation.py -c tone_c.wav -s music_s.wav -e sum -o mixed.wav --stat --overwrite

Miksuje dwie ścieżki, wyświetla statystyki obu plików wejściowych i nadpisuje plik wynikowy bez pytania.

3. Modulacja częstotliwości (FM)

python modulation.py -c 2000hz_tone.wav -s 10hz_tone.wav -e fm -o modulated_fm.wav

Wykonuje modulację częstotliwości. Dla najlepszego efektu nośna powinna być tonem, a sygnał modulujący bardzo wolnym tonem (np. 10 Hz), aby wyraźnie słyszeć zmiany częstotliwości.

4. Wyświetlenie szczegółowej pomocy

python modulation.py --help

Wyświetla pełną dokumentację z metadanymi autora, wersją oraz przykładami.

Typy modulacji – szczegółowy opis

Modulacja amplitudy (AM)

Modulacja amplitudy polega na zmianie amplitudy fali nośnej zgodnie z przebiegiem sygnału modulującego. W implementacji skryptu użyto wzoru: (1.0 + signal_norm) * carrier_norm. Oznacza to, że sygnał modulujący przesuwany jest o 1.0 (aby uniknąć ujemnych wartości mnożenia), a następnie mnożony przez sygnał nośny. Efektem jest typowa modulacja AM – amplituda nośnej „faluje” zgodnie z kształtem sygnału modulującego.

Modulacja częstotliwości (FM)

Modulacja częstotliwości zmienia częstotliwość fali nośnej zgodnie z amplitudą sygnału modulującego. Implementacja w skrypcie tworzy syntetyczną falę nośną o częstotliwości 2000 Hz. Sygnał modulujący jest normalizowany, a następnie całkowany numerycznie (za pomocą np.cumsum). Faza wynikowa dodawana jest do fazy fali nośnej, co daje efekt FM. Dewiacja wynosi 1000 Hz, co zapewnia wyraźną słyszalność modulacji. Implementacja została specjalnie poprawiona w wersji 1.1.3, aby efekt był lepiej słyszalny.

Proste sumowanie (miksowanie)

Tryb sumowania (SUM) po prostu dodaje do siebie amplitudy obu sygnałów. Ponieważ wynik może przekroczyć zakres [-1.0, 1.0], sygnał wynikowy jest automatycznie normalizowany. To najprostsza forma miksowania dwóch ścieżek dźwiękowych – idealna do łączenia dźwięków, nakładania efektów tła itp.

Ochrona przed nadpisywaniem

Domyślnie przed nadpisaniem istniejącego pliku program pyta użytkownika o zgodę:

Output file 'modulated_am.wav' already exists. Overwrite? (y/N):

Dodanie flagi --overwrite pomija to pytanie i zawsze nadpisuje plik.

Statystyki plików

Flaga --stat wyświetla szczegółowe informacje o plikach wejściowych: częstotliwość próbkowania (Hz), czas trwania (sekundy), liczbę próbek, minimalną i maksymalną amplitudę, średnią amplitudę bezwzględną oraz typ danych. W połączeniu z flagą --color statystyki są wyświetlane z kolorami ANSI dla lepszej czytelności.

Podsumowanie

Audio Modulator i Mikser to proste, ale funkcjonalne narzędzie do eksperymentów z modulacją AM i FM oraz podstawowym miksowaniem audio w Pythonie. Dzięki przejrzystemu interfejsowi wiersza poleceń i czytelnym komunikatom sprawdzi się zarówno w celach edukacyjnych, jak i przy tworzeniu efektów dźwiękowych. Wersja 1.1.3 wprowadza ulepszoną słyszalność modulacji FM, co czyni program jeszcze bardziej przydatnym w praktyce.

Źródła: github.com/IgorBrzezek/modulation

Nawigacja

← Generator plików tekstowych i binarnych
Generator obrazów AI za pomocą API →
  • Szukaj

  • Kategorie

    • IT ogólnie (147)
      • Bezpieczeństwo (19)
        • Model AAA (7)
        • Szyfrowanie (1)
      • CCTV (3)
      • Hardware (2)
      • Podstawy informatyki (1)
      • Sieci (35)
        • Cisco (4)
          • Obsługa haseł (2)
        • MikroTik (8)
        • Pomiary w sieciach LAN (6)
          • iptraf-ng (3)
        • Protokół ARP (5)
        • Symulator sieci GNS3 (3)
        • WLAN / WiFi (5)
      • Software (78)
        • Bazy danych (13)
        • Programowanie (21)
        • Systemy operacyjne (21)
          • Linux Debian (18)
        • Windows (8)
      • WiFi (2)
      • Wirtualizacja (26)
  • Ostatnie wpisy

    • WinScreen czyli terminal z wirtualnymi oknami
    • Style Mover czyli przenoszenie stylów HTML
    • Generator obrazów AI za pomocą API
    • Generator modulacji AM i FM
    • Generator plików tekstowych i binarnych
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

Proudly powered by WordPress Theme: Parament by Automattic.
7ads6x98y