咨询热线

18602170419

当前位置:首页  >  技术文章  >  筱晓上海光子的低成本DVS系统解决方案

筱晓上海光子的低成本DVS系统解决方案

更新时间:2022-12-12      点击次数:681

原文地址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


QQ图片20220713174017.jpg



QQ图片20220713174036.jpg



QQ图片20220713174050.jpg





QQ图片20220713174115.jpg


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