|
|
|
|
Перезалил метр на хостинг. При включенном виндовс медиа плеере метр должен записывать и показывать результат на экране. При выключенном виндовс медиа плеере метр должен останавливаться (в момент отлипания кнопки "Запустить Измерение") с ошибкой 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. Но эти алгоритмы не классические, а самодельные (там авторы указываются) и дают результат не такой, как в матлабе. Авторы этих алгоритмов решили их усовершенствовать и получается на выходе сразу амплитуда. Вобщем, всё хорошо, лишние знания не помешают.
|
|
|
|
|