Я написал программу, которая выполняет следующие действия.
1.генерация дискретной выборки сигнала с заданными параметрами.
2.инициализация доступного аудио устройства ввода-вывода.
3.заполнение буфера устройства вывода выборкой, сформированной на этапе 1 и запуск устройства вывода на непрерывную цыклическую выдачу сигнала из буфера. (этот сигнал является входным для некоторого физического объекта)
4. Раз в 100 мс (интервал задается таймером) выборка заданного размера с аудио устройства ввода подключенного к выходу физического объекта.
5. обработка выборки и выдача результата
6 -> этап 4.
Вопрос. Я хочу теперь написать симулятор реального физического объекта. Вся его физика мне известна.
Симулятор должен редставлять собой программу на вход которой подается сигнал из этапа 3 моей программы а выход симулятора подается на вход мой программы в этапе 4. Как это сделать?
Заранее спасибо.
Всех с наступающим.
Несколько уточняющих вопросов:
1. Существенно ли предварительное запихивание выборки в
аудио-устройство? Не проще ли подавать её на симулятор прямо в процессе
генерации (или после генерации, но без устройства, просто по таймеру)?
2. Существенно ли реальное время? Не проще ли моделировать процесс
непрерывно, приписывая отсчётам любые нужные моменты времени?
3. Каково физическое устройство? Логическая схема или аналоговая?
oviferous wrote:
> Я написал программу, которая выполняет следующие действия.
> 1.генерация дискретной выборки сигнала с заданными параметрами.
> 2.инициализация доступного аудио устройства ввода-вывода.
> 3.заполнение буфера устройства вывода выборкой, сформированной на этапе 1 и запуск устройства вывода на непрерывную цыклическую выдачу сигнала из буфера. (этот сигнал является входным для некоторого физического объекта)
> 4. Раз в 100 мс (интервал задается таймером) выборка заданного размера с аудио устройства ввода подключенного к выходу физического объекта.
> 5. обработка выборки и выдача результата
> 6 -> этап 4.
>
> Вопрос. Я хочу теперь написать симулятор реального физического объекта. Вся его физика мне известна.
> Симулятор должен редставлять собой программу на вход которой подается сигнал из этапа 3 моей программы а выход симулятора подается на вход мой программы в этапе 4. Как это сделать?
> Posted via RSDN NNTP Server 1.9 delta
А что мешает пойти наиболее очевидным путём: реализовать функцию F(x),
преобразующую входной отсчёт в реультат работы "физического устройства"
и вычислять её значение для каждого отсчёта хоть по таймеру, хоть сразу
после генерации?
Posted via RSDN NNTP Server 1.9 delta
oviferous wrote:
> TB>1. Существенно ли предварительное запихивание выборки в
> TB>аудио-устройство? Не проще ли подавать её на симулятор прямо в процессе
> TB>генерации (или после генерации, но без устройства, просто по таймеру)?
> Да, верно, проще.
> TB>2. Существенно ли реальное время? Не проще ли моделировать процесс
> TB>непрерывно, приписывая отсчётам любые нужные моменты времени?
> Не вполне понял смысл сказанного этого вопроса. Реальное время — это один шаг симуляции в 100 мс.
Собственно, этот вопрос вытекает из предыдущего. Если полученные данные
используются, скажем, для управления каким-то процессом — интервал в 100
мс важен. Если нужно по ним построить график — зачем вводить задержку?
Сразу всё обсчитать, зная, что первый отсчёт — 0, второй — 100 мс и т.д.
> TB>3. Каково физическое устройство? Логическая схема или аналоговая?
> Устройство — физическое. Рельный объект.
Если принцип работы устройства неизвестен — смоделировать его не
удастся. Если известен — строится мат. модель (допустим, решение системы
диф. уравнений), которая по входному значению рассчитывает выходное. Вот
и всё

Posted via RSDN NNTP Server 1.9 delta