Предмет: Информатика, автор: pupsik333

Python Оцифровка звука выполняется в режиме стерео с частотой дискретизации 44,1 кГц и глубиной кодирования 24 бита. Ввести время записи в минутах и определить, сколько Мбайт нужно выделить для хранения полученного файла (округлить результат в большую сторону).

Введите время записи в минутах 10
Размер файла 152 Мбайт


ShredingerCat: По условию нужно найти размер файла, тогда для чего дан его размер в 152МБ?
ShredingerCat: похоже, что 152 МБ - правильный ответ

Ответы

Автор ответа: ShredingerCat
2
import math

DEPTH = 24
RATE = 44100    # 44.1 kHz = 44100 Hz

# get the record time in seconds
time = int(input("Enter the record time in minutes: ")) * 60
# file size in bits ('2' сoefficient appears due to a stereo mode)
fileSize = RATE * DEPTH * time * 2
# file size in MBytes
fileSize /= (8*(1024**2))
# round up the file size to the bigger value
fileSize = math.ceil(fileSize)
print("The file size is: ", fileSize, "MB")
Автор ответа: Аноним
13
1. Сделаем расчет для одного канала
Частота дискретизации 44.1 кГц, означает что в секунду делается 44100 отсчетов.
Глубина кодирования 24 бита = 24/8 = 3 байта означает, что под хранение одного отсчета отводится три байта.
Тогда односекундная запись займет 44100×3 = 132300 байта.
2. Запись стереофоническая, т.е. она имеет два канала. Односекундная стереозапись займет 132300×2 = 264600 байт или 264600/1024² Мбайт.
3. Минутная запись займет в 60 раз больше, т.е.  264600×60/1024² ≈ 15.14 Мбайт.
Чтобы определить, какой объем займет запись длительностью t минут, надо умножить t на 15.14 и округлить результат до ближайшего большего целого (в математике эта функция называется ceiling, т.е. по-английски "потолок").

Программа на Python 3.6.4

import math
t=int(input("задайте время в минутах: "))
print("Потребуется",math.ceil(15.14*t),"Мб")
Приложения:
Похожие вопросы
Предмет: История, автор: madinakylysbaeva72
Предмет: Геометрия, автор: troyan1981
Предмет: Математика, автор: madinayusupova2