Свежие обсуждения
Измерения

Одновременный LC метр на звуковой карте

1 4 15

Перезалил метр на хостинг.
При включенном виндовс медиа плеере метр должен записывать и показывать
результат на экране. При выключенном виндовс медиа плеере метр
должен останавливаться (в момент отлипания кнопки "Запустить Измерение")
с ошибкой RUNTIME ERROR. Если не останавливается, значит у вас супер
виндовс, которая не лезет лишний раз к звуковой карте во время её
использования. (Не забудьте выбрать источник записи, MIX например.
Через внешний кабель тоже записывает).
Теперь дело за БПФ. Если заработает, следующий файл метра должен уже
что-то измерять.

 

Осечка вышла. С комплексными числами в С++ туго. В моих книжках о них
вообще не упоминается. Делаю перерыв для накопления необходимых
знаний и поиска готовых библиотек для комплексных чисел на С++.

 

Михалыч А: для замены матлабовского метра, который ужасно долго емкость индуктивности измеряет.
Михалыч А: С комплексными числами в С++ туго

в RLC-2 на ассемблере программировали, и вся "математика" уместилась в несколько байт "натуральных чисел"(влезет в кэш процессора).
...что-то вы перемудрили... или ещё один "матлаб" пишете. ;)

 

Так в RLC-2 синхронный детектор для косинуса (реал) и для синуса (имаг). Там нет быстрого преобразования фурье. А в звуковой карте нет синхронного детектора. Напряжение можно или БПФ-ом измерять или по двум-трем точкам синусоиды. Но для "точечного" измерения синусоида должна быть ровной, без модуляции, а у меня две звуковых карты и обе при записи звук амплитудно (частотнозависимо) модулируют.
Для алгоритма БПФ нужны комплексные фазовые коэффициенты, для комплексных чисел нужна своя математика. И в "голом" С++ просто нет такого типа данных - комплексное double число.
Но ничего страшного, всё заработает как часы.

 

А можно полюбопытствовать -- зачем вам быстрое преобразование Жана Батистовича?
И что значит термин "Одновременный" в названии темы?

 

Ну не знаю, такие вопросы...
Мне где-то нужно взять напряжение и ток, поделить напряжение на ток, и чтобы при этом импеданс в комплексном виде получился. Фурье работает как частотомер, амперметр, вольтметр, ваттметр.
На куметре можно за два раза измерить индуктивность катушки и емкость катушки, а мой метр решает (пока только в матлабе) две системы уравнений и за один раз (единовременно) выдаёт два параметра L и C.

 

Михалыч А: Мне где-то нужно взять напряжение и ток, поделить напряжение на ток, и чтобы при этом импеданс в комплексном виде получился. Фурье работает как частотомер, амперметр, вольтметр, ваттметр.
Допустим напряжение вы измеряете на левом канале а ток вы измеряете на правом канале звуковой карты.
Амплитудное значение напряжения делённое на амплитудное значение тока равно модулю комплексного сопротивления, разница во времени между амплитудами тока и напряжения есть угол, через который находится реальная и мнимая часть полного сопротивления. Думаю у вас нет особых проблем найти время между двумя сигналами и перевести в угол...
Re Z=(Ua/Ia)*cos(k)
Im Z=(Ua/Ia)*sin(k)
k=f*360*(время между током и напряжением)
Вот и вся арифметика...

 

Если есть амплитудная модуляция, эта арифметика даёт нестабильные, бредовые местами, результаты.

 

Михалыч А: Если есть амплитудная модуляция, эта арифметика даёт нестабильные, бредовые местами, результаты.
Усреднять несколько периодов с одинаковым условием начала и конца усреднения не пробовали?

 

Да нашел я уже готовые библиотеки и для комплексных чисел, и для фурье. Другое дело, если они будут со старым visual C++ 6.0 конфликтовать.
Два алгоритма БПФ с википедии уже запустил в visual C++ 6.0. Но эти алгоритмы не классические, а самодельные (там авторы указываются) и дают результат не такой, как в матлабе. Авторы этих алгоритмов решили их усовершенствовать и получается на выходе сразу амплитуда.
Вобщем, всё хорошо, лишние знания не помешают.