[ Main Page ]

Scilab 使用例 - ピーク検出と描画

video Head Impulse Test (vHIT)という検査のデータから波を抽出する。

データ

Otometrics ICS Impulse (Video Head Impulse Testing (vHIT))では、詳細データ出力モードで下記の様なデータが出力されるので、 csvTextScanで処理してコンマ毎に区切って配列とする。(サンプルデータ)

	Patient Name:,name,name

	Test Date,3/30/2018 3:18 PM
	Test Type,Lateral
	Impulse 1,Direction,Left
	,Gain,0.4837
	,Peak Velocity,218.3326
	,Eye,0.641704371383839,2.11709642219835,2.95768035360603,3.14182961672028,6.28835747649499,7.37158040607711,4.00230208459215,1.7021308211183,2.8245832594704,3.62934378384021,1.72937549781364,1.67960347721248,5.19181461233075,5.94618893822202,2.11115201875486,2.72683878440079,5.47940149649712,3.60743605142473,3.19221275380273,4.18161504439649,3.52209679583777,3.63795389767795,4.18368169203732,4.79855737920414,7.88416862355505,10.681749507384,12.4490855227451,17.1213028541785,21.1373016401545,24.2184959926384,31.6160802981424,40.9846036062875,46.4452969111572,48.2528330935939,48.3412680462614,46.9879603925118,45.3279795044368,41.6175787297347,36.9963166328313,32.7584981835162,28.9928224896296,29.0331745087497,29.9313646678466,28.384285362549,24.8054402001721,19.1706784962798,11.148045533721,1.87830098159119,-7.80931431166318,-20.4435403301736,-33.1525799791947,-39.4543234584555,-41.8422437490394,-39.509340700699,-27.6760899861732,13.4469777693756,102.405956367396,197.92924278509,254.895437232525,271.314813654067,260.299130646516,238.327836713582,212.421452136505,182.250747314058,148.467034024519,110.693680307856,67.4617543894508,31.4911757615623,18.2938916004473,22.1312899162427,33.1947832075468,43.4442541744162,48.6156923991415,55.2275183060556,61.8580168888182,61.5470625141709,55.6136900973409,49.7958285482117,48.1421259687465,46.2351064948336,40.0020446622756,33.3935546955584,29.9353621220405,29.3362073104107,29.0755593964792,28.5041785955512,25.9955356395107,22.3953542132698,30.4012036725804,60.9406723580074,108.813124463932,155.389517760235,174.79712157777,152.075949833141,97.081898949849,35.7080264792392,-6.7676840734254,-20.6822867640582,-16.4366418345787,-9.24266782174066,-4.42802533267634,-3.68507674081193,-6.6938289368372,-10.6332429632848,-13.13012996025,-11.5108788374957,-6.04949070665379,-1.95246659091632,-0.390996339861601,3.29196426333403,7.02825103982216,7.46943440895275,7.51391228541526,9.69462888935646,11.4446052228224,10.5802530508044,9.93311164984339,9.45165979633065,6.95652602123951,5.31479152957272,5.04669845661174,7.65402274455096,25.5006028683722,62.1840505199823,100.884752949736,118.026256443418,95.8153232238428,45.8909716082748,4.09190591604773,-12.6299339866024,-11.391938936127,-6.31306111657715,-5.391232066202,-4.29589858406043,-1.31664551003749,-1.35010506338922,-5.14157171094183,-6.95762415735826,-4.11805233701619,-2.24003170647214,-4.07719096738493,-5.85878715752107,-5.30843026196516,-3.80743127671435,-4.35170627520987,-6.36059011892672,-5.72036595276911,-3.0291824942283,-1.95933463848826,-2.15950094456068,-2.70290698017756,-1.86680045360462,-0.759980627665318,-1.49721563640767,-0.67311942107445,3.20970309585868,9.6164057714565,21.7758715182609,43.3839382822411,66.0290615165294,70.5253885151028,49.5916395365201,17.9878624151553,-5.28915567048941,-11.0972625848776,-6.29024463654792,-3.37509026972077,-1.5242900934037,1.83409659563755,1.58789986968843,-2.0820138325645,-3.36179116104292,-2.53207643646872,-2.48993900698559,-1.8043903526946
	,Head,3.55600359016921,3.28744890266921,3.01889421516921,2.75033952766921,2.41464616829421,1.94467546516921,1.74325944954421,1.34042741829421,0.803318043294208,0.400486012044208,-0.0694846910807925,-0.539455394205792,-1.14370344108079,-1.54653547233079,-2.08364484733079,-2.55361555045579,-3.02358625358079,-3.35927961295579,-3.56069562858079,-3.62783430045579,-3.62783430045579,-3.29214094108079,-2.48647687858079,-1.14370344108079,0.736179371419208,3.42172624641921,10.0684547620442,10.0684547620442,18.5950660901692,24.1675758557942,30.7471656995442,38.6695289807942,48.0689430432942,59.2811012464192,72.1717262464192,86.4051246839192,101.645603199544,117.826023121419,134.207859058919,150.321140308919,164.957370777669,178.989353199544,191.611423512044,202.017917652669,209.738864918294,214.774265308919,217.459812183919,218.332614918294,217.929782887044,216.519870777669,214.639987965169,212.222995777669,208.933200855794,204.904880543294,200.272312183919,194.632663746419,187.515964527669,178.989353199544,169.052829762044,157.236423512044,143.875827808919,129.105319996419,113.797702808919,98.1543922620442,82.3768043714192,67.0020485120442,51.9629860120442,38.3338356214192,25.8460426526692,14.7010231214192,4.76449968391921,-4.03066633170579,-11.9530296129558,-19.0697288317058,-25.3807639879558,-31.0204124254558,-35.7872581285808,-39.7484397692058,-42.8368186754558,-45.0523948473308,-46.5965843004558,-47.2679710192058,-46.5965843004558,-46.5965843004558,-45.1195335192058,-43.0382346910808,-37.6000022692058,-34.4444846910808,-31.3561057848308,-27.8648948473308,-24.5079612535808,-20.8824729723308,-17.5255393785808,-14.2357444567058,-11.1473655504558,-8.66323469108079,-6.58193586295579,-5.03774640983079,-4.03066633170579,-3.29214094108079,-2.68789289420579,-2.21792219108079,-1.81509015983079,-1.68081281608079,-1.68081281608079,-1.61367414420579,-1.61367414420579,-1.34511945670579,-0.942287425455792,-0.673732737955792,-0.270900706705792,-0.00234601920579239,0.131931324544208,0.266208668294208,0.467624683919208,0.803318043294208,1.07187273079421,1.40756609016921,1.54184343391921,1.67612077766921,1.87753679329421,2.14609148079421,2.54892351204421,3.01889421516921,3.48886491829421,4.09311296516921,4.56308366829421,4.89877702766921,5.23447038704421,5.63730241829421,5.70444109016921,5.90585710579421,5.90585710579421,5.97299577766921,5.97299577766921,5.70444109016921,5.70444109016921,5.30160905891921,4.89877702766921,4.42880632454421,3.95883562141921,3.48886491829421,3.22031023079421,2.88461687141921,2.54892351204421,2.21323015266921,1.87753679329421,1.47470476204421,1.00473405891921,0.669040699544208,0.400486012044208,0.131931324544208,-0.136623362955792,-0.405178050455792,-0.673732737955792,-1.00942609733079,-1.27798078483079,-1.54653547233079,-1.81509015983079,-1.81509015983079,-2.08364484733079,-2.28506086295579,-2.55361555045579,-2.75503156608079,-2.95644758170579,-3.09072492545579,-3.22500226920579,-3.29214094108079,-3.42641828483079,-3.49355695670579,-3.56069562858079,-3.62783430045579,-3.76211164420579,-3.76211164420579,-3.76211164420579
	,Deleted,No
	Impulse 2,Direction,Left
	,Gain,0.5986
	,Peak Velocity,234.2377
	,Eye,9.62763363757197,8.72691237743854,8.14705034647073,5.85088662779241,2.62438004108619,3.00904468312785,4.30432090063358,5.93749658125704,9.5616440055675,9.96636584964268,7.17735894496909,2.6344039432757,-0.450666402462533,1.64388150348301,5.15099555793359,7.40206259848041,5.93333807563901,2.08955003653054,1.20307742417812,1.71317400315313,2.47611786420914,3.65741856679533,5.23029940776175,9.34404673153975,14.493983756803,16.7171760798723,16.5134009033002,18.4262704062984,24.7927725612146,33.8620583261402,42.8591239636837,51.1180006883334,56.894102505558,61.9045991805872,64.8377934365071,59.0912369065062,50.0602818591828,45.8401577915128,46.4085656510405,45.9753074797537,40.3127751722748,31.9462969246478,24.7136195814564,18.2636919575236,11.8231340829914,7.79207774468662,2.72407031237984,-7.90106941062705,-26.2010234661228,-51.7896859058331,-71.1452043587955,-75.6189996145747,-76.4254131079381,-76.1372082785933,-64.8501212213538,-49.3500458326127,-34.0714364370356,-7.08154956904475,45.8048801763718,127.336153017005,206.606322788715,253.142121596731,263.263989788439,250.178712897763,239.764596801398,241.809176855401,247.175080486764,250.820839628872,253.61130378138,252.040165632654,239.030438287731,211.225204433641,172.185875368483,131.051691347054,95.2213285663599,67.1403406851677,46.4404023128082,36.2269942422159,37.0924701202379,42.841275577912,46.5159050570519,44.5968582432663,39.8665530737757,33.90996853322,28.7668456585696,27.0302342363879,27.2358339597807,26.9225493239272,24.2590663426132,22.2790295249873,22.8934294320573,22.2203514339106,19.1198492520964,17.8887472491448,17.7099220807511,14.2614438260934,9.39676398307926,5.79476997671301,4.56460448518219,4.8826488377352,5.22400372705143,3.69858707881695,-1.01937021570669,-5.39904697148503,-6.40210660048235,-3.92229654499301,-1.84975346197914,-2.36823614946834,-2.35539143262799,-0.718881356932744,0.00580302705807767,-1.69540363331008,-2.20316440725735,-0.746816996474216,0.996396798403955,2.71319305072927,3.98997318599754,3.50577697308364,1.36991476190368,1.7574617811663,3.47246167919011,5.21351886429765,9.14853532375878,11.8149137722727,12.6169293064974,13.8218412836243,13.6953827290026,13.5506577091726,12.931917654648,10.5792180840663,9.60459643754596,9.22511194750502,9.00789174100353,8.56609608485089,4.30370397923797,2.43590671260531,4.84291808661891,8.43028956956425,22.333755784593,37.0761178698447,34.0281429072072,20.7086847726003,9.71524090840972,2.30411054620371,-1.97238957545361,-1.77312929331183,0.343036223256217,0.158542425907179,-0.927828337993232,0.649336415705484,1.84579690373919,0.0134922652509144,-0.82820129475146,-1.37721297925155,-2.20547200466434,-0.6235884695425,1.54461696774027,2.33003048883948,0.574973216070646,-6.78006201056017,-23.2056101744347,-47.5370684579389,-70.7434072418866,-75.2535796585288,-52.6312178789322,-20.7806230253611,1.20172721601172,10.2109040978922,7.69771864119329,1.50903654864545,-1.49997833068222,-2.55000758231536,-1.89268734018301,-2.92207981166252,-4.70767619815597
	,Head,-0.479030589518292,-0.613307933268292,-0.613307933268292,-0.747585277018292,-0.747585277018292,-0.881862620768292,-1.01613996451829,-1.15041730826829,-1.35183332389329,-1.55324933951829,-1.75466535514329,-1.95608137076829,-2.29177473014329,-2.49319074576829,-2.69460676139329,-2.89602277701829,-3.23171613639329,-3.43313215201829,-3.50027082389329,-3.50027082389329,-3.29885480826829,-2.82888410514329,-1.62038801139329,-0.00905988639329239,2.34079362923171,5.49631120735671,9.86032487923171,20.6025123792317,20.6025123792317,32.4860573011067,39.1327858167317,39.1327858167317,46.3837623792317,54.3061256604817,75.3205299573567,88.2111549573567,102.981662769857,119.027805347982,135.611057301107,151.791477222982,168.710422535482,185.830783863607,201.675510426107,215.438938160482,226.248264332357,232.760715504232,234.237766285482,233.969211597982,232.425022144857,228.463840504232,222.354221363607,215.103244801107,206.845188160482,198.519992847982,189.120578785482,179.184055347982,168.173313160482,156.356906910482,143.869113941732,130.374240894857,116.677951832357,103.048801441732,89.8224830823567,77.2004127698567,65.2497291761067,53.7018776136067,42.6911354261067,32.4189186292317,22.8180885511067,13.8215065198567,5.69772722298171,-1.82180402701829,-9.13991926139329,-16.1894798082683,-22.8362083238933,-29.0801048082683,-34.5183372301433,-39.3523216051433,-43.3806419176433,-46.4018821520183,-48.8188743395183,-51.1015891832683,-51.1015891832683,-50.7658958238933,-49.4902610582683,-47.4089622301433,-44.9248313707683,-41.9707298082683,-38.7480735582683,-31.2956809801433,-27.0659446520183,-22.8362083238933,-18.3379173082683,-13.7724876207683,-9.67702863639329,-5.71584699576829,-2.15749738639329,0.796604176106708,3.41501237923171,5.76486589485671,8.04758073860671,9.86032487923171,11.4045143323567,12.6130104261067,13.4186744886067,13.7543678479817,13.8215065198567,13.6872291761067,13.2843971448567,12.6801490979817,11.8744850354817,11.0688209729817,10.0617408948567,8.71896745735671,7.44333269173171,6.23483659798171,4.95920183235671,3.68356706673171,2.34079362923171,1.19943620735671,0.0580787854817076,-0.881862620768292,-1.88894269889329,-2.69460676139329,-3.50027082389329,-4.30593488639329,-4.91018293326829,-5.58156965201829,-5.98440168326829,-6.38723371451829,-6.58864973014329,-6.58864973014329,-6.65578840201829,-6.79006574576829,-6.92434308951829,-6.85720441764329,-2.96316144889329,-2.96316144889329,-2.96316144889329,-2.56032941764329,-2.15749738639329,-1.68752668326829,-1.62038801139329,-1.62038801139329,-1.35183332389329,-1.28469465201829,-1.28469465201829,-1.35183332389329,-1.41897199576829,-1.48611066764329,-1.62038801139329,-1.68752668326829,-1.88894269889329,-2.09035871451829,-2.09035871451829,-2.22463605826829,-2.29177473014329,-2.42605207389329,-2.42605207389329,-2.49319074576829,-2.62746808951829,-2.62746808951829,-2.89602277701829,-2.89602277701829,-2.96316144889329,-3.09743879264329,-3.23171613639329,-3.23171613639329,-3.50027082389329,-3.63454816764329,-3.76882551139329,-3.76882551139329,-3.97024152701829,-3.97024152701829,-3.97024152701829
	,Deleted,No
	Impulse 3,Direction,Left
	,Gain,0.5754
	,Peak Velocity,234.7648
	,Eye,2.79457733040711,-10.5028642324477,-16.2917863409295,-9.16372043854822,-3.91076955369873,7.81352491393041,14.8645286880543,7.89062479898675,6.20214667877074,2.88021139682721,-3.94088501254452,1.65355680529172,5.99473605122322,-1.72788789742286,-5.15925151666881,-2.69101107122298,-1.09068482162455,1.70864303151711,2.21361392344826,-1.87380934778095,-7.60351718715715,-4.4312431790273,7.70858095225567,13.0005342455623,4.27878447722507,-5.40988033895132,2.47292285804809,20.3452339172448,29.8721746842987,28.6603785036355,33.8461937301031,52.3634089321165,67.7439835826197,66.6869583670734,57.749549985984,56.1883104053688,64.970573221196,79.139117379602,85.746706296061,79.7631753191153,62.4754280279193,38.6715943307641,24.7140671604404,19.5447135077792,17.3998107587376,19.5197368567883,6.67855775134693,-27.1920511403332,-62.6723915309841,-86.8022507028802,-101.098840104168,-108.170915722897,-103.042012245388,-91.4404235772559,-76.2289488174141,-52.772930509012,-25.9741191242925,12.8994863112276,71.0093665215606,122.880276527437,146.041511403559,155.228548112379,166.263283208254,178.655606528906,195.643345493692,211.732251070629,229.831781333288,253.720133848412,262.756659373809,252.511622015032,235.777540456998,224.502298030891,218.426976886052,203.472004343011,180.174183929224,154.039611938783,115.424873550787,72.7751471947181,53.846981998639,47.7758857116873,39.8851791145336,39.2814135972634,38.3981610095818,32.8516529235845,30.1960349991158,29.1966646652086,29.008215043455,25.929475567141,20.2113839276904,10.4370231358603,0.945632653521486,10.4867619705792,15.4845830422037,8.48313875893498,17.8231613149689,26.6689919221864,19.7270470879379,11.0331764005207,8.29927363908605,6.93717861750465,1.84603547898452,-2.64215257645847,-3.77017300515141,-6.59104860184289,-10.8652205266728,-9.0814531183356,-1.6063021899976,2.93924747796335,0.785437609722572,-2.89136225681544,3.64387287242742,31.4842373854907,83.1685530797489,146.925540675914,194.631214603901,201.654979375815,165.12227746692,102.815934512157,41.9370383391485,1.37712107219409,-12.7924777281211,-7.63077956690202,0.961013420677684,5.69776076431404,8.74909505572202,8.71252333492339,5.27145093440469,3.55340189422914,3.27543247073923,2.42256753944009,2.26300092476837,2.10687840330013,1.41245244700922,0.645617146820095,0.18091342804697,0.830492283312431,2.8371530483274,5.86954910022876,7.60737505280394,4.30960216588544,-1.2208590938188,-2.4469583164398,0.374226237110263,-0.896166642878764,-7.60659384881143,-8.9516500253151,-6.2043955148869,-5.69093859355862,-5.32168561885572,-6.07497027630765,-6.09354404996748,-3.243219338849,5.29391860015256,24.0774539189549,51.7443052470478,79.9130069788761,87.5979798196923,61.9190380096555,21.5766599898128,-8.13275998864683,-18.9699988430456,-13.6828488332187,-4.31477608866974,-0.794515462189944,-0.138212943921486,-0.844919925232329,-3.90596191225685,-6.8636487458398,-9.21187898172383,-7.69146251597297,-1.3236400855316,3.15013878751742,-0.196742268065477,-5.54567990472497,-5.84041291365798
	,Head,0.182285328450458,0.115146656575458,0.0480079847004576,-0.0191306871745425,-0.153408030924543,-0.287685374674543,-0.489101390299543,-0.690517405924542,-0.891933421549542,-1.09334943717454,-1.42904279654954,-1.83187482779954,-2.03329084342454,-2.50326154654954,-2.77181623404954,-3.10750959342454,-3.37606428092454,-3.91317365592454,-4.24886701529954,-4.58456037467454,-4.58456037467454,-4.45028303092454,-4.11458967154954,-3.04037092154954,-0.891933421549542,2.26358415657546,6.15762712532546,10.9244728284505,16.4969825940755,22.7408790784505,29.7233009534505,38.2499122815755,60.4728126722005,74.1691017347005,88.6710548597005,103.9786720472,119.5548439222,134.795322437825,150.102939625325,165.07486345345,180.449619312825,194.548740406575,207.1036720472,217.3087501722,223.149814625325,226.909580250325,231.5421486097,234.7648048597,234.563388844075,231.877841969075,227.37955095345,220.7999611097,213.079013844075,204.9552345472,196.428623219075,187.4991798597,178.23404314095,168.4317970472,157.891025562825,145.134677906575,131.706943531575,117.876377125325,104.180088062825,90.8194923597005,78.1974220472005,66.2467384534505,55.1017189222005,44.7623634534505,35.4972267347005,27.1720314222005,19.7867775159505,13.2071876722005,7.09756853157546,1.18936540657546,-4.31600568717454,-9.41854474967454,-14.2525291246745,-18.4822654527995,-22.3763084215495,-25.5989646715495,-28.2845115465495,-30.3658103746745,-31.8428611559245,-32.6485252184245,-32.7156638902995,-31.9771384996745,-30.5672263902995,-28.6202049059245,-26.4046287340495,-23.9204978746745,-21.3692283434245,-15.7295799059245,-12.7754783434245,-9.61996076529954,-6.59872053092454,-3.91317365592454,-1.22762678092454,0.987949390950458,3.06924821907546,5.08340837532546,6.82901384407546,8.44034196907546,9.71597673470046,10.7230568128255,11.4615822034505,11.9315529065755,11.9986915784505,11.9986915784505,11.7972755628255,11.3944435315755,10.7901954847005,10.1188087659505,9.31314470345046,8.70889665657546,7.90323259407546,7.09756853157546,6.15762712532546,5.15054704720046,4.07632829720046,3.06924821907546,2.19644548470046,1.18936540657546,0.316562672200457,-0.556240062174542,-1.29476545279954,-1.89901349967454,-2.43612287467454,-2.97323224967454,-3.30892560904954,-3.57748029654954,-3.71175764029954,-3.84603498404954,-3.98031232779954,-4.11458967154954,-4.04745099967454,-4.11458967154954,-4.18172834342454,-4.18172834342454,-4.11458967154954,-4.04745099967454,-4.04745099967454,-3.84603498404954,-3.98031232779954,-3.91317365592454,-3.71175764029954,-3.57748029654954,-3.44320295279954,-3.30892560904954,-3.24178693717454,-3.04037092154954,-3.04037092154954,-3.17464826529954,-3.30892560904954,-3.17464826529954,-3.17464826529954,-3.17464826529954,-3.04037092154954,-3.04037092154954,-2.97323224967454,-3.10750959342454,-2.97323224967454,-2.97323224967454,-2.90609357779954,-2.77181623404954,-2.63753889029954,-2.63753889029954,-2.50326154654954,-2.43612287467454,-2.50326154654954,-2.57040021842454,-2.57040021842454,-2.70467756217454,-2.90609357779954,-3.10750959342454,-3.37606428092454
	,Deleted,No
	Impulse 4,Direction,Left
	,Gain,0.7128
	,Peak Velocity,214.8011
	,Eye,-0.728069825374832,2.07474729788546,2.7116080164291,-1.09009850402489,-3.58546530756722,-2.08884894981296,0.702149226751135,1.31431990433871,0.112073903853304,-1.68138262901449,-3.25907046404989,-2.16790991966906,-0.809705091597246,0.172117430645499,0.732743492605757,-1.06561281641145,-0.977436004399104,0.486046685930733,-0.590201956021262,-2.08012533632628,-1.2623022014893,0.267115817745008,-0.146846537310513,0.513989543980965,3.25188048239076,6.03967561817313,7.38832774558821,8.29773394796272,14.2481742739062,23.7076192997118,32.3516294038898,42.0398016919729,50.6069242002136,57.4952182203898,64.1737957176375,63.9425984628716,57.9486027989064,51.7353777999707,45.4466800772282,40.3257263695362,34.167757367118,26.143268136782,18.9099162623371,12.7616186437444,7.70469619467069,4.07166373032524,-2.12091941435542,-16.3681646184547,-33.543914123642,-45.0670727245948,-47.3476571712479,-42.1437730826504,-36.8790746836485,-27.8393520982679,-0.833317067592808,50.8302504899865,122.904196666757,196.244103525383,248.064846976855,274.222270165116,283.263720817146,283.153965118226,275.03342010669,258.401691469935,237.505295882585,213.125778943241,182.824510343812,146.801397393353,108.532203397519,73.8944148208184,50.6850898487538,41.4455475001165,41.3209018667489,46.6891898681248,54.6220581659615,59.485055944101,58.5435104803549,55.1936546296965,54.0348728077478,53.6451233652124,50.9903288571773,46.1383572531705,39.7881355681233,34.5705162941247,31.7838658064524,29.6881453153483,27.0688916359842,24.3133787639398,21.7383368180597,17.0320285180184,10.1553109477464,6.64777491002275,7.42451812589042,9.21796630036526,9.81315253195114,7.71378472403741,4.35710817987021,-1.49992365320492,-5.63653251744275,-2.43294523736645,0.499115829202637,-0.14092378429333,-0.98090279187355,-0.339624458994529,1.13682827956844,2.31904053891713,4.97274576889652,6.97572637779247,7.80486079812703,9.4707554742867,8.84298391807558,6.94879793993841,8.12877501327346,9.40954362483373,7.65945978708656,6.23915163470789,5.36824108175921,3.87384774061746,2.60455402596597,0.72284730062924,-1.45278507434148,-2.04241154489576,-0.915579009813265,-0.192596976380928,0.413485498445741,0.861573581481496,0.975183183121418,2.09515086210618,2.31740736754721,1.62634013530302,1.67503750776672,-0.0609688672329242,-1.93242068123191,-0.551750888080707,0.863215099994111,-1.18426009650297,-4.04753114908066,-3.94517513895691,-1.57090793191439,-0.585776332840154,-2.61048844059164,-3.37753490112826,-3.4236316577023,-4.37717085132182,-3.30035242474733,-0.977989794706163,1.33029098643607,2.23123209329697,0.415821242672953,-3.18674503479066,-3.59101736640212,0.290718392106654,1.95629220131757,0.980437306270032,-0.609775137673558,-0.736330466511764,2.48093917439497,4.64640073151132,3.4011654090966,1.45773378444085,1.68740408346177,2.29522249873606,-0.0224780896988007,-3.79072887846036,-4.27692747326502,-1.66154420521294,-2.20081082309371,-3.56122720628618,-1.59253628823544,-0.85851515641669,-2.36221072067714,-2.79359337548018,-2.72893228833928,-3.03716056901092,-4.33689297441356
	,Head,-3.60097883170579,-3.73525617545579,-3.93667219108079,-3.93667219108079,-4.00381086295579,-4.20522687858079,-4.33950422233079,-4.47378156608079,-4.74233625358079,-5.01089094108079,-5.27944562858079,-5.54800031608079,-5.88369367545579,-6.28652570670579,-6.62221906608079,-6.82363508170579,-7.22646711295579,-7.49502180045579,-7.83071515983079,-7.96499250358079,-8.09926984733079,-8.09926984733079,-7.76357648795579,-6.75649640983079,-5.14516828483079,-2.52676008170579,0.964450855794208,5.32846452766921,10.5652809339192,16.4734840589192,29.8340797620442,29.8340797620442,37.4207496839192,45.5445289807942,54.3396949964192,64.6790504651692,77.3011207776692,91.6016578870442,107.446384449544,124.163913746419,140.680027027669,156.994724293294,187.542819996419,187.542819996419,200.164890308919,208.355808277669,214.801120777669,214.264011402669,211.175632496419,207.013034840169,202.581882496419,197.412204762044,191.369724293294,184.655857105794,178.076267262044,170.758152027669,162.768650074544,154.510593433919,145.245456715169,134.704685230794,122.955417652669,110.064792652669,96.9727516370442,83.9478492932942,71.1915016370442,58.7037086682942,46.6858864026692,35.0708961682942,24.1272926526692,14.2579078870442,-1.98965070670579,-1.98965070670579,-9.03921125358079,-15.2831077379558,-20.7884788317058,-25.4881858629558,-29.3822288317058,-32.4706077379558,-34.8875999254558,-36.5660667223308,-37.3045921129558,-37.2374534410808,-36.4317893785808,-35.2904319567058,-33.7462425035808,-31.7320823473308,-29.6507835192058,-27.5023460192058,-25.2867698473308,-23.2726096910808,-20.7884788317058,-18.5057639879558,-16.4244651598308,-14.2088889879558,-12.0604514879558,-9.91201398795579,-8.09926984733079,-6.28652570670579,-4.74233625358079,-3.33242414420579,-2.12392805045579,-1.11684797233079,-0.176906566080793,0.494480152669207,0.964450855794208,1.56869890266921,1.83725359016921,2.03866960579421,2.24008562141921,2.30722429329421,2.37436296516921,2.24008562141921,1.90439226204421,1.56869890266921,1.09872819954421,0.763034840169208,0.360202808919208,0.0245094495442075,-0.915431956705792,-1.25112531608079,-1.72109601920579,-2.12392805045579,-2.52676008170579,-2.92959211295579,-3.39956281608079,-4.00381086295579,-4.33950422233079,-4.74233625358079,-5.21230695670579,-5.68227765983079,-5.95083234733079,-6.35366437858079,-6.55508039420579,-6.82363508170579,-7.02505109733079,-7.29360578483079,-7.29360578483079,-7.49502180045579,-7.56216047233079,-7.49502180045579,-7.49502180045579,-7.56216047233079,-7.62929914420579,-7.76357648795579,-7.76357648795579,-7.76357648795579,-7.89785383170579,-7.96499250358079,-8.09926984733079,-8.09926984733079,-8.09926984733079,-7.83071515983079,-7.76357648795579,-7.83071515983079,-7.76357648795579,-7.69643781608079,-7.62929914420579,-7.62929914420579,-7.49502180045579,-7.56216047233079,-7.42788312858079,-7.36074445670579,-7.36074445670579,-7.09218976920579,-6.95791242545579,-7.02505109733079,-6.89077375358079,-6.89077375358079,-6.89077375358079,-6.89077375358079,-7.02505109733079,-7.02505109733079,-7.15932844108079,-7.22646711295579,-7.22646711295579
	,Deleted,No
      

ピーク検出

File ExchangeにあるJean-Luc GOUDIERのコードは、 前後との差が両方とも正になる部分を探すので、同じ値が続いていると検出出来ないが、 その様なデータは稀であるので、今回はこれを使用する。processfile(filename,50,-10,60)のパラメータが順にピーク検出の正の閾値、負の閾値(ここに負を入れると、 ピークが負で底打ちしていなくても検出する)、時間軸の閾値で、スクリプトと同じフォルダにdataというフォルダを作って、検査CSVデータを入れておけば、 それぞれの検査CSVデータに対して処理した結果をoutフォルダ(自動生成)に出力する。PDFの描画では、ピークの順番に描画を変え、ピーク検出結果をCSVに保存する。

	function peaks=peak_detect(signal,threshold)
	// This function detect the peaks of a signal : 
	// --------------------------------------------
	// For an input row vector "signal", the function return 
	// the position of the peaks of the signal.
	//
	// The ouput "peaks"is a row vector (size = number of peaks),
	// "peaks"=[] if no peak is found.
	//
	// Optional argument "threshold"eliminates the peaks under
	// the threshold value (noise floor). 
	//
	// Clipped peaks (more than 2 samples of the signal at the same value)
	// are not detected.
	// -------------------------------------------------------------------
	//     Jean-Luc GOUDIER      11-2011
	// -------------------------------------------------------------------
	[nargout,nargin] = argn(0);
	if nargin==2 then ts=threshold;
	end;
	if nargin==1 then ts=min(signal);
	end;
	[r c]=size(signal);
	if r>1 then
	  error("Error : signal is not a row vector");
	end;
	Lg=c-1;
	d_s=diff(signal); 
	dd_s=[d_s(1),d_s(1,:)];               // diff first shift
	d_s=[d_s(1,:),d_s(Lg)];               // diff size correction
	ddd_s=[dd_s(1),dd_s(1,1:Lg)];         // diff second shift
	Z=d_s.*dd_s;                          // diff zeros
	peaks=find(((Z<0 & d_s<0)|(Z==0 & d_s<0 & ddd_s>0)) & signal>ts);
	endfunction
	// -------------------------------------------------------------------

	function processfile(filen,posedge,negedge,defaultedgemintime)
	  file0 = mopen(filen)
	  line0 = mgetl(file0)
	  mclose(file0)
	  linesize = size(line0)(1)
	  ofile = mopen(strsubst(strsubst(filen,".csv",".peak.csv"),"data","out"),"a")
	  close()
	  subplot(3,2,1)
	  f=get("current_figure")
	  f.figure_size=[768 1024]; // width height
	  // Left Right LA RP LP RA
	  for i = 1:linesize
	    if (line0(i) == "") then,
	      continue
	    end
	    str = csvTextScan(line0(i),",",".","string")
	    strlen = size(str)(2)
	    if (strlen == 3) then,
	      if (str(2) == "Direction") then,
	          //printf("[%s]",str(3)) Left Right ..
	          clear linep3
	          clear linep4
	          linep3 = csvTextScan(line0(i+3),",",".","string"); // Eye
	          linep4 = csvTextScan(line0(i+4),",",".","string"); // Head 50ms~ >50
	          global data0
	          global data1
	          if(linep3(2) == "Eye")  then ; data0 = strtod(linep3); end
	          if(linep4(2) == "Eye")  then ; data0 = strtod(linep4); end
	          if(linep3(2) == "Head") then ; data1 = strtod(linep3); end
	          if(linep4(2) == "Head") then ; data1 = strtod(linep4); end
	          
	          datan = data0 * -1.
	          peak0 = peak_detect(data0,posedge)
	          peakn = peak_detect(datan,negedge)
	          printf("%d)", size(peak0)(2));
	          peakh = peak_detect(data1,50)
	          if(size(peakh) > 0)
	            edgemintime = peakh(1) + 10
	          else
	            edgemintime = defaultedgemintime
	          end

	          if ( str(3) == "Right") then ; subplot(3,2,1); xtitle("Right"); end
	          if ( str(3) == "Left")  then ; subplot(3,2,2); xtitle("Left") ; end
	          if ( str(3) == "LA")    then ; subplot(3,2,3); xtitle("LA")   ; end
	          if ( str(3) == "LP")    then ; subplot(3,2,4); xtitle("LP")   ; end
	          if ( str(3) == "RA")    then ; subplot(3,2,5); xtitle("RA")   ; end
	          if ( str(3) == "RP")    then ; subplot(3,2,6); xtitle("RP")   ; end

	          peak0f = peak0(find(peak0>edgemintime)) // find positive edge index

	          if( size(peak0f) > 0 ) then,
	            plot(data0,'b')
	          else
	            plot(data0,'r')
	          end
	          plot(data1,'g')

	          for j = 1:size(peak0f)(2)
	            peaknf = peakn(find(peakn>peak0f(j)))   // find negative edge index
	            if( size(peaknf) > 0 ) then,
	              plot2d(peak0f(j),data0(peak0f(j)),-1*j-4)
	              plot2d(peaknf(1),data0(peaknf(1)),-2)
	              mfprintf(ofile,"%s,%d,%f,%f,%f,%f\n",str(3),j, peak0f(j),data0(peak0f(j)), peaknf(1),data0(peaknf(1)))
	            end
	          end
	      end
	    end
	  end
	  xs2pdf(0,strsubst(strsubst(filen,"csv","pdf"),"data","out"))
	  mclose(ofile)
	  close()
	endfunction

	// mode(0) // echo off
	funcprot(0)
	mkdir("data")
	mkdir("out")
	filelist = dir("data/*.csv");
	for i = 1:size(filelist.name)(1)
	  filename = filelist.name(i)
	  printf("[%s]", filename);
	  processfile(filename,50,-10,60)
	  printf("\n");
	end
      

PDF出力サンプル (ファイル)

ピークCSV出力サンプル (ファイル)

	Left,1,62.000000,271.314814,100.000000,-20.682287
	Left,2,77.000000,61.858017,100.000000,-20.682287
	Left,3,95.000000,174.797122,100.000000,-20.682287
	Left,4,128.000000,118.026256,132.000000,-12.629934
	Left,5,163.000000,70.525389,167.000000,-11.097263
	Left,1,65.000000,263.263990,101.000000,4.564604
	Left,2,71.000000,253.611304,101.000000,4.564604
	Left,1,71.000000,262.756659,93.000000,0.945633
	Left,2,118.000000,201.654979,123.000000,-12.792478
      
Share your knowledge. It's a way to
achieve immortality.

	-- One of Nadav Har'El's Email Signatures.

Last week Kent Beck made a claim that you don't really need bug tracking
databases when you're doing Extreme Programming, because the combination of
pair programming (with persistent code review) and test driven development
(guaranteeing 100% code coverage of the automated tests) means you hardly ever
have bugs.

Lo and behold, I discovered that very few of the bugs in there would have been
discovered with pair programming or test driven development. Many of our
"bugs" are really what XP calls stories -- basically, just feature requests.

A lot of the other bugs were only discovered after much use in the field. The
Polish keyboard thing. There's no way pair programming was going to find that.
And logical mistakes that never occurred to us in the way that different
features work together. The larger and more complex a program, the more
interactions between the features that you don't think about. A particular
unlikely sequence of characters ({${?, if you must know) that confuses the
lexer. Some ftp servers produce an error when you delete a file that doesn't
exist (our ftp server does not complain so this never occurred to us.)

I carefully studied every bug. Out of 106 bugs we fixed for the service pack
release of CityDesk, exactly 5 of them could have been prevented through pair
programming or test driven design. We actually had more bugs that we knew
about and thought weren't important (only to be corrected by our customers!)
than bugs that could have been caught by XP methods.

But Kent is right, for other types of development. For most corporate
development applications, none of these things would be considered a bug.
Program crashes on invalid input? Run it again, and this time watch your
{${?'s! And we only have One Kind of FTP server and nobody in the whole
company uses Polish Windows.

    -- Joel Spolsky
    -- "Five Worlds" ( http://www.joelonsoftware.com/articles/FiveWorlds.html )


Powered by UNIX fortune(6)
[ Main Page ]