Как можно реализовать точное измерение в АЦП ардуино слабое переменное напряжение?

FAI4
Offline
Зарегистрирован: 23.09.2016

Хотим получить достоверные данные об АЧХ аппарата в диапазоне 20...20000

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

FAI4 пишет:
Примерно это будет выглядеть так:

1. Источник белого шума.

2. Измерение мгновенной амплитуды сигнала с частотой не ниже 60 кГц.

3. Программная обработка (быстрое преобразование Фурье)

4. Подстройка АЧХ (по итогам измерений) с помощью управляемых потенциометров.

Вопрос: какой источник "белого шума" проще всего реализовать?

1. Смотря, что для Вас "проще". Источник шума может быть либо аппаратным (например, стабилитрон), либо - программным. Во втором случае следует еще определиться, какой выход - двухуровневый или многоуровневый. В качестве первого можно использовать сдвиговый регистр, а второго - ГПСЧ.

2-3. Можно посмотреть здесь: http://arduino.ru/forum/proekty/konstruktsiya-vykhodnogo-dnya-prostoi-spektranalizator-480-polos-60-db-na-stm32f103-i-

4. Лично я этого не понял.

 

Но, если нам нужно снять АЧХ, то не проще ли по классике: перестраиваемый генератор синуса - исследуемое устройство - вольтметр переменного тока.

nik182
Offline
Зарегистрирован: 04.05.2015

Ну так как вариант stm32f303k8 в нано исполнении - на борту хорошие ЦАП и АЦП. ЦАПом генерим синус с необходимым шагом частоты  и амплитудой, АЦП измеряет выход. Получим сразу и АЧХ и фазовую характеристику да и затраты практически только на nucleo-F303K8 - на борту даже ОУ присутствуют. Скорости хватает на рисование красивых картинок при работе основного цикла. 

Alex_Mn
Offline
Зарегистрирован: 07.05.2021

видимо картинки и ненужны. нужно сразу в исследуемом аппарате и корректировать АЧХ. и на выходе одна лампочка с символом "готово"

FAI4
Offline
Зарегистрирован: 23.09.2016

Картинки не нужны

FAI4
Offline
Зарегистрирован: 23.09.2016

Ещё вопрос: насколько сложно сделать программный генератор белого шума?

nik182
Offline
Зарегистрирован: 04.05.2015

Что то Вы, батенька, не многословны. Объяснили бы зачем он нужен в поставленной задаче. Самый простой это вызов в цикле rnd. Вот только не знаю сколько времени тратиться на вызов rnd  и с какой частотой будет выдача результата. Контролируемую выдачу можно устроить выдавая массив заранее сгенерированных данных. Любой шум можно сгенерировать суммируя синусоиды с соответствующими амплитудами и с шагом по частоте выше чем частота последующей оцифровки. Для АЧХ через FFT идеальный вариант суммирование синусоид с частотами равными точно частотам гармоник FFT. После обработки с помощью FFT такого сигнала, получаем сразу точную картину АЧХ.    

FAI4
Offline
Зарегистрирован: 23.09.2016

Для калибровки магнитофона со сквозной каналом.
Там есть задержка по времени (вход/выход)

Поэтому прямой перебор частот наверное более затратен по времени.

Также есть влияние присутствие в спектре сигнала ВЧ составляющих на общий уровень тока подмагничивания
(ВЧ сигнал снижает общий уровень всех ВЧ)
Т.е. белый шум - это больше приближает к условиям реальной фонограммы, чем тест АЧХ отдельными частотами.

nik182
Offline
Зарегистрирован: 04.05.2015

Музыка совсем не белый шум. Там как раз светят отдельные гармоники на фоне общего не белого шума. Но Вам виднее.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

FAI4 пишет:
Для калибровки магнитофона со сквозной каналом.

Я калибровал ГКЧ+комп с аудиокартой.  Союз-110.  на 9.53 - 14000 19.05 - 22000Гц добил на Agfa лентах. 

Alex_Mn
Offline
Зарегистрирован: 07.05.2021

а калибровать будеш ток подмагничивания? то есть некий эксперемент как влияет на ачх, ток подмагничивания? или тест на ленты какие более правильные? интересно ленты еще имеются в продаже. хм...

весь мир избавился от лент, а тут "назад в будущее". интересная тема. очень интересно почитать некий взгляд из будущего в прошлое.

интересно как получится запись белого шума выше 60кгц.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Alex_Mn пишет:

а калибровать будеш ток подмагничивания? то есть некий эксперемент как влияет на ачх, ток подмагничивания? или тест на ленты какие более правильные? интересно ленты еще имеются в продаже. хм...

весь мир избавился от лент, а тут "назад в будущее". 

Не весь.  Я вот счас вот себе эту красавицу восстанавливаю. 

Правда, это будет "обманка"

Alex_Mn
Offline
Зарегистрирован: 07.05.2021

вау!!! если память не изменяет это приставка без УМЗЧ.

я вот лет пять назад выкинул последний антиквариат толи Илеть толи Союз

FAI4
Offline
Зарегистрирован: 23.09.2016

Калибровки предполагается:
1. Ток подмагничивания
2. Выравнивание АЧХ в канале запись- Воспроизведение.
(Здесь регулировкой тока подмагничивания не обойдётся, тк ток подмагничивания по сути выравнивания 2 точки АЧХ, например 400 Гц и 10 кГц. А там в реале больше "неровностей")
3. Регулировка тока записи (по контролю уровня гармоник)

По 1-3 возможно понадобиться оптимизация по нескольку раз (по кругу) с целью добиться максимпльно ровной АЧХ при минимальном Кг.
Т.к. все параметры взаимосвящаны между собой.

Т.е. ардуино будет регулировать все (кроме усилителя воспроизведения (УВ))

УВ - настраивается исключительно по измерительной ленте.
У меня они есть.

FAI4
Offline
Зарегистрирован: 23.09.2016

Те получается 3 возможных варианта тестового сигнала:

1. Последовательно измерять на гармонических сигналах последовательного ряда частот.
(Непрерывный свип сложнее потом "привязать" к конкретной частоте)

2. "Смесь" контрольных частот
(Хватит и 8 например)

3. Белый шум.

1 - долго измерять (тк нужны отдельные записи на ленте каждой частоты)

2 - хороший вариант.
Легче выделять за счёт FFT.
Здесь использование отдельных аппаратных фильтров - неэкономичное решение.

3. Нужен хороший генератор по ровному спектру.
Стабилитрон или программная реализация.
Выделение на выходе - FFT.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

FAI4 пишет:
Те получается 3 возможных варианта тестового сигнала:

1. Последовательно измерять на гармонических сигналах последовательного ряда частот. (Непрерывный свип сложнее потом "привязать" к конкретной частоте)

2. "Смесь" контрольных частот (Хватит и 8 например)

3. Белый шум.

1 - долго измерять (тк нужны отдельные записи на ленте каждой частоты)

2 - хороший вариант. Легче выделять за счёт FFT. Здесь использование отдельных аппаратных фильтров - неэкономичное решение.

3. Нужен хороший генератор по ровному спектру. Стабилитрон или программная реализация. Выделение на выходе - FFT.

Я вот уже на протяжении нескольких лет тоже думаю, не собрать ли мне АЧХомерт, только вот не могу придумать, зачем он мне может понадобиться. Аналоговый магнитофон я точно не собираюсь настраивать (хотя и имеется работоспособный аппарат и большая картонная коробка с катушками к нему). Последний раз он (АЧХометр) мог бы пригодиться, когда настраивал ПАС в колонках. Но там была другая проблема: если громкость большая, средняя или низкая - с ума от этих звуков сойдешь, а если очень низкая - появляется довольно существенный уровень помех. 

Теперь по поводу перечисленных выше вариантов:

1. Собственно, я так и делал. В моем случае плюс в том, что при наличии единственной частоты сигнал с выхода устройства можно пропустить через настроенный на ту же частоту фильтр и тем самым убрать значительную часть помех.

2. На мой взгляд, хорошее решение. Кстати, фильтры использовать не обязательно аппаратные. Можно и программные.

3. Да - проблема с хорошим генератором. По моему опыту random дает безобразный результат и добиться при его помощи точности в 0.3 дБ крайне сомнительно. Ну, либо выборка должна быть ОЧЕНЬ длинной. Но это, опять же - увеличение времени измерения. Аппаратно нужной точности тем более не добиться. Остается еще попытаться с генератором на сдвиговом регистре. Он имеет ряд серьезных преимуществ, но вот будет ли хорошо работать на коротких выборках (менее секунды), я не уверен.

Собственно, к БПФ те же требования: чтобы обеспечить 0.3 дБ выборку нужно будет делать не менее секунды. Минимальная разумная длина 65536 отсчетов. А это с учетом БПФ не менее 256-512к только на массивы. На каком контроллере это все планируется делать?

INHO наиболее приемлемым представляется генерировать несколько частот, а на входе использовать несколько программных фильтров.

nik182
Offline
Зарегистрирован: 04.05.2015

Собственно FFT и будет программным фильтром, если частоты в исходном файле будут точно равны гармоникам FFT. Количество точек тоже не критично. Всё зависит от шага, с которым надо иметь данные. Если 500 Гц устроит, то для диапазона 20 -20 000 достаточно 40 точек, но лучше конечно где-нибудь 1024 - точность выше. Шаг соответственно получится в районе 40 Гц. Для FFT не нужны секунды. Нужен период равный минимальной частоте - 20 Гц = 50мс. Можно конечно для улучшения статистики отфурьить несколько последовательных интервалов с перекрытием 50%, вот тогда можно подойти к секунде, Но это надо смотреть когда увеличение интервалов не будет приводить к существенному изменению результата.    

FAI4
Offline
Зарегистрирован: 23.09.2016

Достаточно например не более 10 точек, тк все равно не будет такого числа аппаратных фильтров по подстройке АЧХ.

здесь скорее понадобиться парочку аппаратных фильтров, которые можно программно перепрограммировать по частоте и амплитуде.
Этого вполне хватит для подстрйки АЧХ магнитофона.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

nik182 пишет:

Собственно FFT и будет программным фильтром, если частоты в исходном файле будут точно равны гармоникам FFT.

В том то и проблема, что тогда придется выбирать не те частоты, которые нужны, а те, которые даст БПФ.

Цитата:

Количество точек тоже не критично. Всё зависит от шага, с которым надо иметь данные. Если 500 Гц устроит, то для диапазона 20 -20 000 достаточно 40 точек,

20 Гц с шагом 500 Гц? Серьезно?

Цитата:

но лучше конечно где-нибудь 1024 - точность выше. Шаг соответственно получится в районе 40 Гц. Для FFT не нужны секунды. Нужен период равный минимальной частоте - 20 Гц = 50мс.

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

Цитата:

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

Прежде, чем "смотреть", неплохо бы хотя бы немножко "посчитать". Зачем тратить время на экспериментальную проверку заведомо провальных гипотез?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

FAI4 пишет:
Достаточно например не более 10 точек, тк все равно не будет такого числа аппаратных фильтров по подстройке АЧХ. здесь скорее понадобиться парочку аппаратных фильтров, которые можно программно перепрограммировать по частоте и амплитуде. Этого вполне хватит для подстрйки АЧХ магнитофона.

1. Почему не хотите посмотреть в сторону программных фильтров? В проекте http://arduino.ru/forum/proekty/analog-analogovogo-sintezatora у меня в реальном времени рассчитывается сигнал музыкального синтезатора, в который входит 3 блока, состоящих из VCO+VCF+VCA, а также 3 генератора ADSR, 2 LFO и расчет перестройки каждого из трех VCF. Причем, все это делается исключительно в 21-мкс прерываниях (48 кГц). Причем, в каждом из прерываний обсчитываются все три блока плюс что-нибудь из оставшихся (например, пересчет одного из VCF). Так что 6-8 фильтров, а может и больше, я думаю, потянет.

2. Если все-таки отдать предпочтение аппаратным фильтрам, могу порекомендовать MAX261. Я их использовал в двух проектах и вполне ими доволен.

rkit
Offline
Зарегистрирован: 23.11.2016

andriano пишет:

Прежде, чем "смотреть", неплохо бы хотя бы немножко "посчитать". Зачем тратить время на экспериментальную проверку заведомо провальных гипотез?
 

Зачем ты тратишь время на проверку заведомо провальной гипотезы, что он что-то сделает?

FAI4
Offline
Зарегистрирован: 23.09.2016

"1. Почему не хотите посмотреть в сторону программных фильтров? "

Задача стоит так подстроить усилитель записи магнитофона (настройки получаются индивидуальные под каждую ленту), чтобы записанная фонограмма не имела потерь по качеству.

Чем здесь могут помочь синтезаторы звука?

Либо я не понял Вашей идеи.
Также не знаю что такое VCA VCO VCF...

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

FAI4 пишет:
Также не знаю что такое VCA VCO VCF...

В данном случае:

VCA - управляемый усилитель,

VCO - управляемый генератор,

VCF - управляемый фильтр.

FAI4 пишет:
Чем здесь могут помочь синтезаторы звука?

Ну, исключительно тем, что в них используются те же узлы, что могут оказаться полезными в Вашем проекте.

b707
Offline
Зарегистрирован: 26.05.2017

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

Наиболее известная - это msgeq7 , есть еще BA3834, Обе микросхемы представляют из себя 7-полосные частотные фильтры, выдающие результат в виде набора амплитуд по частотам. Путем несложных ухищрений частоты каналов можно сдвинуть, что позволяет из двух чипов построить 14-полосных эквалайзер.

Этакий аппаратный аналог FFT, но значительно (на мой взгляд) проще в использовании.

Я тут недавно 7-полосный эквалайзер на СТМ32 + ВА3834 собирал - оно вполне пригодное для работы.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

FAI4 пишет:
Задача стоит так подстроить усилитель записи магнитофона (настройки получаются индивидуальные под каждую ленту), чтобы записанная фонограмма не имела потерь по качеству.

И есть уверенность, что характеристики ленты не изменяются вдоль ленты?

Или исследуется вся лента, и подстройка параметров записи осуществляется под каждый метр?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

b707 пишет:

Если говорить о аппаратных вариантах... - это msgeq7 , есть еще BA3834, Обе микросхемы представляют из себя 7-полосные частотные фильтры, выдающие результат в виде набора амплитуд по частотам. Путем несложных ухищрений частоты каналов можно сдвинуть, что позволяет из двух чипов построить 14-полосных эквалайзер.

Я, конечно, не знаю, как себе ТС представляет работу нужного ему прибора, но подозреваю, что все 10 частот, о которых он говорит, могут находиться исключительно в одной-двух октавах. Поэтому 7-14 полос на весь звуковой диапазон может оказаться непозволительно мало.

Ну либо его заявки на 0.3 дБ взяты с потолка.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

rkit пишет:

Зачем ты тратишь время на проверку заведомо провальной гипотезы, что он что-то сделает?

А вдруг?

ВН
Offline
Зарегистрирован: 25.02.2016

FAI4 пишет:
Задача стоит так подстроить усилитель записи магнитофона (настройки получаются индивидуальные под каждую ленту), чтобы записанная фонограмма не имела потерь по качеству.

.. вот можно ж так поставить задачу, чтобы ее было максимально сложно сделать!

Правильный подход тут в том, чтобы сменить плохую задачу на хорошую, без потери качества. 

И тут очевидно, что какая есть потеря качества в ленте такая и останется, вопрос только в том  - ГДЕ компенсировать потерю качества.

т.е. предустанавливая искажения в записи, подразумевается что  при хранении лента никаких искажений не получит.

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

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

nik182
Offline
Зарегистрирован: 04.05.2015

andriano пишет:

nik182 пишет:

Собственно FFT и будет программным фильтром, если частоты в исходном файле будут точно равны гармоникам FFT.

В том то и проблема, что тогда придется выбирать не те частоты, которые нужны, а те, которые даст БПФ.

Это как раз не проблема, частоты FFT мы знаем. Генерим синусы этих частот. Можно не всех, а только тех, которые нужны. Если из 1024 сгенерить только 8 получим то и получим 8 точек характеристики в области частот которые хотим иметь. Если брать 1024 точки Фурье то шаг по частоте будет около 40 герц. Если Вам нужно 1000 а получится есть только 1018.3 насколько эта погрешность Вас расстроит?  

andriano пишет:

20 Гц с шагом 500 Гц? Серьезно?

От 20 до 22000 с шагом 500.

20, 520, 1020,1520,...... 22020 - посчитайте, всего будет 44.

andriano пишет:

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

Я не полагаю, я предлагаю посчитать и проверить физически.   

andriano пишет:

Прежде, чем "смотреть", неплохо бы хотя бы немножко "посчитать". Зачем тратить время на экспериментальную проверку заведомо провальных гипотез?

Я физик а не математик. Можете, посчитайте и покажите что я не прав, пока этот метод меня устраивал. 

FAI4
Offline
Зарегистрирован: 23.09.2016

При настройке АЧХ магнитофона используют 400 Гц как опорную частоту (она не затрагивает подстройкой коррекции АЧХ)

Как правило регулируют в области СЧ (3...8 кГц)
по горизонтали (меняется резонансная частота) и по вертикали (выравнивается амплитуда АЧХ в области СЧ)
Добротность невысокая, поэтому захватывают соседние частоты.

Вторая регулировка - в области самых верхних частот (18...25 кГц - смотря на что способны головки магнитофона)
Регулировка также "по горизонтали" и по вертикали.

И этого в принципе достаточно.

В области НЧ (ниже 400 Гц) ничего не подстраиваться.
Все задаётся тау RC-цепочки коррекции (=3180 мкс)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Вариант генератора шума на сдвиговом регистре:

bool random_16(void) {
	static uint16_t S = 0x0001;
	if (S & 1) {
		S = ((S ^ 0x100b) >> 1) | 0x8000;
		return 1;
	} else {
		S >>= 1;
		return 0;
	}
}

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Белый шум (если я не сильно запамятовал) делали на стабилитроне. 

FAI4
Offline
Зарегистрирован: 23.09.2016

BOOM пишет:

Белый шум (если я не сильно запамятовал) делали на стабилитроне. 

вопрос в том насколько он "белый"
( те выполняется ли равенство амплитуд во всем
диапазоне АЧХ)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

FAI4 пишет:
BOOM пишет:

Белый шум (если я не сильно запамятовал) делали на стабилитроне. 

вопрос в том насколько он "белый" ( те выполняется ли равенство амплитуд во всем диапазоне АЧХ)

О 0.3 дБ можешь и не мечтать.

(выше я приводил код для программного. Он подается на обычный цифровой пин.)

sadman41
Offline
Зарегистрирован: 19.10.2016

Кампутерный random же ПСЧ. Разве он может считаться истинным генератором шума?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

FAI4 пишет:
BOOM пишет:

Белый шум (если я не сильно запамятовал) делали на стабилитроне. 

вопрос в том насколько он "белый" ( те выполняется ли равенство амплитуд во всем диапазоне АЧХ)

интересно, а псофометричекий фильтр у вас имеется (чтобы мерить)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

sadman41 пишет:
Кампутерный random же ПСЧ. Разве он может считаться истинным генератором шума?

Нет в Мире совершенства!

Поэтому приходится выбирать: либо истинный, либо равномерный.

FAI4
Offline
Зарегистрирован: 23.09.2016

ua6em пишет:

FAI4 пишет:
BOOM пишет:

Белый шум (если я не сильно запамятовал) делали на стабилитроне. 

вопрос в том насколько он "белый" ( те выполняется ли равенство амплитуд во всем диапазоне АЧХ)

интересно, а псофометричекий фильтр у вас имеется (чтобы мерить)

БПФ легко покажет все содержимое.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

FAI4 пишет:
БПФ легко покажет все содержимое.
Да Вы, батенька, большой оптимист.

Интересно, с БПФ когда-нибудь раньше приходилось работать или только "чисто теоретически"?