![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Насчёт звука
fiction © (2003-12-05 21:35:00)Я слышал, что если читать звуковые данные, поступающие в звуковой буфер, то это будет амплитудой этих самых данных в 8 или 16- битном размере. Но вот когда я это делаю, получается что-то не очень похожее на амплитуду. Даже у звукового файла с записанной тишиной, эти значения получаются огромными. Подскажите, пожалуйста, в чём ошибка?
Анонимщик (2003-12-24 17:33:00) [1]Digitman
Ну да, но почти только для данного
Digitman (2003-12-24 16:12:00) [2]
> Анонимщик © (24.12.03 13:14) [30]
http://www.exponenta.ru/educat/class/courses/ma/theme10/theory.asp
для данного случая "нахождение дифференциала" и "нахождение производной" - синонимы, никак не противоречащие
Анонимщик (2003-12-24 13:14:00) [3]Digitman ©
Ну, дифференциал это непроизводная, да ладно.
fiction
Ты посмотрел бы все-таки описание структуры wav-файла, за час больше поймешь, чем за те две недели, что вопросы задаешь.
Digitman (2003-12-20 12:14:00) [4]
> При чём здесь
ну как же ни при чем-то ?!)
ты же спросил, что за огромные значения такие у тебя в файле ?
вот в [12] как раз тебе и сказано было, что каждая 16-битная выборка должна рассматриваться тобой не как целое беззнаковое число, а именно как целое знаковое ! иными словами ты рассматривал выборки как Word, в то время как их следует рассматривать в виде Smallint
> А тогда в чём смысл положительных и отрицательных значений?
> Чем они отличаются?
при знаковом представлении значений выборок матеметические операции над выборками значительно упрощаются
fiction (2003-12-19 22:54:00) [5]При чём здесь ответ konstantinov [12]? Как раз в нём по-моему нет ничего, про что я спрашивал. Про это я знал и раньше.
А тогда в чём смысл положительных и отрицательных значений? Чем они отличаются?
Digitman (2003-12-19 08:21:00) [6]
> fiction (18.12.03 22:49) [25]
> Ну вот я про это и спрашивал
так тебе давно уже и ответили)
см.
> konstantinov © (10.12.03 02:49) [12]
Asteroid (2003-12-18 23:41:00) [7]Нет. Каналы чередуются: сначала один сэмпл для левого, потом один для правого и т.д. Для каждого канала возможны как положительные, так и отрицательные значения.
fiction (2003-12-18 22:49:00) [8]Ну вот я про это и спрашивал, про 65000, тогда всё ясно. Вот последний наверное вопросик. Если получаются положительные значения, то надо их в верхней части рисовать, а отрицательные в нижней. Так? И это будет левый и правый канал или как?
Digitman (2003-12-15 08:37:00) [9]
> если я просто беру звуковой файл какой-то, где много разных
> дорожек
стоп. если речь идет конкретно о wav-формате со звук.данными в pcm-кодировке, то в заголовке указано число каналов
при стереозаписи (2 канала) в звук.данных файла каждая выборка представлена парой чисел : знач-е для лев.канала и следом же - знач-е для прав.канала
> Вот кстати пример выборок из файла:
> 31 29 47 66 50 0 65471 65370 65368 65412 65489 58 137 196
> 235
и что здесь непонятного ?
65471 = -65
65370 = -166
65368 = -168
65412 = -124
65489 = -47
получаем
31 29 47 66 50 0 -65 -166 -168 -124 -47 58 137 196
разве это не похоже на реальные звук.данные ?
imho, вполне похожи !
fiction (2003-12-14 21:40:00) [10]Evgeny V а вот ты говоришь, зависит от того, какой вход используешь. А если я просто беру звуковой файл какой-то, где много разных дорожек, или вообще с диска, тогда как быть? И кстати так нельзя будет привязать полученные значения к децибелам?
Вот кстати пример выборок из файла:
31 29 47 66 50 0 65471 65370 65368 65412 65489 58 137 196 235
А вот насчёт заголовка я чё-то не понял, чё там можно приводить? там же блоки всякие, формат данных и т.д.
Evgeny V (2003-12-13 05:36:00) [11]> fiction (10.12.03 19:04) [15]
Про около 65000 всегда. Если у тебя 16 бит, формат PCM, то возможно, просто у тебя есть постоянка в минусах на входе записи, проблемы могут быть с самой картой, такое бывает и кстати важно какой вход записи используешь, Line IN - это одно, а вот микрофонный вход очень чувствителен, надо правильно подобрать усиление, но если все же нет большого разброса в значениях, то постоянка. Избавится можно программно, см Digitman
x[i-1] - x[i] где х[n] - это выборка, другой вариант, найти среднеарифметическое всех выборок и вычесть его из каждой выборки.
fiction (2003-12-12 14:55:00) [12]Digitman, у тебя есть аська? можт можно с тобой лично поговорить, а то так через форум неудобно и малопродуктивно...
_VectoR_ (2003-12-11 12:37:00) [13]ОК. Спасибо. А то я чего-то затупил и сам не собразил.
Digitman (2003-12-11 12:04:00) [14]ну что такое дифференциал некоей ф-ции ? это отношение приращения значения ф-ции к приращению ее аргумента ... так ?
в дан.же случае ф-ция Y = F(t) задана не аналитически, а таблично, где t - это мгнов.время выборки, а Y - мгнов.значение выборки
если, к примеру, имеется две последовательные выборки (8-я и 9-я по счету)
Y8(t8 = 8) = 65000
Y9(t8 = 9) = 65100
то дифференциалом будет величина, равная
(Y9 - Y8)/(t9 - t8) = (65100 - 65000)/ (9 - 8) = 100
т.е. относительное изменение сигнала за период времени между t9 и t8 составило 100
_VectoR_ (2003-12-11 11:25:00) [15]> Digitman
Я тут просто залез "на огонек" и услышал программное продифференцирование. Подскажи, пжлста, как это делается. Какой-нибудь алгоритм или ссылку. В общем смысле, а не конкретном. Как программно продифферинцировать последовательность чисел?
Digitman (2003-12-11 08:45:00) [16]для программного исключения DC Offset нужно просто программно продифференцировать "сигнал"
Digitman (2003-12-11 08:42:00) [17]
> Как это возможно вообще
а почему ты считаешь, что это "невозможно" ?
если все выборки будут равными одному и тому же значению , например, 65000, то это будет как раз та самая "тишина"
это просто некое значение DC Offset, не более того
ты лучше приведи реальный фрагмент дампа такого файла - заголовок и следующие за ним пару десятков выборок
fiction (2003-12-10 19:04:00) [18]Ну ладно, вобщем мне надо представить графически не только этот файл с тишиной, но и вообще любой звуковой файл. Но у меня всё время получаются значения около 65000. Как это возможно вообще?
Digitman (2003-12-10 08:48:00) [19]настоящая "тишина" при вышеуказанном формате - это данные, следующие за заголовком, каждое дв.слово которых = 0
все остальные значения дв.слов, представляющих в дан.случае значения выборок - никак не "тишина", а знаковые представления амплитуд выборок
Digitman (2003-12-10 08:42:00) [20]
> Я прочитал заголовок, и посмотрел размер файла, он вполне
> нормальный, представить графически там есть что. Причём
> даже если в файле тишина он же всё равно включает в себя
> звуковые данные.
ты противоречишь сам себе
цитирую тебя :
> fiction (07.12.03 17:01) [4]
> В том файле вообще ничего не было, даже не записывалось ничего
Вот реальный пример "пустого" файла , т.е. в который "не записывалось ничего" :
формат : PCM, 8кГц, 16 бит, моно
Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F
00000000 52 49 46 46 24 00 00 00 57 41 56 45 66 6D 74 20 RIFF$...WAVEfmt
00000010 10 00 00 00 01 00 01 00 40 1F 00 00 80 3E 00 00 ........@...€>..
00000020 02 00 10 00 64 61 74 61 00 00 00 00 ....data....
жирным выделена полная длина файла, начиная со смещения + 8
в дан.случае она равна 36 байт
как видишь, начиная со смещения +8 в файле насчитывается действительно 36 байт, из которых собственно звук.данных - 0 байт (дв.слово по смещению +40 = 0)
это и есть настоящий "пустой" файл !
у тебя же, видимо, далеко непустой, и "тишиной" звук.данные назвать при всем желании никак нельзя