筱晓上海光子的低成本DVS系统解决方案
时间:2022-12-12 阅读:620
原文地址http://www.microphotons。。cn/index.php?a=nrinfo&id=884
系统所需器件
RIO激光器(5kHz): http://www.microphotons。。cn/?a=cpinfo&id=1230
可调光衰减器: http://www.microphotons。。cn/?a=cpinfo&id=854
SOA光放大器: http://www.microphotons。。cn/?a=cpinfo&id=1680
光环形器: http://www.microphotons。。cn/?a=cpinfo&id=259
20km单模光纤(传感器件)
索雷博光电探测器(内置放大模块)
14pin激光二极管驱动
信号发生器(调制SOA做光开关)
示波器(数据采集装置)
计算机(数据处理装置)
由于DVS对光源线宽的要求非常高,目前我们只有在RIO激光器中才能看到比较良好的传感效果,dense light(50kHz)或DFB nl(100kHz)激光器均无法观测到传感振动信号。
由于SOA种子光过大后脉冲性能不是很好,所以RIO输出后需要添加一个衰减器控制输入种子光功率在1mW(0dBm)左右,也可以可以稍微大一点,视SOA器件参数而定。
我们的SOA调制频率能达到40MHz,脉宽可达10ns,用于DVS是足够的。10ns理论上对应的传感精度是1m。
环形器可以换成50:50耦合器,只是功率会下降一点。
PD探测器选用索雷博的放大可调探测器(PDA10CS2),将内置的放大倍数调节至30dB档,可以看到明显的分布式散射信号了。
zui后对探测器的电压信号进行实时采集。AFG信号发生器同时分出一路触发信号给采集设备,实现同步采集。我们采用的是rigol示波器加matlab的方式进行采集。
2022/08/26
我们的DVS系统对比验证第一个是RIO的,第二个是LD-PD,25km光纤长度
RIO和LD-PD窄线宽激光器在DVS中的效果比对视频
RIO效果视频
LD-PD效果视频
2022/07/13
2022/02/15
添加了时间域单点振动判断的降噪DVS采集算法(matlab)
clear clc delete(instrfind)%清空连接端口 len = 100000;ave = 20;%单次判定 时间域采样次数tt=0.001;yu = 2;bil=1.1;offset=200; send = ':wav:data? CHANnel1';%发送指令读取通道1数据E = visa('ni','USB0::0x1AB1::0x0588::DS1ET184552667::INSTR');E.InputBufferSize = len;fopen(E);for j = 1:ave%两次采样正好隔ave次平均后相减, fprintf(E,send); pause(tt)[data,len]=fread(E,len);wavepre(:,j) = offset-data(12:len-1);endsubplot(2,1,1)p1=plot(wavepre(:,ave));axis([0 len 0 220])meanwav = bil*mean(wavepre,2)+yu;for j = 1:(ave - 1) errorpre(:,j) = F( ( wavepre(:,j) - meanwav).* ( wavepre(:,j+1) - meanwav));enderror = sum(errorpre,2);subplot(2,1,2)p2=plot(error);axis([0 len 0 ave])%for i = 1:100000 %采集次数i=1;while true% fprintf(E,':run');% fprintf(E,':stop'); % yu = mod(i-1,ave);%余数 fprintf(E,send); [data,len]=fread(E,len); wave = offset-data(12:len-1); set(p1,'YData',wave); error1 = F((wave -meanwav).*( wavepre(:,ave) - meanwav));%求差后归一化 errorpre = [ errorpre error1]; error = sum(errorpre,2);% error = (wave - wavepre(:,yu+1)); set(p2,'YData',error); title(i) drawnow i=1+i; pause(tt)errorpre(:,1) = [];wavepre(:,1) =[]; %迭代数据wavepre=[wavepre wave];meanwav = bil*mean(wavepre,2)+yu;endfclose(E);function y = F(x)x(x>0) =0;x(x<0)=1;y = x;end