Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсчёт ипульсов 
:(
    Опции темы
m31
Дата 20.11.2008, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



Со звуковой карты считывается входящий сигнал. Пока я данные записываю просто в файл и параллельно строю график. На графике выходит вот такая вот картинка:
user posted image
У меня сейчас возникла проблема, а как подсчитать количество этих импульсов за какой-то определённый промежуток времени... например считать через каждые 1с?
Кто что может посоветовать? 
PM MAIL   Вверх
xvr
Дата 20.11.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(m31 @ 20.11.2008,  12:13)
Со звуковой карты считывается входящий сигнал. Пока я данные записываю просто в файл и параллельно строю график. На графике выходит вот такая вот картинка:
user posted image
У меня сейчас возникла проблема, а как подсчитать количество этих импульсов за какой-то определённый промежуток времени... например считать через каждые 1с?
Кто что может посоветовать?

Можно посоветовать брать и считать  smile Можно поточнее об импульсах :
  •  Средняя линия - это 0 или нечто большее (импульсы однополярные или биполярные)?
  •  Амплитуда импульсов может менятся или она более менее фиксированна?
  •  Длительность и частота импульсов может менятся или она более менее фиксированна?
В общем можно пропустить импульсы через програмный компаратор с гистерезисом и посчитать количество переходов 0->1 на его выходе за 1с. (1с - это F отсчетов, где F - частота дискретизации в герцах)

PM MAIL   Вверх
m31
Дата 20.11.2008, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



Цитата(xvr @  20.11.2008,  16:01 Найти цитируемый пост)
 Средняя линия - это 0 или нечто большее (импульсы однополярные или биполярные)?

Линия по центру это чуть ниже 0, но думаю на ноль удасца вывести, но пока оно ниже...

Цитата(xvr @  20.11.2008,  16:01 Найти цитируемый пост)
 Амплитуда импульсов может менятся или она более менее фиксированна?

может меняться(

Цитата(xvr @  20.11.2008,  16:01 Найти цитируемый пост)
 Длительность и частота импульсов может менятся или она более менее фиксированна?

частота со временем может изменяться...
PM MAIL   Вверх
xvr
Дата 20.11.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(m31 @ 20.11.2008,  18:41)
Цитата(xvr @  20.11.2008,  16:01 Найти цитируемый пост)
 Средняя линия - это 0 или нечто большее (импульсы однополярные или биполярные)?

Линия по центру это чуть ниже 0, но думаю на ноль удасца вывести, но пока оно ниже...

Цитата(xvr @  20.11.2008,  16:01 Найти цитируемый пост)
 Амплитуда импульсов может менятся или она более менее фиксированна?

может меняться(

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

PM MAIL   Вверх
m31
Дата 20.11.2008, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



Цитата(xvr @  20.11.2008,  20:27 Найти цитируемый пост)
Если есть гарантированная минимальная амплитуда положительных и отрицательных импульсов - то компаратор с гистерезисом проблему решит, если нет - то придется делать более сложный анализ

в принципе можно попробовать сделать гарантированную, но она всёравно чего-то синусоидальную форму имеет при большой частоте импульсов(это я об амплитуде положительных и отрицательных импульсов ). Если даже присмотреться, на рисунке что я показал, уже видно...
Что можешь посоветовать? как читать куда копать? 
PM MAIL   Вверх
xvr
Дата 21.11.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(m31 @ 20.11.2008,  20:34)
Цитата(xvr @  20.11.2008,  20:27 Найти цитируемый пост)
Если есть гарантированная минимальная амплитуда положительных и отрицательных импульсов - то компаратор с гистерезисом проблему решит, если нет - то придется делать более сложный анализ

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

Главное, что бы были 2 гарантированных порога (по амплитуде), тогда можно сделать приблизительно так:
Код

int state=-1;
int pulse_count=0;
int total_count=0;

const int LoLimit = -100; // Нижний порог
const int HiLimit = 100; // Верхний порог
const int SamplFreq = 44000; // Частота дискретизации

// Через эту процедуру будет происходить вывод результатов
extern void SendPulseCount(int pulse_count_for_1sec);

// Процедуру add_sample вызывать для каждого отсчета с звуковой карты
void add_sample(int value)
{
 bool prev_is_0 = (state==0);
 if (val<LoLimit) state=0; else
 if (val>HiLimit) state=1;
 ++total_count;
 if (prev_is_0 && state==1) ++pulse_count;
 if (total_count>=SamplFreq)
  {
   SendPulseCount(pulse_count);
   total_count=pulse_count=0;
  }
}

PM MAIL   Вверх
J0ker
Дата 21.11.2008, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



если нужна частота то лучше пойти по пути математики и использовать быстрое преобразование Фурье


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1037 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.