nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 11:34



Reply to topic  [ 33 posts ]  Go to page Previous  1, 2, 3  Next
Запись видео на аудиокассету 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Lavr wrote:
Я вот уже давно никак не могу найти - в какой-то советской книжке типа "Справочник радиолюбителя" в конце был описание
конструкции видеомагнитофона на бобинах и схемотехника его узлов.

Хотя в материале и писали, что это несерьёзно с протягой без БВГ, но всё было описано подробно...

Мне очень захотелось всё это перечитать, когда я увидел вот это: :roll:

Image

http://www.nedopc.org/forum/viewtopic.php?p=151068#p151068


Вот оказывается бала детская игрушка в США в конце 80х, которая писала чёрно-белое видео 120x90 15 FPS на обычную аудиокассету, крутящуюся с 9-кратной скоростью (получалось 3.5 минуты на одной стороне):


https://youtu.be/TCXJ5twf5tM

_________________
:dj: https://mastodon.social/@Shaos


07 Apr 2020 11:16
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Взял вот этот звук:

Image

и попытался раскодировать самописной программкой, которая фильтрует частоты - вроде ничего получилось :)
Code:
000000109|                    |
000000219|                    |
000000329|                    |
000000439|                    |
000000549|                    |
000000659| ....----...   . . .|
000000769|.-+**+*#-++-------+-|
000000879|+*###**#+**+**+++***|
000000989|+###**#++**+**++**+*|
000001099|-*#####+**+++*+++++*|
000001209|+####-+**+.---.---.-|
000001319|**+--..--.          |
000001429|++--.               |
000001539|--*+-.              |
000001649|+++-..              |
000001759|++--.-  .           |
000001869|--. .-. .           |
000001979|..-. --. .          |
000002089|...---..            |
000002199|..  -+..            |
000002309|.. ..--..           |
000002419|      .--           |
000002529|       .-.          |
000002639|        .+          |
000002749|         --         |
000002859|          -.        |
000002969|          .-.       |
000003079|           .-       |
000003189|            .-      |
000003299|             -.     |
000003409|              -     |
000003519|              .-    |
000003629|               -.   |
000003739|                -.  |
000003849|                .-  |
000003959|                 .- |
000004069|                  -.|
000004179|                   -|
000004289|                   .|
000004399|                    |
000004509|                    |
000004619|     ...            |
000004729|..--**+.+...--.-.---|
000004839|--+###+-*++++++++++*|
000004949|--*###*#*#*******+**|
000005059|..+*+**####*++*+++**|
000005169|++*++++**-*------+-+|
000005279|---.----. .. .. ...+|
000005389|                  ..|
000005499|                 .- |
000005609|                 -. |
000005719|                -.  |
000005829|               -.   |
000005939|              .-    |
000006049|              -.    |
000006159|             -.     |
000006269|            .-      |
000006379|           .-       |
000006489|           -.       |
000006599|          -.        |
000006709|         .-         |
000006819|         -          |
000006929|        -.          |
000007039|      ..+           |
000007149|     .--.           |
000007259|.. ...+.            |
000007369|...--.-.            |
000007479|   -++.             |
000007589|..-++-              |
000007699|..+*+..             |
000007809|.-+++ .             |
000007919|+++-. .             |
000008029|.----...            |
000008139|----...             |
000008249|--..                |
000008359|                    |
000008469|                    |
000008579|                    |
000008689|                    |
000008799|                    |
000008909|                    |
Выглядит даже лучше, чем спектрограмма в Audacity ( тут кадр положен на бок, если кто не понял ; )

Есть небольшая задержка на декодировании - порядка 7мс, что вполне терпимо (и она одинаковая для всех частот)

Алгоритм такой - имея таблицы синусов и косинусов для всех 20 частот с дискретизацией 44100 Гц я умножаю входной 16-битный сигнал со знаком (точнее каждый отсчёт этого сигнала, приходящий с частотой дискретизации 44100 Гц) на каждый синус и каждый косинус, получая 40 сигналов, которые идут на IIR фильтры низких частот с порогом срезания 88 Гц, что помогает выделить постоянную составляющую для каждого канала (умножая частоты получается смесь сигналов с суммой частот и разницей частот - нам нужна только разница, которая равна нулю, если частоты совпадают), далее берём пару отфильтрованный синус S и отфильтрованный косинус C для каждой из 20 частот и считаем амплитуду выделенного сигнала соответствующей частоты как sqrt(S*S+C*C), правда для ускорения вычислений я не вычисляю корень, а прямо так и использую квадрат амплитуды, усредняя его за 110 отсчётов (получая 400 замеров всех 20 частот за секунду), чтобы далее отобразить в виде символа, соответствующего яркости "пиксела" (каждого из 20), принимая во внимание, что амплитуда входного сигнала у каждой частоты не должна превышать 1638 (т.к. именно так они изначально "смешивались")...

P.S. До этого я пробовал нагенерить 20 фильтров с соответствующей полосой пропускания, чтобы покрыть каждую частоту, но с ними ничего путнего не получилось - задержка разная, усиление разное, некоторые фильтры разбегаются и т.д. (покопавшись в архивах увидел, что я это же пытался сделать в ноябре 2010 года и тоже ничего не вышло). А вот вариант описанный выше - самый жизнеспособный. Фильтры для обоих вариантов генерил с помощью вот этого сайта https://www-users.cs.york.ac.uk/~fisher/mkfilter/trad.html (но сама программка mkfilter с исходниками у меня тоже есть - пользовался ей в 1998 году по работе).

P.P.S. Вот для наглядности картинки с вышеупомянутого онлайн-генератора для использованного IIR фильтра низкой частоты с частотой среза 88 Гц - по горизонтали доля от частоты синхронизации, красная линия - амплитуда, синяя линия - фаза (нам она ненужна):
Attachment:
6704782F.gif.png
6704782F.gif.png [ 2.22 KiB | Viewed 10612 times ]
Получается ослабление в половину (0.5) происходит где-то в районе 105 Гц (0.0024 от частоты дискретизации), на четверть (1/4) в районе 136 Гц и на 1/8 в районе 176 Гц

Задержку в работе фильтра можно оценить по импульсному ответу (в единицах частоты дискретизации, которая 44100 Гц):
Attachment:
6704721T.gif.png
6704721T.gif.png [ 1.56 KiB | Viewed 10612 times ]
Как видно пик приходится примерно на 4 мс

_________________
:dj: https://mastodon.social/@Shaos


07 Apr 2020 16:37
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
А вот так декодируется сфера - это точно лучше Audacity:
Code:
000000109|                    |1|0000002 ms     
000000219|                    |1|0000004 ms     
000000329|                    |1|0000007 ms     
000000439|                    |1|0000009 ms     
000000549|                    |1|0000012 ms     
000000659| ....----...   . . .| |0000014 ms     
000000769|.-+##+#@-++-------+-|2|0000017 ms     
000000879|+#@@@##@+##+##+++###|2|0000019 ms     
000000989|+@@@##@++##+##++##+#|2|0000022 ms     <
000001099|-#@@@@@+##+++#+++++#|2|0000024 ms     
000001209|#@@@@-++#+.---.---.-|2|0000027 ms     
000001319|-+-.-..-..          | |0000029 ms     
000001429|                    |1|0000032 ms     
000001539|                    |1|0000034 ms     
000001649|                    |1|0000037 ms     
000001759|                    |1|0000039 ms     
000001869|                    |1|0000042 ms     
000001979|                    |1|0000044 ms     
000002089|                    |1|0000047 ms     
000002199|                    |1|0000049 ms     
000002309|                    |1|0000052 ms     
000002419|        ....        | |0000054 ms     
000002529|        ......      | |0000057 ms     
000002639|     ..------.      | |0000059 ms     
000002749|     ..---++--..    | |0000062 ms     
000002859|   ....-++++++-.    | |0000064 ms     
000002969|   ..-+++++#++-..   | |0000067 ms     
000003079|   ..+@#+#+++++-.   | |0000069 ms     
000003189|   .-+-++#++#++-.   | |0000072 ms     
000003299|   .+-++++++#++--   | |0000074 ms     
000003409|  .-#@@##+#++++--.  | |0000077 ms     
000003519| ..--+#++#++++++-   | |0000079 ms     
000003629| .--..+#+++++++--.  | |0000082 ms     
000003739|  .-+-+#+++++#+-.   | |0000084 ms     
000003849|   .+#+++#++++--.   | |0000087 ms     
000003959|    -++++#+#++-..   | |0000089 ms     
000004069|    . .++++++-..    | |0000092 ms     
000004179|      .--+++--..    | |0000094 ms     
000004289|     ....----..     | |0000097 ms     
000004399|     .........      | |0000099 ms     
000004509|         ...        | |0000102 ms     
000004619|                    |1|0000104 ms     
000004729|                    |1|0000107 ms     
000004839|                    |1|0000109 ms     
000004949|                    |1|0000112 ms     
000005059|                    |1|0000114 ms     
000005169|                    |1|0000117 ms     
000005279|                    |1|0000119 ms     
000005389|                    |1|0000122 ms     
000005499|                    |1|0000124 ms     
000005609|                    |1|0000127 ms     
Я тут также печатаю метки времени и программно детектирую начало кадра ( значок < )

P.S. А вот так выглядит инвертированная сфера - она немного "погрязней":
Code:
000000109|                    |1|0000002 ms     
000000219|                    |1|0000004 ms     
000000329|                    |1|0000007 ms     
000000439|                    |1|0000009 ms     
000000549|                    |1|0000012 ms     
000000659| ....----...   . . .| |0000014 ms     
000000769|.-+##+#@-++-------+-|2|0000017 ms     
000000879|+#@@@##@+##+##+++###|2|0000019 ms     
000000989|+@@@##@++##+##++##+#|2|0000022 ms     <
000001099|-#@@@@@+##+##+++#++#|2|0000024 ms     
000001209|@@@@#@+##++##+++#++#|2|0000027 ms     
000001319|@@@@@@#+#+++#+++++++|2|0000029 ms     
000001429|@@@@@@###+#+++++++++|2|0000032 ms     
000001539|@@@#####-+#++++#++++|2|0000034 ms     
000001649|@@@@@@+#++######++++|2|0000037 ms     
000001759|@@@@@@#@##+##++#++++|2|0000039 ms     
000001869|+--.+@@+##+++++#++++|2|0000042 ms     
000001979|@@@@@+#.++++#+#++++#|2|0000044 ms     
000002089|@@@@@-@#++###++++++#|2|0000047 ms     
000002199|@@@@@#@@#-##++++++##|2|0000049 ms     
000002309|--.+@@+#+++-++++++##|2|0000052 ms     
000002419|---#+#-+++--+++++++#|2|0000054 ms     
000002529|@@@@+--.----+-++++++|2|0000057 ms     
000002639|@@@@+#@-.-.-..-+++#+|2|0000059 ms     
000002749|@@@@@@@+ .....--++++| |0000062 ms     
000002859|@@@@@#-.      .--+++| |0000064 ms     
000002969|#+#@@+  ..    .--+++| |0000067 ms     
000003079|@@@#--..       .-+++| |0000069 ms     
000003189|@@@+..   .     ..+++| |0000072 ms     
000003299|@@@#..          .-++| |0000074 ms     
000003409|@@@###.         .-++| |0000077 ms     
000003519|@@@@@+.  .      .-++| |0000079 ms     
000003629|#@@@#..         .-++| |0000082 ms     
000003739|#@@@#.. .      .-+++| |0000084 ms     
000003849|#@##.-.   .    .-+++| |0000087 ms     
000003959|#+--... ...   ..-+++| |0000089 ms     
000004069|#++--.. ..    .-++++| |0000092 ms     
000004179|#@@@#-.. .   .--++++| |0000094 ms     
000004289|#++@@@++.-....--++++|2|0000097 ms     
000004399|@@@@@@.+#-+---++++++|2|0000099 ms     
000004509|@@@@+@+++ ++-+++++++| |0000102 ms     
000004619|@@@@@@@#--+++++++#++|2|0000104 ms     
000004729|@@@@@@@--#--+++++#+#|2|0000107 ms     
000004839|+-+#@@+++#++##++++##|2|0000109 ms     
000004949|.-#@@@+##@+#++#+#+##|2|0000112 ms     
000005059|..+@+#+@@@@#++#++++#|2|0000114 ms     
000005169|+#@#+-###+#+++#++#++|2|0000117 ms     
000005279|+##+-.++++#+++#++##+|2|0000119 ms     
000005389|-+@@@@#.#-+##+++++#+|2|0000122 ms     
000005499|@@@@@@@#@#-#++#+++++|2|0000124 ms     
000005609|@@@@@.+@##++++++++++|2|0000127 ms     

_________________
:dj: https://mastodon.social/@Shaos


07 Apr 2020 16:40
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Shaos wrote:
Алгоритм такой - имея таблицы синусов и косинусов для всех 20 частот с дискретизацией 44100 Гц я умножаю входной 16-битный сигнал со знаком (точнее каждый отсчёт этого сигнала, приходящий с частотой дискретизации 44100 Гц) на каждый синус и каждый косинус, получая 40 сигналов, которые идут на IIR фильтры низких частот с порогом срезания 88 Гц, что помогает выделить постоянную составляющую для каждого канала (умножая частоты получается смесь сигналов с суммой частот и разницей частот - нам нужна только разница, которая равна нулю, если частоты совпадают), далее берём пару отфильтрованный синус S и отфильтрованный косинус C для каждой из 20 частот и считаем амплитуду выделенного сигнала соответствующей частоты как sqrt(S*S+C*C), правда для ускорения вычислений я не вычисляю корень, а прямо так и использую квадрат амплитуды, усредняя его за 110 отсчётов (получая 400 замеров всех 20 частот за секунду), чтобы далее отобразить в виде символа, соответствующего яркости "пиксела" (каждого из 20), принимая во внимание, что амплитуда входного сигнала у каждой частоты не должна превышать 1638 (т.к. именно так они изначально "смешивались")...

На самом деле 88 Гц многовато, т.к. например между частотой 0 и частотой 1 разница только 31 Гц, соответственно сдвинув частоту 0 в 0 Гц частота 1 тоже сдвинется (в 31 Гц) и попадёт на выход фильтра незадавленной (так как ниже 88 Гц окажется) - поэтому нижние строчки визуально друг-друга "засвечивают".

P.S. Может быть просто тупо расставить частоты с шагом в 100 Гц вплоть до 16 кГц и генерить видео чистыми синусоидами? Это уже 160 строк будет - можно даже цвет приделать (но нужны будут чистые синусоиды) - но это потом...

P.P.S. Попробовал более узкие фильтры - на 50 Гц и даже 25 Гц - там яркость похуже и из-за задержки конец кадра начинает наплывать на синхросигнал - в результате точность детектирования начала кадра ухудшается...

_________________
:dj: https://mastodon.social/@Shaos


07 Apr 2020 23:35
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Представляю вашему вниманию играемую в ASCII демку "Bad Apple" в формате Vsound20 (левый канал это звук, правый канал это видео закодированное в звук) :mrgreen:



Оригинал "Bad Apple", если кто забыл: https://youtu.be/9lNZ_Rnr7Jc

P.S. А вот если брать кусок фильма, то уже видно, что не хватает разрешения и контрасности, чтобы что-то понять:



P.P.S. Похоже яркость была пониженная т.к. надо не просто на cos и sin умножать, а на корень из 2 cos и sin (т.е. амплитуда должна быть 1.414, а не 1.000) - обновил видеоролик из "пятого элемента" выше и вот так выглядит "сфера" при умножении на 1.414 при декодировании вместо 1.000:
Code:
%@@%%%+-.                                                                                       
%@@@@@%+.                                                                                   
%%%@@%#-.                              ...................                                     
%@@@@@%-.                           ...:::-----------::::....                                   
@@@@@%#-.                       ....::--+++##########++---:::....                               
@@@@@%+:                       ..::-+++###%%%%%@@%%%%%###++--:...                               
@@@@@@#+:                    ..:--++##%%%%%%%%@@@@@@@@%%%%##+---::..                           
@%%%%#+:.                   ..::-+##%%%@@@@%%@@%@@%@@@@@%%%%##+--:..                             
@@@@@%+-.                  ..:--+###%%@@%@@@@%%%%%%@@@@@@%%%%##+-::.                           
@@@@@@#-.                  ..::-++##%@@@@%%%@@@@%%@@@%%@@@@%##++-:..                           
@@@%+-:..                   .:-++#%%%%%%%@@@@@@%%%%@@@@@%%@%%##+-::.                           
%@@@@@#: ..                ...:++++%%%%#%@@%@@@#%%%@@@@@%#%#+-++-::.                           
@@@@#-..                      .---:+%@%#%@@@@%#%@@@##@@@%++##++-::..                           
#@@@@%:....                   ::::.:-%@%###%@@@@@%++#@@@#::-++:...                             
@@@@@-.::.                    ..... .+#@@#:--#@@@%+#@%###+:-+-:..                             
@@@@@@%-::..                    .   .:-+###+.-%@%##%%- :+++-:..                               
@@@@@@@#. ..                        ....:-+--+#+-::-::----:..                                 
@@@@@@@#:                           .  .::::---:. ....::::.                                   
@@@@@@@%-...                           .....::.. ........                                   
@@#%@@%#-..                            ..   ...                                                 

_________________
:dj: https://mastodon.social/@Shaos


08 Apr 2020 22:34
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Немножко поэкспериментировал в Audacity с формой смешиваемых сигналов (сейчас используется сигнал под номером 1, т.е. просто тупо прямоугольный сигнал), чтобы задавить гармоники наиболее простым способом - это будет нужно при переходе на большее кол-во частот:
Code:
Measurements for 493 Hz signal with 44100 Hz sample rate
_______________________________________________________________________________
 H |1                 |2                 |3                 |4                 |
 a |                  |                  |   #       #      |  ##      ##      |v
 r | ####    ####     | __##__  __##__   | _###_   _###_    | ####    ####     |  1/20 max.amp
 m |     ####    #### |       ##      ## |      ###     ### |     ####    #### |^
 o |                  |                  |       #       #  |      ##      ##  |
 . |                  |                  |                  |                  |
 1 | -23.8 ->   0.0dB | -26.8 ->   0.0dB | -21.5 ->   0.0dB | -19.2 ->   0.0dB |
 3 | -33.1 ->  -9.3dB | -36.1 ->  -9.3dB | -38.8 -> -17.3dB*| -43.8 -> -24.6dB*|
 5 | -37.5 -> -13.7dB | -40.5 -> -13.7dB | -42.1 -> -20.6dB*| -47.6 -> -28.4dB*|
 7 | -40.5 -> -16.7dB | -43.5 -> -16.7dB | -38.0 -> -16.5dB^| -35.8 -> -16.6dB^| <-- same
 9 | -42.1 -> -18.3dB | -45.1 -> -18.3dB | -40.2 -> -18.7dB | -37.6 -> -18.4dB | <-- same
11 | -44.3 -> -20.5dB | -47.3 -> -20.5dB | -51.2 -> -29.7dB*| -54.6 -> -35.4dB*|
13 | -44.8 -> -21.0dB | -47.8 -> -21.0dB | -48.3 -> -26.8dB^| -54.0 -> -34.8dB^|
15 | -47.2 -> -23.4dB | -50.2 -> -23.4dB | -44.5 -> -23.0dB | -42.6 -> -23.4dB^| <-- same
17 | -48.2 -> -24.4dB | -51.2 -> -24.4dB | -46.2 -> -24.7dB | -43.6 -> -24.4dB | <-- same

     f -6% =  -5 dB
     f +6% = -10 dB

     x 2 =  +6.0 dB
     x 4 = +12.0 dB
     x 8 = +18.1 dB
    x 10 = +20.0 dB

Одна клетка это 1/20 полной амплитуды, поэтому главная частота в таблице в районе -26 dB и чтобы увидеть насколько гармоники от главной частоты отстают, я её "усиливаю" до 0 dB, соответственно подтягивая все гармоники. Интересно, что картина нечётных гармоник для форм сигналов 1 и 2 ничем не отличаются ( ну разве что 2 чуть слабее получился, но гармоники от главной частоты затухают ровно также - немножко обидно ибо 2 это типа троичный сигнал : ). Вариант 3 тушит гармоники 3,5 и 11,13, а вариант 4 тушит их ещё сильнее, а вот гармоники 7,9 и 15,17 почему-то примерно одинаковые для всех 4х вариантов. У меня при декодировании выделяются 8 уровней серого, соответственно самый слабый видимый сигнал отличается от самого сильного в восемь раз, что равняется усилению +18.1 dB, соответственно если гармоники уходят ниже -18.1 dB, то это значит они будут слабее, чем 1/8 и будут невидны, даже если залезут в чужие частоты. Вариант Vsound40, который я на предыдущей страничке описывал, имеет проблему залезания в плюс-минус 6% от третьей гаромники других частот - я это проверил по спектрограмме, если отступить от третьей гармоники влево на 6%, то ее сторона "колокольчика" будет где-то в районе -5 dB, а если вправо на 6%, то где-то в районе -10 dB, это значит что даже варианта 3 будет достаточно, чтобы третья гармоника не показывалась в чужих частотах. А вот тот факт, что гармоники 7 и 9 никак не задавились, может помешать т.к. в 40-частотном варианте у меня были практически прямые попадания частот в 7 и 9 гармоники других частот и значения -16.6 dB и -18.4 dB означают, что они на пределе распознаваемости как 1/8 от максимума (одна единичка яркости) - ну 9я гаромника может и не распознается, а вот 7я вполне может, т.к. -16.6 dB это примерно 0.15, что на 20% выше 1/8 - в результате каждая строка N слегка будет видимой в строке N+15 (с в 6.7 раз меньшей яркостью точек). Ну или можно для 40-строчного варианта уменьшить количество уровней распознаваемой яркости с 8 до 6 - тогда 7я гармоника тоже задавится. А если брать только 5 уровней яркости, то тут и сигнал 1 сгодится...

P.S. Повторяю формат Vsound40 под спойлером (кому интересно):
 Vsound40
Code:
TRY 2^0.186800
0: 100.000000
1: 113.823623
2: 129.558170
3: 147.467803
4: 167.853195
5: 191.056587
6: 217.467529
7: 247.529419
8: 281.746951
 in 3rd with 0 (6.4%)
9: 320.694586
 in 3rd with 0 (6.4%)
 in 3rd with 1 (6.4%)
10: 365.026195
 in 3rd with 1 (6.4%)
 in 3rd with 2 (6.4%)
11: 415.486039
 in 3rd with 2 (6.4%)
 in 3rd with 3 (6.4%)
12: 472.921260
 in 5th with 0 (5.7%)
 in 3rd with 3 (6.4%)
 in 3rd with 4 (6.4%)
13: 538.296110
 in 5th with 0 (7.1%)
 in 5th with 1 (5.7%)
 in 3rd with 4 (6.4%)
 in 3rd with 5 (6.4%)
14: 612.708132
 in 5th with 1 (7.1%)
 in 5th with 2 (5.7%)
 in 3rd with 5 (6.4%)
 in 3rd with 6 (6.4%)
15: 697.406592
 in 7th with 0 (0.3%)
 in 5th with 2 (7.1%)
 in 5th with 3 (5.7%)
 in 3rd with 6 (6.4%)
 in 3rd with 7 (6.4%)
16: 793.813446
 in 7th with 1 (0.3%)
 in 5th with 3 (7.1%)
 in 5th with 4 (5.7%)
 in 3rd with 7 (6.4%)
 in 3rd with 8 (6.4%)
17: 903.547220
 in 9th with 0 (0.3%)
 in 7th with 2 (0.3%)
 in 5th with 4 (7.1%)
 in 5th with 5 (5.7%)
 in 3rd with 8 (6.4%)
 in 3rd with 9 (6.4%)
18: 1028.450177
 in 11th with 0 (6.9%)
 in 9th with 1 (0.3%)
 in 7th with 3 (0.3%)
 in 5th with 5 (7.1%)
 in 5th with 6 (5.7%)
 in 3rd with 9 (6.4%)
 in 3rd with 10 (6.4%)
19: 1170.619248
 in 11th with 0 (6.0%)
 in 11th with 1 (6.9%)
 in 9th with 2 (0.3%)
 in 7th with 4 (0.3%)
 in 5th with 6 (7.1%)
 in 5th with 7 (5.7%)
 in 3rd with 10 (6.4%)
 in 3rd with 11 (6.4%)
20: 1332.441233
 in 11th with 1 (6.0%)
 in 11th with 2 (6.9%)
 in 9th with 3 (0.3%)
 in 7th with 5 (0.3%)
 in 5th with 7 (7.1%)
 in 5th with 8 (5.7%)
 in 3rd with 11 (6.4%)
 in 3rd with 12 (6.4%)
21: 1516.632880
 in 11th with 2 (6.0%)
 in 11th with 3 (6.9%)
 in 9th with 4 (0.3%)
 in 7th with 6 (0.3%)
 in 5th with 8 (7.1%)
 in 5th with 9 (5.7%)
 in 3rd with 12 (6.4%)
 in 3rd with 13 (6.4%)
22: 1726.286484
 in 11th with 3 (6.0%)
 in 11th with 4 (6.9%)
 in 9th with 5 (0.3%)
 in 7th with 7 (0.3%)
 in 5th with 9 (7.1%)
 in 5th with 10 (5.7%)
 in 3rd with 13 (6.4%)
 in 3rd with 14 (6.4%)
23: 1964.921811
 in 11th with 4 (6.0%)
 in 11th with 5 (6.9%)
 in 9th with 6 (0.3%)
 in 7th with 8 (0.3%)
 in 5th with 10 (7.1%)
 in 5th with 11 (5.7%)
 in 3rd with 14 (6.4%)
 in 3rd with 15 (6.4%)
24: 2236.545184
 in 11th with 5 (6.0%)
 in 11th with 6 (6.9%)
 in 9th with 7 (0.3%)
 in 7th with 9 (0.3%)
 in 5th with 11 (7.1%)
 in 5th with 12 (5.7%)
 in 3rd with 15 (6.4%)
 in 3rd with 16 (6.4%)
25: 2545.716748
 in 11th with 6 (6.0%)
 in 11th with 7 (6.9%)
 in 9th with 8 (0.3%)
 in 7th with 10 (0.3%)
 in 5th with 12 (7.1%)
 in 5th with 13 (5.7%)
 in 3rd with 16 (6.4%)
 in 3rd with 17 (6.4%)
26: 2897.627021
 in 11th with 7 (6.0%)
 in 11th with 8 (6.9%)
 in 9th with 9 (0.3%)
 in 7th with 11 (0.3%)
 in 5th with 13 (7.1%)
 in 5th with 14 (5.7%)
 in 3rd with 17 (6.4%)
 in 3rd with 18 (6.4%)
27: 3298.184043
 in 11th with 8 (6.0%)
 in 11th with 9 (6.9%)
 in 9th with 10 (0.3%)
 in 7th with 12 (0.3%)
 in 5th with 14 (7.1%)
 in 5th with 15 (5.7%)
 in 3rd with 18 (6.4%)
 in 3rd with 19 (6.4%)
28: 3754.112554
 in 11th with 9 (6.0%)
 in 11th with 10 (6.9%)
 in 9th with 11 (0.3%)
 in 7th with 13 (0.3%)
 in 5th with 15 (7.1%)
 in 5th with 16 (5.7%)
 in 3rd with 19 (6.4%)
 in 3rd with 20 (6.4%)
29: 4273.066902
 in 11th with 10 (6.0%)
 in 11th with 11 (6.9%)
 in 9th with 12 (0.3%)
 in 7th with 14 (0.3%)
 in 5th with 16 (7.1%)
 in 5th with 17 (5.7%)
 in 3rd with 20 (6.4%)
 in 3rd with 21 (6.4%)
30: 4863.759540
 in 11th with 11 (6.0%)
 in 11th with 12 (6.9%)
 in 9th with 13 (0.3%)
 in 7th with 15 (0.3%)
 in 5th with 17 (7.1%)
 in 5th with 18 (5.7%)
 in 3rd with 21 (6.4%)
 in 3rd with 22 (6.4%)
31: 5536.107299
 in 11th with 12 (6.0%)
 in 11th with 13 (6.9%)
 in 9th with 14 (0.3%)
 in 7th with 16 (0.3%)
 in 5th with 18 (7.1%)
 in 5th with 19 (5.7%)
 in 3rd with 22 (6.4%)
 in 3rd with 23 (6.4%)
32: 6301.397874
 in 11th with 13 (6.0%)
 in 11th with 14 (6.9%)
 in 9th with 15 (0.3%)
 in 7th with 17 (0.3%)
 in 5th with 19 (7.1%)
 in 5th with 20 (5.7%)
 in 3rd with 23 (6.4%)
 in 3rd with 24 (6.4%)
33: 7172.479329
 in 11th with 14 (6.0%)
 in 11th with 15 (6.9%)
 in 9th with 16 (0.3%)
 in 7th with 18 (0.3%)
 in 5th with 20 (7.1%)
 in 5th with 21 (5.7%)
 in 3rd with 24 (6.4%)
 in 3rd with 25 (6.4%)
34: 8163.975796
 in 11th with 15 (6.0%)
 in 11th with 16 (6.9%)
 in 9th with 17 (0.3%)
 in 7th with 19 (0.3%)
 in 5th with 21 (7.1%)
 in 5th with 22 (5.7%)
 in 3rd with 25 (6.4%)
 in 3rd with 26 (6.4%)
35: 9292.532991
 in 11th with 16 (6.0%)
 in 11th with 17 (6.9%)
 in 9th with 18 (0.3%)
 in 7th with 20 (0.3%)
 in 5th with 22 (7.1%)
 in 5th with 23 (5.7%)
 in 3rd with 26 (6.4%)
 in 3rd with 27 (6.4%)
36: 10577.097674
 in 11th with 17 (6.0%)
 in 11th with 18 (6.9%)
 in 9th with 19 (0.3%)
 in 7th with 21 (0.3%)
 in 5th with 23 (7.1%)
 in 5th with 24 (5.7%)
 in 3rd with 27 (6.4%)
 in 3rd with 28 (6.4%)
37: 12039.235728
 in 11th with 18 (6.0%)
 in 11th with 19 (6.9%)
 in 9th with 20 (0.3%)
 in 7th with 22 (0.3%)
 in 5th with 24 (7.1%)
 in 5th with 25 (5.7%)
 in 3rd with 28 (6.4%)
 in 3rd with 29 (6.4%)
38: 13703.494229
 in 11th with 19 (6.0%)
 in 11th with 20 (6.9%)
 in 9th with 21 (0.3%)
 in 7th with 23 (0.3%)
 in 5th with 25 (7.1%)
 in 5th with 26 (5.7%)
 in 3rd with 29 (6.4%)
 in 3rd with 30 (6.4%)
39: 15597.813541
 in 11th with 20 (6.0%)
 in 11th with 21 (6.9%)
 in 9th with 22 (0.3%)
 in 7th with 24 (0.3%)
 in 5th with 26 (7.1%)
 in 5th with 27 (5.7%)
 in 3rd with 30 (6.4%)
 in 3rd with 31 (6.4%)

_________________
:dj: https://mastodon.social/@Shaos


09 Apr 2020 20:56
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Вот так выглядит спектр обычного прямоугольного сигнала (форма сигнала 1 из таблицы выше) с частотой 492 Гц и сэмплрейтом 44100 отсчётов в секунду:

Attachment:
PsedudoSin2.jpg
PsedudoSin2.jpg [ 177.93 KiB | Viewed 10626 times ]

Попробовал перейти в плавающую точку при подготовке синуса - синус из 8 значений (0, 0.707, 1, 0.707, 0, -0.707, -1, -0.707) изобразился на спектрограмме вот так:

Attachment:
PsedudoSin8.jpg
PsedudoSin8.jpg [ 170.2 KiB | Viewed 10642 times ]

Как можно видеть гармоники 3 и 5 задавились вовсе, а вот 7 и 9 стоят как вкопанные :mrgreen:

P.S. А вот сделав синус из 16 значений (0, 0.383, 0.707, 0.924, 1 и т.д.) удалось таки убить 7 и 9 гармоники - остались 15 и 17 (на тех же -23.2 dB и -24.4 dB):

Attachment:
PsedudoSin16.jpg
PsedudoSin16.jpg [ 152.98 KiB | Viewed 10642 times ]

Но это вариант чисто цифровой, для недоподелок он вряд ли подходит (кстати -23.2 dB это 0.069 или примерно 1/14 - т.е. 14 уровней яркости на точку будет Ок, а вот 16 - уже не ок)

_________________
:dj: https://mastodon.social/@Shaos


09 Apr 2020 21:45
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
В своём первом экспериментальном формате Vsound20 пришлось расширить паузу в синхросигнале, а то не очень устойчиво кадры детектировались - теперь при ширине 5512 сэмплов на кадр (8 FPS) сначала идёт 666 сэмплов паузы (15 мс), потом 333 сэмпла "все гудят" (7.5 мс) и потом 4512 сэмплов собственно сам "видимый" кадр. Кадр может быть и короче - в таком случае FPS будет выше, например для 10 FPS ширина "видимой" части кадра должна быть 3410 сэмплов, для 12 FPS - 2675 сэмплов, а для 15 FPS - 1940 сэмплов (при этом синхросигнал пауза-гундёж всё так же будет иметь ширину в 1000 сэмплов). Соотношение сторон соответственно тоже будет зависеть от частоты кадров (если мы примем, что при 8 FPS это широкий экран):

4 FPS - 4:1 (примерно)
5 FPS - 3:1 (примерно)
7 FPS - 2:1 (примерно)
8 FPS - 16:9 (обычный широкий экран)
10 FPS - 4:3 (старые экраны)
12 FPS - 1:1 (квадрат, если быть совсем точным, то 12.46 FPS)
18 FPS - 9:16 (как у вертикально снимающего телефона)
20 FPS - 1:2 (примерно)
24 FPS - 1:3 (примерно)

P.S. Всё тоже самое будет справедливо и для 40-строчного варианта (Vsound40)

P.P.S. Если брать кинематографические соотношения сторон (взято из https://www.quora.com/Why-do-studios-insist-upon-releasing-home-video-versions-of-their-films-with-absurd-aspect-ratios-like-2-31-1), то для них FPSы будут следующие:
Attachment:
movies.jpg
movies.jpg [ 75.39 KiB | Viewed 10607 times ]

Интересно, что 2.76:1 фильмы будут иметь при таком подходе 7000 сэмплов в кадре плюс 1000 сэмплов синхросигнал = 8000 или 5.5fps
Википедия пишет (см. https://en.wikipedia.org/wiki/Aspect_ratio_(image)), что ещё бывают разрешения 3.555:1 (32:9) и даже 3.6:1 (18:5) - для таких FPS будет 4.4 и 4.35 соответственно...

_________________
:dj: https://mastodon.social/@Shaos


11 Apr 2020 14:21
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Вот как пример - "Bad Apple" в родном соотношении сторон 4:3 при котором Vsound20 даёт частоту кадров 10.1:



P.S. Выкладываю первую порцию исходников:
https://gitlab.com/nedopc/vsound
Там оно пишет и играет raw-файлы (1 канал 16 бит со знаком 44100 Гц)
Думаю написать игралку из MP3...

_________________
:dj: https://mastodon.social/@Shaos


11 Apr 2020 20:13
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Просто текст в формате Vsound20:

Attachment:
Vsound20-shaos.jpg
Vsound20-shaos.jpg [ 76.34 KiB | Viewed 10581 times ]

Декодирование последовательности кадров с текстом из формата Vsound20 (с озвучкой):


_________________
:dj: https://mastodon.social/@Shaos


12 Apr 2020 09:59
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Попробовал записать на фиговенький магнитофон и воспроизвести обратно через Line-In на компе - вот результат:

Attachment:
Vsound20-shaos-tape.png
Vsound20-shaos-tape.png [ 24.13 KiB | Viewed 10573 times ]

Видно, что помех прибавилось и младшие 3 частоты полностью забиты шумом от движка мафона (что полностью исключило срабатывание по синхросигналу смены кадров в декодирующей программе, которая ожидает 15мс тишины с уровнем ниже -18dB на всех частотах), однако в целом картинка видна :idea:

P.S. Магнитофон использовался вот этот:


Attachments:
recorder.jpg
recorder.jpg [ 45.58 KiB | Viewed 10573 times ]

_________________
:dj: https://mastodon.social/@Shaos
12 Apr 2020 15:19
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
По идее так можно и данные передавать - скажем выбрать 9 частот из середины списка Vsound20:
Code:
 9: 1045.777132
10: 1343.108104
11: 1724.974971
12: 2215.412625
13: 2845.289458
14: 3654.250232
15: 4693.211343
16: 6027.565523
17: 7741.297691
и гнать параллельно 8 битов и 1 бит чётности - тогда можно максимум 1045 байт в секунду передавать, а это тоже самое, что и примерно 12.5 килобит если сравнивать с последовательной передачей

P.S. плюс можно попробовать на более высоких частотах уталкивать больше битов за время одного периода частоты 9:
Code:
 9: 1045.777132 - 1.00 период   -> 1 бит (всего 1)
10: 1343.108104 - 1.28 периодов -> 1 бит (всего 2)
11: 1724.974971 - 1.65 периодов -> 1 бит (всего 3)
12: 2215.412625 - 2.12 периодов -> 2 бита (всего 5)
13: 2845.289458 - 2.72 периодов -> 2 бита (всего 7)
14: 3654.250232 - 3.49 периодов -> 3 бита (всего 10)
15: 4693.211343 - 4.49 периодов -> 4 бита (всего 14)
16: 6027.565523 - 5.78 периодов -> 5 битов (всего 19)
17: 7741.297691 - 7.40 периодов -> 7 битов (всего 26)


P.P.S. Проверил - одного периода мало, чтобы частоту отдетектить как следует и потом фильтр ещё продолжает "гудеть" какое-то время после того, как частота закончилась - видимо тут задержка фильтра имеет важное значение - сигнал не может быть сильно короче этой задержки, даже если он высокочастотный - например, чтобы уверенно обнаружить частоту 17, мне пришлось сигналить 60 тактов, а это уже больше 10 периодов на частоте 7741.29 Гц, причём сигнал появляется только через 100 тактов после начала (и эта задержка практически идентична что для частоты 9, что для частоты 17), а затухает сигнал после фильтра только через 260-280 тактов после того как он фактически закончился (опять таки для всех частот эта задержка примерно одинакова) - получается, чтобы устойчиво детектировать наличие сигнала, надо его иметь в течение 100 тактов и дать ему время на потухнуть - хотя бы ещё 100, а это уже только 220 "пачек" в секунду ну или только 220 байт, что уже совсем неинтересно (если добавить ещё синхру, то вообще порядка 150 байт в секунду только получается, но зато имеется возможность добавить коды Хамминга для корреции ошибок, т.к. я могу устойчиво передавать до 14 битов одновременно).

_________________
:dj: https://mastodon.social/@Shaos


12 Apr 2020 22:37
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Сониковская двойная дека воспроизвела картинку намного лучше :mrgreen:


_________________
:dj: https://mastodon.social/@Shaos


13 Apr 2020 19:36
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Высокие частоты слегка придавлены, поэтому кадры не всегда детектируются - задрал высокие цифровым эквалайзером в Audacity (возможно слегка переборщил):



P.S. Надо будет приобресть настоящий железный эквалайзер (подержанный) к этой сони-деке - без него видать не обойтись...


Attachments:
SONY.jpg
SONY.jpg [ 132.3 KiB | Viewed 10539 times ]

_________________
:dj: https://mastodon.social/@Shaos
13 Apr 2020 20:19
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Вот оказывается бала детская игрушка в США в конце 80х, которая писала чёрно-белое видео 120x90 15 FPS на обычную аудиокассету, крутящуюся с 9-кратной скоростью (получалось 3.5 минуты на одной стороне):

А ты вживую не видел такую мгрушку? Честно говоря - очень прикольно! :wink:
Не баловали нас такими игрушками в конце 80х... :-?

_________________
iLavr


03 May 2020 13:37
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 33 posts ]  Go to page Previous  1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 27 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.