• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

TB-03F TLSR8253 - кто-нибудь пробовал "звуковые" возможности?

pvvx

Активный участник сообщества
результаты тестирования задержки в BLE-Mesh при малом числе прыжков и малом пакете
..
Как видим задержка более 30 msec.
У WiFi типичная в 102.4 ms и что? А для спящих устройств надо помножить на N (обычно от 2-х до 5).
Для MESH там ещё хуже.
А для автономного, в режиме deepsleep - от 2-х до 20 сек (пока он там проснется и соединиться с AP WiFi, согласует соединение и шифрацию с cloud)
По данным тестирования сетей с разными протоколами ведущих фирм-производителей чипов, самая медленная сеть на основе протокола BLE.
Пропускная способность BLE-Mesh практически не зависит от числа узлов и составляет примерно 2-3 кб/с.
Для одного каскада датчиков (включенных в шеренгу устройств BLE) не требуется передача более 10 байт в сек.
Датчик активации, например геркон на двери, передает пачку реклам (часто 16..32 шт) с периодом в 10..20 мs, а прием первой происходит через 2..4 ms после переключения геркона.
 

aloika

Active member
Из идей: надо бы попробовать несжатый звук передать (но хватит ли пропуской способности, не знаю) - проверить, не сжатие ли это влияет.
Попробовал. Несжатый звук передается (16 кбит / сек), пропускной способности хватает. Белый шум, про который я писал - присутствует. Так что не в сжатии дело.

В Audacity есть такая штука - удаление шума. Нужно указать кусочек шума (шумной тишины) и шум вычтется из сигнала. Довольно качественно получается. Вот бы такое сделать в реальном времени. Интересно, есть что-нить готовое, написанное на эту тему? Чтобы просто применить. (Я когда-то очень давно писал что-то такое, там были вейвлеты, работало неплохо. Но я уже ниче не помню оттуда, хочется готовое найти.)
 

pvvx

Активный участник сообщества
В Audacity есть такая штука - удаление шума. Нужно указать кусочек шума (шумной тишины) и шум вычтется из сигнала. Довольно качественно получается. Вот бы такое сделать в реальном времени. Интересно, есть что-нить готовое, написанное на эту тему? Чтобы просто применить. (Я когда-то очень давно писал что-то такое, там были вейвлеты, работало неплохо. Но я уже ниче не помню оттуда, хочется готовое найти.)
Так-же уже давно, последний раз наверно более 15 лет как, занимался этими "звуковыми" и прочей обработкой ADC...
Расширение/сжатие по дин.диапазону типа Dolby sound наверно спасет :)
 

pvvx

Активный участник сообщества
Попробовал. Несжатый звук передается (16 кбит / сек), пропускной способности хватает. Белый шум, про который я писал - присутствует. Так что не в сжатии дело.
А передискретизацию на входе и цифровую фильтрацию с децимацией которая есть в чипе аппаратная не пробовали?
 

aloika

Active member
А передискретизацию на входе и цифровую фильтрацию с децимацией которая есть в чипе аппаратная не пробовали?
Функция инициализации микрофона:

C:
void audio_dmic_init(AudioRate_Typedef Audio_Rate)
{
    //alc mode select digital mode
    reg_aud_alc_cfg &= ~FLD_AUD_ALC_ANALOG_MODE_EN;

    //alc left channel select manual regulate, and set volume 0x28
    reg_aud_alc_vol_l_chn = MASK_VAL( FLD_AUD_ALC_MIN_VOLUME_IN_DIGITAL_MODE,  0x028, \
                                      FLD_AUD_ALC_DIGITAL_MODE_AUTO_REGULATE_EN, 0);

    //1. Dfifo setting
    reg_clk_en2 |= FLD_CLK2_DFIFO_EN; //enable dfifo clock, this will be initialed in cpu_wakeup_int()
    reg_dfifo_mode = FLD_AUD_DFIFO0_IN | FLD_AUD_DFIFO0_L_INT;

    //2. dmic input, dmic_0_data rising edge, mono mode, enable decimation filter
    reg_dfifo_ain =       MASK_VAL( FLD_AUD_DMIC0_DATA_IN_RISING_EDGE,    AUDIO_DMIC_DATA_IN_RISING_EDGE,\
                                    FLD_AUD_INPUT_SELECT,                 AUDIO_INPUT_DMIC, \
                                    FLD_AUD_INPUT_MONO_MODE,             1, \
                                    FLD_AUD_DECIMATION_FILTER_BYPASS,     0, \
                                    FLD_AUD_DMIC_RISING_EDGE_BYPASS  ,    0, \
                                    FLD_AUD_DMIC_FALLING_EDGE_BYPASS ,    1);

    reg_dfifo_dec_ratio = DMIC_CIC_Rate[Audio_Rate];//by minghai.duan 2019.7.24

    ////////////////////////////// ALC HPF LPF setting /////////////////////////////////
    //enable hpf, enable lpf, anable alc, disable double_down_sampling
    reg_aud_alc_hpf_lpf_ctrl = MASK_VAL( FLD_AUD_IN_HPF_SFT,  0x0f,   //different pcb may set different value.
                                           FLD_AUD_IN_HPF_BYPASS, 0, \
                                           FLD_AUD_IN_ALC_BYPASS, 1, \
                                           FLD_AUD_IN_LPF_BYPASS, 0, \
                                           FLD_DOUBLE_DOWN_SAMPLING_ON, 1);
    /*******1.Dmic setting for audio input**************************/
    reg_audio_ctrl = AUDIO_OUTPUT_OFF;


    audio_set_dmic_clk(0x89,0xD3);     //48M * 0x09 / 0xD3 = 2.047393M
//    audio_set_dmic_clk(0x0f,0xD3);     //48M * 0x09 / 0xD3 = 2.047393M
}

Я там почти всё "покрутил"... не особо лучше стало по сравнению с тем, что и так в SDK было. Так вот оставил.
 

nikolz

Well-known member
посмотрите про свертку частот и поставьте аналоговый фильтр.
 

nikolz

Well-known member
Я там почти всё "покрутил"... не особо лучше стало по сравнению с тем, что и так в SDK было. Так вот оставил.
Чтобы определить источник "белого" шума
надо сделать два эксперимента:
1) В исходнике TLSR вместо сигнала с микрофона подать нулевые данные. Если шум не изменится , то аналог-цифра TLSR не есть источник шума.
2) Сигнал на выходе аналога приемной части посмотреть на осциллографе с полосой много больше частоты дискретизации звука.
Если Вы не увидите ступеньки с частотой дискретизации звука, то источник не цифра-аналог приемной части.
---------------
В зависимости от результатов экспериментов можно определить способ устранения шума
 

nikolz

Well-known member
если есть осциллограф с широкой полосой, то посмотрите длительность импульсов шума.
Если они меньше кванта дискретизации звука, то этот шум не связан с преобразованием звука а вызван исключительно шумом окружения
Бороться с ним можно лишь аналоговыми методами, т е установка фильтров перед наушниками, в импульсных блоках питания,
либо сменой модулей приемной (передающей) части на более качественные
либо выкидыванием протокола BLE.
 

aloika

Active member
1) В исходнике TLSR вместо сигнала с микрофона подать нулевые данные. Если шум не изменится , то аналог-цифра TLSR не есть источник шума.
Подавал нулевые данные, также пробовал пилу и треугольник (как синусоиду запрограммировать, с ходу не сообразил). Никаких шумов, всё идеально передается.
 

nikolz

Well-known member
Подавал нулевые данные, также пробовал пилу и треугольник (как синусоиду запрограммировать, с ходу не сообразил). Никаких шумов, всё идеально передается.
тогда надо сделать тест с к.з. на входе микрофона и минимальным коэффициентом усиления PGA.
если шум уменьшится, то тест с кз и максимальным усилением PGA
 

nikolz

Well-known member
можете картинку сигнала подробнее показать.
предположу, что у Вас ошибка ввода данных
т е это не шум, а сбой в данных.
 

aloika

Active member
тогда надо сделать тест с к.з. на входе микрофона и минимальным коэффициентом усиления PGA.
если шум уменьшится, то тест с кз и максимальным усилением PGA
Это PDM-микрофон, не аналоговый. Тут КЗ делать не очень-то сподручно. Равно, как и некуда ставить аналоговый фильтр.
 

aloika

Active member

nikolz

Well-known member
Да, с таким микрофоном и пробовал. Потом с другим такого же принципа. Там некуда ставить аналоговый фильтр, как предлагает nikolz.
аналоговый фильтр я предлагал не на входе, а на выходе.
можете показать картинку с выводов микрофона.
----------------
У TLSR есть режим управления фронтом по которому считываются данные.
Возможно там ошибка.
------------------------------
Полагаю что у Вас просто сбой ввода данных и это не шум а импульсы пропуска данных.
Надо смотреть параметры этих импульсов.
 

nikolz

Well-known member
вот здесь есть картинка сигнала. посмотрите качество и сравните с Вашим.
1644037434413.png
 

nikolz

Well-known member
вот здесь можете ознакомится с фильтрацией шума после цифрового микрофона.
 

pvvx

Активный участник сообщества
вот здесь есть картинка сигнала. посмотрите качество и сравните с Вашим.
Как в бочке и с присвистывыванием.
 
Сверху Снизу