2015-07-19 46 views
-2

LED以頻率閃爍f計算傳感器有效曝光時間的算法

傳感器閉合期間waitingPeriod和期間exposurePeriod打開以從LED接收光。

enter image description here

假設LED是從一開始就開啓。如何計算傳感器的有效曝光時間,即傳感器打開且LED打開的時間。

(我使用Matlab,但僞代碼是確定的)。

謝謝!

+0

通過該圖的外觀上來看,我想說的答案是:'effective_exposure_period_of_sensor = 1/f'。那是你問的嗎?如果不是,你可能需要澄清這個問題。 – Alan

+0

當然不是。 LED的頻率f,等待時間和傳感器的曝光時間是變量,而不是常數n。 –

+0

@Alan:如果我縮短等待時間,延長曝光時間,或者增加頻率(注意LED不停地閃爍) –

回答

2

下面是使用內置函數(信號處理工具箱)來創建的信號的方法。 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)成爲當LED導通時爲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

謝謝@Daniel,我找到了自己與範圍交叉點有關的答案。我定義LED打開的範圍並與傳感器曝光範圍相交。結果範圍的積分是總曝光時間。 您的解決方案很有趣。但我想知道如何在Matlab中定義或創建函數s(t)和ed(t)。 –

+0

@JamesDo增加了一些代碼。 – Daniel

+0

非常感謝你@Daniel ^。^ –