Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Konwersja danych na dźwięk, zapis na taśmę i odczyt.

02 Lis 2010 00:01 1618 4
  • Poziom 10  
    Czy istnieje program za pomocą którego skonwerteruję dane (np. archiwum rar) do dźwięku (np. wav) ? Chcę sprawdzić czy skonwerterowane dane da się nagrać na zwykłą kasetę magnetofonową a później odczytać.
    Biorąc pod uwagę długość taśmy c90 sądzę, że można by na niej nagrać pare dobrych MB - no ale to zależy od konwersji.
    Wiem, że takie programy istnieją, ale znalazłem dedykowane do Comodore.
    Próbowałem ich, ale one obsługują tylko pliki *.tap lub *.prg.
    Doczytałem że na taśmie do Comodore mieściło się około 1,6MB.
    Proszę o podpowiedzi,
    pozdrawiam.
  • Poziom 38  
    To raczej zły pomysł, jak sam napisałeś takie rozwiązania już były, i były bardzo zawodne, nie ma sensu się "cofać" o "30 lat" :D

    Ps. Pamiętam dobrze jakie były problemy z wgraniem czegokolwiek na "ZX Spektrum" czy "Commodore" :cry: .
  • Poziom 10  
    Oczywiście nie chcę robić backupa dysku czy ważnych plików na taśmie :D.
    To ma być doświadczenie. Konkretnie chodzi tylko o ten program, który dane cyfrowe zamieni na cyfrowy dźwięk, który następnie będę mógł zapisać analogowym sposobem na taśmie. Czyli (chyba) tak samo jak streamer.
    Dla przykładu w modemach dane też były (może i jeszcze są) przesyłane za pomocą pisków o różnych częstotliwościach. I wideo nagrane na kasecie mini DV.
    Nadal pytam. Czy zna ktoś taki program?
  • Poziom 18  
    Hmm... ciekawy pomysł. Nie słyszałem o takim programie, bo konwersja danych na "dźwięk" odbywa się (przynajmniej w dzisiejszych streamerach) w sporej części sprzętowo, ale możesz poeksperymentować sam. Żeby była jakaś szansa na odczytanie danych muszą one mieścić się w przedziale częstotliwości akceptowalnej przez magnetofon czyli około 100Hz-16kHz. Ponieważ nie masz wpływu na dane (mogą to być np. same zera), nie wiesz jaką częstotliwość osiągniesz na wyjściu traktując je, bit po bicie, jako falę prostokątną. Z drugiej strony 1-no megabajtowy ciąg naprzemiennych zer i jedynek wytworzy (przy założeniu częstotliwości 8kHz) ton o długości 8 minut i 44 sekundy. Idąc na kompromis, można wygenerować falę sinusoidalną o częstotliwości 8kHz i modulować jej amplitudę kolejnymi bitami, lub lepiej parami bitów wg wzoru:

    S(t) = (k+1) * A * sin(t*2*PI)

    S(t) - wyjściowy sygnał
    k - liczba dwubitowa - dana wejściowa
    A - maksymalna amplutuda sygnału
    t - czas zmieniający się w zakresie <0-1) z przesadną dokładnością co 0.1

    Dodatkowo, k można zmieniać nie częściej niż co jeden pełny cykl sinusa a zwiększone o 1 jest po to, żeby nie wyciszyć zupełnie sygnału przy danej wejściowej k=0, bo taki stan moglibyśmy sobie zarezerwować na wykrycie końca nagrania ;)

    Co ciekawsze, w tę stronę jest dużo łatwiej. Przy odtwarzaniu trzeba "złapać" pełny cykl, pocałkować i dopasować do jednego z czterech dozwolonych poziomów. Do tego trzeba jakoś przemyśleć "rozbiegówkę", czyli jak rozpoznać, kiedy to jeszcze nośna a nie dane (hmm... można "pilota" zrobić na innej częśtotliwości - powiedzmy 4kHz :) )

    Brak sprawdzania jakichkolwiek błędów może uniemożliwić poprawne odczytanie nawet krótkich porcji danych. Obniżanie częstotliwości fali nośnej trochę pomoże, ale znowu znacznie wydłuży czas nagrania tego samego megabajta danych.

    Problem nie jest banalny i do tego ciekawy. Może w wolnej chwili coś takiego napiszę.
  • Poziom 10  
    Dzięki za wyczerpującą wypowiedź dobrze opisującą temat.
    Sprzętowe rozwiązanie nie wchodzi w grę, idę wcześniejszym planem. Operacja ma być wykonywana sofware'owo. Niestestety nie znam podstaw niskopoziomowego programowania, więc raczej algorytmu czy czego programu raczej teraz nie sporządzę.
    Pozornie operacja wydaje się łatwa. Algorytm można stworzyć, dane można nagrać. Ale problem może pojawić się przy odczycie danych z nośnika. Bo na przykład wystarczy jeden bład w zapisie i odczyciem i dane mogą stać się nieczytelne. Również należy uwzględnić rozbieżności w szybkości przesuwu(?) taśmy jeśli dane miały by być na niej wyjściowo zapisane.- Każdy magnetofon odczytuje taśmę z inną prędkością (chyba), więc potrzebna jest tolerancja.

    Natrafiłem na program przekształcający obraz - mapę bitową, na impulsy dźwiękowe. Nazwa to MMSSTV.
    Dostępny pod adresem:
    http://sp9jcn.fapr.net/mmsstv.htm

    Program opiera się na systemie pierwotnie stworzonym do przesyłania obrazów drogą radiową przez krótkofalowców (więcej informacji - Wikipedia)
    Przy testach wypadł dobrze. Dał radę nawet odczytać obraz w postaci impulsów zapisanych w pliku mp3 o bardzo stratnej kompresji (8kb/s 8000Hz mono).
    A prawdę mówiąc na taśmę można nagrać w trochę lepszej jakości.

    Teoretycznie stworzenie takiego programu wydaje się być realne, lecz wymaga wielu dopracowań.