Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Общетехнические вопросы

Общетехнические вопросы Общие вопросы аналоговой и цифровой электроники.

Ответ
 
Опции темы Опции просмотра
Старый 28.06.2017, 07:55   #1
YarPv14
Member
 
Регистрация: 05.08.2015
Возраст: 35
Сообщений: 37
Вес репутации: 206/11
YarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura about
По умолчанию wav, 16 бит что-то не работает

Здравствуйте!

Экспериментирую с воспроизведением wav.
Параметры wav: 16 бит, моно, 48kHz.
Файл залит в параллельную EPROM 27С322, воспроизведение через DAC8820, ЦАП включен по схеме с биполярным выходом.

При воспроизведении слышен шум по громкости соизмеримый с уровнем самого звука, сам звук прослушивается, хотя и с искажениями. Шум не высокочастотный, его частота на слух 400 - 800 Гц, меняется в зависимости от воспроизводимого фрагмента.

Проверил само железо, ЦАП функционирует правильно, шумы по питанию не значительны. Далее, если в ПЗУ зашить все нули 0000 или все FFFF на выходе тишина, т.е. помехи из цифровой части и по питанию не влияют.

Сам wav-файл на сторонних плеерах играет отлично.
В чём может быть проблема?

Также хочу уточнить, для теста к выходу ОУ OPA2134 подключил наушники через резистор 1 кОм, в общем без фильтра. Затем пробовал поставить RC-цепочку, игрался с номиналами, шумы ослабевают, но и тембр звука меняется, искажения также остаются.
Миниатюры
DAC8820.JPG  
YarPv14 вне форума   Ответить с цитированием
Старый 28.06.2017, 09:48   #2
YarPv14
Member
 
Регистрация: 05.08.2015
Возраст: 35
Сообщений: 37
Вес репутации: 206/11
YarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura about
По умолчанию Re: wav, 16 бит что-то не работает

Кажется, я понял в чём дело, не внимательно прочитал про формат wav, числа там знаковые (если 16 бит), получается, ЦАП не правильно сделал.
Никто, случаем, не знает конвертера, способного поменять 16 бит знак, в 16 бит беззнаковый формат. Нашел какой-то онлайн конвертер, настройка такая есть, только не работает.
YarPv14 вне форума   Ответить с цитированием
Старый 28.06.2017, 10:46   #3
yeskela
Senior Member
 
Аватар для yeskela
 
Регистрация: 28.01.2010
Адрес: Новочеркасск
Возраст: 35
Сообщений: 1,115
Вес репутации: 3551/75
yeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond repute
По умолчанию Re: wav, 16 бит что-то не работает

Сдвинуть диапазон -32768(0x8000) - 32767(0x7fff) к диапазону 0(0x0000)-65535(0xffff)? Привести к беззнаковому и добавить 0x8000. То есть прям на лету перед загрузкой в ЦАП.
__________________
Отсутствие доступа в интернет с рабочего места очень замедляет работу. Наличие - полностью парализует её.
yeskela вне форума   Ответить с цитированием
Старый 28.06.2017, 13:55   #4
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,318
Вес репутации: 4442/103
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: wav, 16 бит что-то не работает

Цитата:
Сообщение от YarPv14 Посмотреть сообщение
Кажется, я понял в чём дело, не внимательно прочитал про формат wav, числа там знаковые (если 16 бит), получается, ЦАП не правильно сделал.
Никто, случаем, не знает конвертера, способного поменять 16 бит знак, в 16 бит беззнаковый формат. Нашел какой-то онлайн конвертер, настройка такая есть, только не работает.
Поробуй вот это. в режиме бинарника введено инвертирование старшего бита. Если не накосячил то на здоровье, если накосячил - исправлю.
Вложения
Тип файла: rar wave2.rar (311.0 Кб, 7 просмотров)
ampersant на форуме   Ответить с цитированием
Старый 28.06.2017, 14:06   #5
YarPv14
Member
 
Регистрация: 05.08.2015
Возраст: 35
Сообщений: 37
Вес репутации: 206/11
YarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura about
По умолчанию Re: wav, 16 бит что-то не работает

Цитата:
Сообщение от ampersant Посмотреть сообщение
Поробуй вот это. в режиме бинарника введено инвертирование старшего бита. Если не накосячил то на здоровье, если накосячил - исправлю.
Большое спасибо за помощь!
Только я, может, чего не до понял:
инвертирование старшего бита применимо только для положительных значений:
Код:
По формату wav:  после инверсии:  напряжение с ЦАП:
32767                  65535                      +V
0                      32768                       0
65535                  32767                     ~0
YarPv14 вне форума   Ответить с цитированием
Старый 28.06.2017, 14:09   #6
YarPv14
Member
 
Регистрация: 05.08.2015
Возраст: 35
Сообщений: 37
Вес репутации: 206/11
YarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura about
По умолчанию Re: wav, 16 бит что-то не работает

Цитата:
Сообщение от yeskela Посмотреть сообщение
Сдвинуть диапазон -32768(0x8000) - 32767(0x7fff) к диапазону 0(0x0000)-65535(0xffff)? Привести к беззнаковому и добавить 0x8000. То есть прям на лету перед загрузкой в ЦАП.
Да вот, чёрт меня дёрнул , эту часть на счётчиках сделать (хотел старую комплектуху извести), был бы мк между ПЗУ и ЦАПом проблем бы не было.
YarPv14 вне форума   Ответить с цитированием
Старый 28.06.2017, 14:13   #7
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,318
Вес репутации: 4442/103
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: wav, 16 бит что-то не работает

Цитата:
Сообщение от YarPv14 Посмотреть сообщение
Да вот, чёрт меня дёрнул , эту часть на счётчиках сделать (хотел старую комплектуху извести), был бы мк между ПЗУ и ЦАПом проблем бы не было.
для пожарки сильно большая ПЗУ нет?
ampersant на форуме   Ответить с цитированием
Старый 28.06.2017, 14:17   #8
YarPv14
Member
 
Регистрация: 05.08.2015
Возраст: 35
Сообщений: 37
Вес репутации: 206/11
YarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura about
По умолчанию Re: wav, 16 бит что-то не работает

Цитата:
Сообщение от ampersant Посмотреть сообщение
для пожарки сильно большая ПЗУ нет?
Да и как из 8 бит в 16 преобразуется?
пзу изначально 16 бит, wav-файл тоже, я его сгенерировал из mp3 конвертером, там можно было задать 16.
Про ПЗУ не понял.
YarPv14 вне форума   Ответить с цитированием
Старый 28.06.2017, 14:41   #9
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,318
Вес репутации: 4442/103
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: wav, 16 бит что-то не работает

Цитата:
Сообщение от YarPv14 Посмотреть сообщение
пзу изначально 16 бит, wav-файл тоже, я его сгенерировал из mp3 конвертером, там можно было задать 16.
Про ПЗУ не понял.
кстати для wav->.b прога сразу отрезает не звуковые данные перед звуковыми.
ampersant на форуме   Ответить с цитированием
Старый 29.06.2017, 07:57   #10
YarPv14
Member
 
Регистрация: 05.08.2015
Возраст: 35
Сообщений: 37
Вес репутации: 206/11
YarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura about
По умолчанию Re: wav, 16 бит что-то не работает

Попробовал программу, конвертирует, но не понял куда она сохраняет сконвертированный файл.
YarPv14 вне форума   Ответить с цитированием
Старый 29.06.2017, 09:12   #11
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,318
Вес репутации: 4442/103
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: wav, 16 бит что-то не работает

Цитата:
Сообщение от YarPv14 Посмотреть сообщение
Попробовал программу, конвертирует, но не понял куда она сохраняет сконвертированный файл.
в туже папку
ampersant на форуме   Ответить с цитированием
Старый 30.06.2017, 12:18   #12
YarPv14
Member
 
Регистрация: 05.08.2015
Возраст: 35
Сообщений: 37
Вес репутации: 206/11
YarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura about
По умолчанию Re: wav, 16 бит что-то не работает

Цитата:
Сообщение от ampersant Посмотреть сообщение
Поробуй вот это.
Благодаря Вашей программе мой блок наконец-то заработал .
Субъективно каких-либо искажений я не заметил.

К сожалению, не могу добавить репутацию, но потом обязательно добавлю.


Единственно, что для меня не совcем ясно:
В моём блоке ЦАП работает по такой формуле U=(CODE/32768 - 1)Uref

Допустим, есть линейно спадающий сигнал от U+ до U-, в знаковом представлении wav-файла в этом случае код будет меняться так:
32767, 32766, ... , 0, 32769, 32770, ... , 65535

Естественно, при таком изменении кода напряжение на выходе ЦАП не будет соответствовать линейно спадающему, оно начнёт с ~0, затем упадёт до U- (код 0), прыгнет до 0, затем будет расти до U+.

После инверсии старшего бита:
65535, 65534, ... , 32768, 1, 2, ... , 32767,
т.е. сначала сигнал будет падать правильно от U+ до 0, затем ступенькой нарастёт до U- и будет плавно падать до 0.

По идее, при такой обработке wav файла, это должно приводить к искажениям, но повторюсь, сколько-нибудь существенных искажений я не заметил, честно говоря, вообще не заметил, причём прослушивал на в принципе неплохие наушники. Вот, не пойму почему так, или вся существенная информация была сосредоточена в положительной области?

Последний раз редактировалось YarPv14; 30.06.2017 в 12:24.
YarPv14 вне форума   Ответить с цитированием
Старый 30.06.2017, 13:06   #13
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,318
Вес репутации: 4442/103
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: wav, 16 бит что-то не работает

Цитата:
Сообщение от YarPv14 Посмотреть сообщение
Благодаря Вашей программе мой блок наконец-то заработал .
Субъективно каких-либо искажений я не заметил.

К сожалению, не могу добавить репутацию, но потом обязательно добавлю.


Единственно, что для меня не совcем ясно:
В моём блоке ЦАП работает по такой формуле U=(CODE/32768 - 1)Uref

Допустим, есть линейно спадающий сигнал от U+ до U-, в знаковом представлении wav-файла в этом случае код будет меняться так:
32767, 32766, ... , 0, 32769, 32770, ... , 65535

Естественно, при таком изменении кода напряжение на выходе ЦАП не будет соответствовать линейно спадающему, оно начнёт с ~0, затем упадёт до U- (код 0), прыгнет до 0, затем будет расти до U+.

После инверсии старшего бита:
65535, 65534, ... , 32768, 1, 2, ... , 32767,
т.е. сначала сигнал будет падать правильно от U+ до 0, затем ступенькой нарастёт до U- и будет плавно падать до 0.

По идее, при такой обработке wav файла, это должно приводить к искажениям, но повторюсь, сколько-нибудь существенных искажений я не заметил, честно говоря, вообще не заметил, причём прослушивал на в принципе неплохие наушники. Вот, не пойму почему так, или вся существенная информация была сосредоточена в положительной области?

PCM 16 бит из минусов в плюсы:

0x8000, 0x8001 ... 0xFFFF, 0x0000, 0x0001 ... 0x7FFF
после инверсии старшего бита
0x0000, 0x0001 ... 0x7FFF, 0x8000, 0x8001 ... 0xFFFF
ampersant на форуме   Ответить с цитированием
Старый 30.06.2017, 14:02   #14
YarPv14
Member
 
Регистрация: 05.08.2015
Возраст: 35
Сообщений: 37
Вес репутации: 206/11
YarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura about
По умолчанию Re: wav, 16 бит что-то не работает

Цитата:
Сообщение от ampersant Посмотреть сообщение
PCM 16 бит из минусов в плюсы:

0x8000, 0x8001 ... 0xFFFF, 0x0000, 0x0001 ... 0x7FFF
Что-то я туплю:
если идём с минуса на плюс, то ведь должно быть -1, 0, но ведь -1 должно быть 1000000000000001 (0x8001), почему FFFF?
YarPv14 вне форума   Ответить с цитированием
Старый 30.06.2017, 14:10   #15
YarPv14
Member
 
Регистрация: 05.08.2015
Возраст: 35
Сообщений: 37
Вес репутации: 206/11
YarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura aboutYarPv14 has a spectacular aura about
По умолчанию Re: wav, 16 бит что-то не работает

Цитата:
Сообщение от YarPv14 Посмотреть сообщение
Что-то я туплю:
если идём с минуса на плюс, то ведь должно быть -1, 0, но ведь -1 должно быть 1000000000000001 (0x8001), почему FFFF?
Блин, реально туплю. Ведь для представления отрицательных чисел используют дополнительный код.
Всё разобрался! Всем спасибо!
YarPv14 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает LCD 1602 Yevgeniy_F Вопросы начинающих 73 08.05.2015 00:57
Многофункциональные часы. Н.Заяц.Книга 4. samko Вопросы начинающих 11 12.06.2012 09:26
Имитатор DS18B20 Filya44 Вопросы начинающих 14 12.03.2012 17:39
Помогите с ЖКИ TIC154 Odium Продукция MICROCHIP 48 04.05.2011 19:46


Часовой пояс GMT +3, время: 18:06.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot