Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 1
Регистрация: 31.10.2021
Сообщений: 12
1

Амплитудно-временная, частотно-временная характеристика mp3

31.10.2021, 20:28. Показов 1945. Ответов 14

Author24 — интернет-сервис помощи студентам
Всех приветствую, есть необходимость, сделать некоторое подобие «детектора шума». На чистом, или почти cmd, вставки на ps или vbs приветствуются, главное без установки софта, только портативные утилиты.

Задача: Найти, или написать вспомогательный инструмент, с которым можно работать из командной строки, который в качестве аргумента принимает:
1. Путь до mp3 файла.
2. Отметку времени mp3 файла, можно без проверки длительности аудио.

Выводит:
1. Уровень амплитуды в любой относительной величине, децибелы, проценты, микровольты на метр.
2. Частота синусоидального сигнала на данной отметки времени. (Входной аргумент)

Как вы понимаете, проблем с написанием cmd скриптов у меня нет (Да и сам я с высшим радиотехническим образованием), есть лишь потребность в конкретном подобном инструменте.

Может быть, кто-то знает, или работал с этим.

Устройства в связке с детектором шума и Arduino не предлагать, программы с графическим выводом тоже. Только программная реализация.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2021, 20:28
Ответы с готовыми решениями:

Временная группа
Цель - Нужно чтобы новым сотрудникам организации в течение недели после трудоустройства, при входе...

Амплитудно - фазовая частотная характеристика
Необходимо построить амплитудно-фазовую частотную характеристику (АФЧХ) даны формулы A(\omega...

Амплитудно-частотная характеристика осциллятора
Помогите пожалуйсто код программы"одномерный осциллятор с сопротивлением" переделать в код...

Логарифмическая амплитудно-частотная характеристика
Здравствуйте! Прошу помощи. Буду безумно благодарен умному человеку, который напишет простым...

14
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
31.10.2021, 23:39 2
Wododip228, вам сюда и сюда как минимум, но уж никак не на cmd это высчитывать.
1
1 / 1 / 1
Регистрация: 31.10.2021
Сообщений: 12
01.11.2021, 06:42  [ТС] 3
alpap, Спасибо за ответ, по первой ссылке, возможно, эта утилита и работает из командной строки, однако, нормализация – это не совсем то, что нужно. Ведь если выровнять амплитуду аудио файла, то мы не сможем выделить резкие естественные скачки, для выделения резкого изменения уровня звука. («Детектор шума»)

По второй ссылке, мало знаком с этим пакетом программ, насколько понял, используя этот инструмент можно лишь теоретически представить модель сигнала, не подходит, мы же работаем на практике, и уже имеем записанный аудио файл. Также не нашел способы передачи значений в cmd обратно, возможно можно заморочиться с выводом кода ошибки. Также не имею представления, каким образом можно импортировать параметры сигнала из mp3 или любого другого формата, да, говорим о matlab.

Для наглядности представляю волшебную «функцию», которая принимает на вход аудио файл, время, и выводит частоту, и уровень амплитуды:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@echo off& chcp 65001 >nul& setlocal enabledelayedexpansion enableextensions& set dir=%~dp0& cd /d "!dir!"
:loop
call :echo "" "Getting audio"& call :getaudio& for /l %%h in (1,1,10) do (call :miracle "!dir!\Sound.mp3" "%%h"& call :echo "pr" "Processing" "%%h" "!fq!" "!ampl!"& if !ampl! geq 85 (call :echo "dt" "Detect" "%%h" "!fq!" "!ampl!")
call :wait "150")
goto loop
@exit
 
:echo
cls& echo Mode: %~2.& if "%~1" equ "pr" (echo %~2 time: %~3.& echo %~2 frequency: %~4.& echo %~2 amplitude: %~5.) else (if "%~1" equ "dt" (echo %~2 time: %~3.& echo %~2 frequency: %~4.& echo %~2 amplitude: %~5.& for /l %%h in (1,1,2) do (call :beep "500" "250")
pause))
exit /b
 
:beep
!dir!\NirCmd.exe beep %~1 %~2
exit /b
 
:getaudio
call :wait "1000"& cd.>"!dir!\Sound.mp3"
exit /b
 
:wait
!dir!\NirCmd.exe wait %~1
exit /b
 
:miracle
if exist "%~1" (call :random "fq" "55" "125"& if %~2 geq 0 (if %~2 lss 3 (call :random "ampl" "0" "60"))
if %~2 geq 3 (if %~2 lss 7 (call :random "ampl" "0" "100"))
if %~2 geq 7 (if %~2 leq 10 (call :random "ampl" "20" "80")))
exit /b
 
:random
set /a %~1=%~2+^(%~3-%~2+1^)*!random!/32768
exit /b
Небольшой комментарий к этому коду:
Аудио сигнал имеет синусоидальную форму, длительность 10 секунд.
Предполагается, что переменная ampl имеет относительные значения, в данном случае – проценты
Для работы и наглядности нужна консольная версия NirCmd рядом в cmd/bat файлом перед запуском.
Хотелось бы вместо рандомов иметь реальный вывод.

Добавлено через 8 минут
Кстати, проблем с «высчитыванием» дробных чисел на cmd нет, для ленивых можно даже использовать вставку на vbs, но тогда еще придется разбивать вывод на подстроки, чтобы отделить целую от дробной части. И да, это не очередное задание из универа, как тут бывает, а мой личный интерес.
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
02.11.2021, 00:23 4
Цитата Сообщение от Wododip228 Посмотреть сообщение
представляю волшебную «функцию», которая принимает на вход аудио файл, время, и выводит частоту, и уровень амплитуды
если переписать код так, то можно увидеть что никакой он не волшебный, написан на коленке и причем безграмотно во всех смыслах и никакую ни частоту ни амплитуду он естественно не показывает.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
@echo off
setlocal enabledelayedexpansion
:loop
call :echo "" "Getting audio"
call :getaudio
for /l %%h in (1,1,10) do (
  call :miracle "Sound.mp3" "%%h"
  call :echo "pr" "Processing" "%%h" "!fq!" "!ampl!"
  if !ampl! geq 85 (
    call :echo "dt" "Detect" "%%h" "!fq!" "!ampl!"
  )
  call :wait "150"
)
goto loop
@exit
 
:echo
  echo Mode: %~2.
  if "%~1" equ "pr" (
    echo %~2 time: %~3.
    echo %~2 frequency: %~4.
    echo %~2 amplitude: %~5.
  ) else (
    if "%~1" equ "dt" (
      echo %~2 time: %~3.
      echo %~2 frequency: %~4.
      echo %~2 amplitude: %~5.
      for /l %%h in (1,1,2) do (
        call :beep "500" "250"
      )
      pause
    )
  )
exit /b
 
:beep
  NirCmd.exe beep %~1 %~2
exit /b
 
:getaudio
  call :wait "1000"
  cd.>"Sound.mp3"
exit /b
 
:wait
  NirCmd.exe wait %~1
exit /b
 
:miracle
if exist "%~1" (
  call :random "fq" "55" "125"
  if %~2 geq 0 (
    if %~2 lss 3 (
      call :random "ampl" "0" "60"
    )
  )
  if %~2 geq 3 (
    if %~2 lss 7 (
      call :random "ampl" "0" "100"
    )
  )
  if %~2 geq 7 (
    if %~2 leq 10 (
      call :random "ampl" "20" "80"
    )
  )
)
exit /b
 
:random
  set /a %~1=%~2+^(%~3-%~2+1^)*!random!/32768
exit /b
И да, общаться далее смысла также не вижу.
0
1 / 1 / 1
Регистрация: 31.10.2021
Сообщений: 12
02.11.2021, 10:44  [ТС] 5
alpap, Здравствуйте, во-первых, нигде не заявлялось что это и есть решение моей задачи, поэтому код не выполняет заданную функцию, а лишь визуализирует её.

При цитировании, вы вырвали из контекста мои слова, придется вас поправить, простите:
Цитата Сообщение от Wododip228 Посмотреть сообщение
Для наглядности представляю волшебную «функцию»
То есть этот код наглядно показывает, как должна работать искомая утилита, так же дополняет изначальную задачу мелкими деталями, такими как:
1. Аудиофайл уже есть и находится в распоряжении интерпретатора
2. Требуется постоянный вывод для каждой секунды (Частота и амплитуда)
3. Синтаксис входных аргументов искомой утилиты.
Цитата Сообщение от alpap Посмотреть сообщение
написан на коленке
Тут вы совершенно правы, код написан за 15 минут.
Цитата Сообщение от alpap Посмотреть сообщение
безграмотно во всех смыслах
Готов принять ваши комментарии на счет безграмотности, сразу скажу, что данный код является выдержкой из главного скрипта объёмом в 1300 строк. Где требуется «минимализация» кода, для быстрого ориентирования, если вы про большое количество «И» в коде. Очевидно, что все «функции» могут быть вызваны с разными аргументами, и могут быть использованы для разных процедур, которые в настоящем коде не отражены, если вы про большое количество вызовов call.
Цитата Сообщение от alpap Посмотреть сообщение
и никакую ни частоту ни амплитуду он естественно не показывает.
Думаю, вы можете ошибаться, если не запускали этот код. Специально для вас прикрепил миниатюру.
Амплитудно-временная, частотно-временная характеристика mp3

Анализируя ваш код, можно действительно заметить различия, в основном в хорошей читабельности, и отсутствии «лишней» установки рабочей директории, однако на функциональную часть это никак не повлияет.

Не по теме:

Если вы готовы удариться в философию, то могу вам сразу сказать, что я в курсе, что большое количество вызовов функций, а также постоянная расширенная обработка переменных почти в два раза замедляет работу интерпретатора, однако, причины, по которым мне пришлось пожертвовать читабельностью, моно функцией, обычной обработкой переменных % - я описал выше.

Кстати, если проанализировать ваши ответах в темах, где ТС является новым пользователем, то в 50 % от вас в основном один негатив. Предполагаю, что это ответ, тем, кто считает всех, кто тут сидит, обязанными срочно, важно, без ошибок написать им код, в том числе и вас. Я почти сразу обозначил, что это не глупое задание от преподавателя из универа, и лишь ищу инструмент, а не рабочий код.

Если вам не нравится мой код, и вы считаете его не оптимизированным, то я с вами могу согласиться. Однако, если вы заявляется однозначно «безграмотный», то предоставьте хотя бы причины почему вы так считаете. В обратном случае, это просто является открытым оскорблением, думаю, что безосновательным.

1
kumehtar
02.11.2021, 11:04
  #6
 Комментарий модератора 
Давайте-ка мы понизим все тут градус накала страстей.
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
02.11.2021, 16:01 7
Wododip228,
Какое отношение получение технических характеристик аудиофайла имеет к батникам?
Вам уже пару раз намекнули, что это не про batch и вообще не про shell скрипты.

Цитата Сообщение от Wododip228 Посмотреть сообщение
что данный код является выдержкой из главного скрипта объёмом в 1300 строк.
Святые угодники... Ну не программируют на батниках... это мазохизм. Выучите нормальные ЯП.
В них уже и готовые библиотеки для работы с аудипотоками и аудиофайлами будут. И весь код займет 5-10 строк.
А на коленке ни вы, никто другой ничего такого не напишет.
1
1 / 1 / 1
Регистрация: 31.10.2021
Сообщений: 12
02.11.2021, 19:15  [ТС] 8
Garry Galler, На самом деле никакого, просто необходимо с помощью сторонних инструментов вывести значения сигнала в переменную интерпретатора.
Цитата Сообщение от Garry Galler Посмотреть сообщение
Выучите нормальные ЯП
Дельный совет. Просто большая часть функционала уже реализована в cmd скрипте. Я не рассматриваю cmd/bat скрипты как ЯП в перспективе. Просто хотелось бы «дожать» этот скрипт.
Цитата Сообщение от Garry Galler Посмотреть сообщение
А на коленке ни вы, никто другой ничего такого не напишет.
В теории можно, по принципу вертикального заполнения через echo пробелами и обозначающими символами, например «*». Но это уже и есть махохизм, о котором вы говорите, истинная необходимость в том, чтобы зафиксировать шум, без каких либо обработок сигнала, и преобразований над ним.

Добавлено через 4 минуты
Однако, если такой инструмент будет найден, то я попробую в этой теме сделать что-то подобное на чистом batch. Будет интересно.
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
02.11.2021, 19:47 9
Цитата Сообщение от Wododip228 Посмотреть сообщение
если такой инструмент будет найден, то я попробую в этой теме сделать что-то подобное на чистом batch.
Так вы ищите инструмент (ГОТОВУЮ ПРОГРАММУ ДЛЯ АНАЛИЗА АЙДИОФАЙЛА) или что????
Про готовые консольные программы (работу с которым можно будет потом обернуть ничего не значащим батником) нужно спрашивать не в разделе батников, а там где есть темы про обработку аудио.

В самом batch нет ни средств чтения бинарных файлов, ни структур данных для хранения байтов, ни математических функций. На VBS или PS, конечно есть (в PS больше, так как там полный доступ к методам из .NET), но в любом случае придется все вычисления писать вручную. Но чтобы это написать, мало сам язык знать - нужно знать предметную область (ну вот как вы с соответствующим образованием).
1
1 / 1 / 1
Регистрация: 31.10.2021
Сообщений: 12
02.11.2021, 20:31  [ТС] 10
Garry Galler,
Цитата Сообщение от Garry Galler Посмотреть сообщение
ГОТОВУЮ ПРОГРАММУ ДЛЯ АНАЛИЗА АЙДИОФАЙЛА
Да, да, и еще раз да, именно это я и ищу.
Цитата Сообщение от Garry Galler Посмотреть сообщение
В самом batch нет ни средств чтения бинарных файлов, ни структур данных для хранения байтов, ни математических функций.
Вы совершенно правы.

У нас на форуме есть соответствующие темы? Вроде бегло пробежался, не нашел.

По идее нужно получить средневыпрямленное значение (Взять все положительные полуволны, и вычислить среднее значение между ними) за 1 секунду, ту, которая передается в аргументе, и сосчитать частоту сигнала, за эту же секунду, именно сосчитать, а не вычислить, так как определение частоты через период, и другие косвенные вычисления будут иметь большую погрешность, так как сигнал может быть не симметричным, и не постоянным, но однозначно синусоидальный. Как это программно реализуется на PS и VBS не имею представления, думаете методы .NET это могут? Есть смысл обратиться в эти разделы? (PS и VBS)
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
03.11.2021, 00:56 11
Лучший ответ Сообщение было отмечено Wododip228 как решение

Решение

Цитата Сообщение от Wododip228 Посмотреть сообщение
думаете методы .NET это могут
Есть такая очень известная либа - комбайн для работы со звуком - bass.dll, написанная на С++.

Для нее на C# есть обертка bass.NET.
https://streletzcoder.ru/osnov... -bass-net/
http://bass.radio42.com/help/

Здесь на форуме в блоге одного товарища есть примеры работы с bass.dll на С++
https://www.cyberforum.ru/blog... g5149.html
Судя по примерам она умеет считать амплитуду.
Есть ли готовые консольные морды для работы с ней я даже не знаю.
Но можно поспрашивать у того же товарища чей блог. Я же в работе со звуком ничего не понимаю, поэтому не могу сказать насколько трудоемко(или нет) написать всю нужную логику без библиотек на тех же С++\C#.

Добавлено через 2 минуты
Цитата Сообщение от Wododip228 Посмотреть сообщение
Есть смысл обратиться в эти разделы? (PS и VBS)
Едва ли там есть радиоинженеры... В разделе С++ шансов, думаю, больше :-)
1
1 / 1 / 1
Регистрация: 31.10.2021
Сообщений: 12
03.11.2021, 18:57  [ТС] 12
Garry Galler, Просто хочется сказать вау, это действительно то, что нужно!
Цитата Сообщение от Garry Galler Посмотреть сообщение
Я же в работе со звуком ничего не понимаю, поэтому не могу сказать насколько трудоемко(или нет) написать всю нужную логику без библиотек
В блоге, 10-тый пример, там есть все что нужно, все вышеописанные вычисления.

Пожалуй, осталось только впилить эту задумку в консольную морду, добавить ввод аргументов, и консольный вывод.
0
1 / 1 / 1
Регистрация: 31.10.2021
Сообщений: 12
05.11.2021, 18:56  [ТС] 13
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

Если кому интересно, то решил задачу. Не без помощи Garry Galler.
Амплитудно-временная, частотно-временная характеристика mp3

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@echo off& chcp 65001 >nul& setlocal enabledelayedexpansion enableextensions& set dir=%~dp0& cd /d "!dir!"& set preptr=0& call :getsound
:check
for %%h in (tmp.mp3) do (if %%~zh equ 0 (timeout /t 1 /nobreak& goto check))
:loop
if !preptr! equ 0 (set preptr=1& ren "tmp.mp3" "tmpdll.mp3"& call :getsound& sox tmpdll.mp3 output.wav trim 0 1 : newfile : restart& del /f /q "tmpdll.mp3") else (for %%h in (tmp.mp3) do (if not %%~zh equ 0 (ren "tmp.mp3" "tmpdll.mp3"& call :getsound& for /l %%h in (1,1,11) do (if %%h leq 9 (set sh=00%%h) else (set sh=0%%h)
del /f /q "output!sh!.wav")
sox tmpdll.mp3 output.wav trim 0 1 : newfile : restart& del /f /q "tmpdll.mp3")))
cls& for /l %%h in (1,1,11) do (if %%h leq 9 (set sh=00%%h) else (set sh=0%%h)
sox output!sh!.wav -n stat 2>tmp.txt& set tr=0& for /f "tokens=3 delims= " %%i in (tmp.txt) do (set /a tr+=1& if !tr! equ 4 (set ampl=%%i)
if !tr! equ 14 (set fq=%%i)
call :dls "!ampl!"& if !tr! equ 15 (if !dls! geq 100000 (echo *Time: !sh!s, ampl: !ampl!, fq: !fq!.) else (echo Time: !sh!s, ampl: !ampl!, fq: !fq!.))))
timeout /t 1 /nobreak
goto loop
@exit
 
:getsound
echo set wshshell = createobject^("wscript.shell"^) >run.vbs& echo wshshell.run "run.cmd", 0, false >>run.vbs& echo ffmpeg -f dshow -t 10 -i "audio=Microphone (USB Audio Device)" tmp.mp3 >run.cmd& !dir!\run.vbs
exit /b
 
:dls
set dls=%~1& set dls=!dls:.=!
:dlsloop
if "!dls:~0,1!" equ "0" (set dls=!dls:~1!& goto dlsloop)
exit /b
Комментарий к коду: (Если будете запускать)
1. Вместо Microphone (USB Audio Device) нужно поставить свое название устройства ввода, 17 строка.
2. Узнать название устройств, можно командой:
Windows Batch file
1
ffmpeg -list_devices true -f dshow -i dummy
3. Поскольку микрофоны у всех разные, сравнение с переменной dls можно настроить под себя, строка 11.
4. Ну и да, для работы нужен sox с mp3 библиотеками и ffmpeg, а если лень искать и скачивать, то тут все вместе, пароль: CyberForum.

Однако не все задачи остались решенными:

Как можно вывести второй поток программы в тело цикла без файлов? В данном случае tmp.txt
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
06.11.2021, 02:53 14
стр49 без, естественно, >tmp.txt помещаете в стр51 вместо tmp.txt и в таких кавычках: '"sox output!sh!.wav -n stat 2"'. По идее должно отработать. (В этой строке delims=пробел лишнее, это и так есть по умолчанию - деление по пробелу, если не изменено)
Кликните здесь для просмотра всего текста

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion enableextensions
set dir=%~dp0
cd /d "!dir!"
set preptr=0
call :getsound
 
:check
  for %%h in (tmp.mp3) do (
    if %%~zh equ 0 (
      timeout /t 1 /nobreak
      goto check
    )
  )
 
:loop
  if !preptr! equ 0 (
    set preptr=1
    ren "tmp.mp3" "tmpdll.mp3"
    call :getsound
    sox tmpdll.mp3 output.wav trim 0 1 : newfile : restart
    del /f /q "tmpdll.mp3"
  ) else (
    for %%h in (tmp.mp3) do (
      if not %%~zh equ 0 (
        ren "tmp.mp3" "tmpdll.mp3"
        call :getsound
        for /l %%h in (1,1,11) do (
          if %%h leq 9 (
            set sh=00%%h
          ) else (
            set sh=0%%h
          )
        del /f /q "output!sh!.wav"
        )
        sox tmpdll.mp3 output.wav trim 0 1 : newfile : restart
        del /f /q "tmpdll.mp3"
      )
    )
  )
  cls
  for /l %%h in (1,1,11) do (
    if %%h leq 9 (
      set sh=00%%h
    ) else (
      set sh=0%%h
    )
    sox output!sh!.wav -n stat 2>tmp.txt
    set tr=0
    for /f "tokens=3 delims= " %%i in (tmp.txt) do (
      set /a tr+=1
      if !tr! equ 4 (
        set ampl=%%i
      )
      if !tr! equ 14 (
        set fq=%%i
      )
      call :dls "!ampl!"
      if !tr! equ 15 (
        if !dls! geq 100000 (
          echo *Time: !sh!s, ampl: !ampl!, fq: !fq!.
        ) else (
          echo Time: !sh!s, ampl: !ampl!, fq: !fq!.
        )
      )
    )
  )
  timeout /t 1 /nobreak
  goto loop
@exit
 
:getsound
  echo set wshshell = createobject^("wscript.shell"^) >run.vbs
  echo wshshell.run "run.cmd", 0, false >>run.vbs
  echo ffmpeg -f dshow -t 10 -i "audio=Microphone (USB Audio Device)" tmp.mp3 >run.cmd
  !dir!\run.vbs
exit /b
 
:dls
  set dls=%~1
  set dls=!dls:.=!
 
:dlsloop
  if "!dls:~0,1!" equ "0" (
    set dls=!dls:~1!
    goto dlsloop
  )
exit /b
1
1 / 1 / 1
Регистрация: 31.10.2021
Сообщений: 12
06.11.2021, 16:08  [ТС] 15
alpap, Не совсем понял вас, всяко разно попробовал, в основном одни вылеты.

Однако, потупив полчаса, пришел в такому коду, вроде работает:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for /f "usebackq tokens=3" %%i in (`sox output!sh!.wav -n stat 1^>nul 2^>^&3`) do (
  set /a tr+=1
  if !tr! equ 4 (
    set ampl=%%i
  )
  if !tr! equ 14 (
    set fq=%%i
  )
  call :dls "!ampl!"
  if !tr! equ 15 (
    if !dls! geq 100000 (
      echo *Time: !sh!s, ampl: !ampl!, fq: !fq!.
    ) else (
      echo Time: !sh!s, ampl: !ampl!, fq: !fq!.
    )
  )
)
0
06.11.2021, 16:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2021, 16:08
Помогаю со студенческими работами здесь

Амплитудно-частотная характеристика ФНЧ Чебышева
Здравствуйте, форумчане. Подскажите, как правильно определить передаточную функцию активного...

Амплитудно-частотная характеристика фильтра верхних частот
Буду благодарен за помощь, а то спокойствия нет.. Кратко. Простой фильтр верхних частот, все...

Временная метка
В общем нужно получить дату регистрации пользователя и сохранить её в базу. В связи с тем, что есть...

Временная таблица
Доброй ночи. В многопользовательской локальной БД нужна такая фишка: некая общая область (таблица)...

Временная Функция
Вопрос такой, как можно запустить разово функцию. На пример: нажать кнопку, которая запустит...

Временная бобмба
ребята, так случилось, что ноутбук был утерян со всеми наработками ,теперь пытаюсь всю инфу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru