2015-07-19 2 views
-2

Светодиод мигает на частоте f.Алгоритм для расчета эффективного периода воздействия датчика

датчик закрыт в waitingPeriod и открыт во время exposurePeriod получить свет от светодиода.

enter image description here

Предположим, что индикатор Включена с самого начала. Как рассчитать эффективный период воздействия датчика, то есть период, когда датчик открыт и светодиод включен.

(Я использую Matlab, но псевдо код в порядке).

Спасибо!

+0

взглядами этой схемы, я бы сказал, что ответ: 'effective_exposure_period_of_sensor = 1/f'. Это то, о чем вы спрашивали? Если нет, вам может потребоваться разъяснить вопрос. – Alan

+0

Конечно, нет. Частота f светодиода, период ожидания и период экспозиции датчика являются переменными, а не константами. –

+0

@Alan: что, если я сокращу период ожидания или увеличу период экспозиции, или увеличьте частоту (обратите внимание, что светодиод продолжает мигать) –

ответ

2

Вот подход с использованием встроенных функций (обработка сигналов Toolbox) для создания сигналов. T_eff - результат, который вы ищете.

f = 5;       % Frequency of LED in Hz 
T_init = 0.15;     % initialization time (waiting) in s 
T_exp = 1;      % exposure period in s 

LED = @(t) 0.5*square(2*pi*f*t)+0.5; 
Sensor = @(t) rectpuls(t-T_init-T_exp/2,T_exp); 

T_eff = integral(@(s)(LED(s).*Sensor(s)),0,T_init+T_exp) 

Чтобы проверить результат, мы можем построить данные и сравнить его:

t = linspace(0,1.5,1000); 
figure; hold on; 
plot(t,LED(t)) 
plot(t,Sensor(t)) 

result

+0

это блестящий. Большое спасибо за Вашу помощь. –

+0

@JamesDo: Добро пожаловать. Даниэль был немного быстрее и опубликовал свой отредактированный ответ, поскольку я почти закончил с моим. – Matt

2

Пусть led (t) - это функция, которая равна 1, когда светодиод включен и 0 в противном случае. Пусть s (t) - функция, которая равна 1, когда датчик включен, и 0 в противном случае. Произведение функции ee (t): = led (t) * s (t) определяет периоды воздействия эффектов. Интегралом от ee (t) является полное эффективное время воздействия.

Некоторые примеры кода:

f=2 
waiting=13 
exposure=42 
[email protected](t)(mod(floor(t*f),2)==1); 
[email protected](t)(t>waiting&t<waiting+exposure); 
[email protected](t)(s(t).*led(t)); 
q = integral(ee,0,inf); 
+0

Спасибо @ Даниэль, я нашел ответ, связанный с пересечением ареала. Я определяю диапазон, в котором светодиод включен и пересекается с диапазоном экспозиции датчика. Интегралом от диапазона результатов является общее время экспозиции. Ваше решение интересно. Но мне интересно, как я могу определить или создать эти функции s (t) и ed (t) в Matlab. –

+0

@JamesDo Добавлен код. – Daniel

+0

Большое спасибо @ Daniel ^.^ –

Смежные вопросы