Mercurial > hg > simscene-py
comparison nonExposed/timeDomainVisualization.m @ 34:39399de892ef
better handling of displays with pleasantness colors
author | Mathieu Lagrange <mathieu.lagrange@cnrs.fr> |
---|---|
date | Fri, 09 Jun 2017 16:37:50 +0200 |
parents | 92f73423eb37 |
children |
comparison
equal
deleted
inserted
replaced
33:d0ceb549f734 | 34:39399de892ef |
---|---|
18 | 18 |
19 % Producing a time domain visualization | 19 % Producing a time domain visualization |
20 step=0.5; % seconds | 20 step=0.5; % seconds |
21 wStep = round(step*settingFigure.sr); | 21 wStep = round(step*settingFigure.sr); |
22 wSize = wStep*2; | 22 wSize = wStep*2; |
23 for t=1:size(tracks,1); | 23 for t=1:size(tracks,1) |
24 for i=0:floor((size(tracks,2)-wSize)/wStep) | 24 for i=0:floor((size(tracks,2)-wSize)/wStep) |
25 % Not really power, but more nicely additive, better suited for | 25 % Not really power, but more nicely additive, better suited for |
26 % this representation I think | 26 % this representation I think |
27 powers(i+1,t) = norm(tracks(t,i*wStep+1:min(size(tracks,2), i*wStep+wSize))); | 27 powers(i+1,t) = norm(tracks(t,i*wStep+1:min(size(tracks,2), i*wStep+wSize))); |
28 end | 28 end |
29 end | 29 end |
30 | 30 |
31 powers(powers<max(powers(:))/500) = 0; | 31 powers(powers<max(powers(:))/500) = 0; |
32 powers = gaussianSmoothing(powers', 15)'; | |
32 | 33 |
33 switch figuresOption | 34 switch figuresOption |
34 case 1 | 35 case 1 |
35 f=figure('Visible', 'off'); | 36 f=figure('Visible', 'off'); |
36 case 2 | 37 case 2 |
37 f=figure(figNum); | 38 f=figure(figNum); |
38 end | 39 end |
39 | 40 |
40 | 41 |
41 clf; | 42 clf; |
42 area(powers,'LineWidth', 1/1.6, 'EdgeColor', [.3, .3, .3]); | 43 h = area(powers,'LineWidth', 2, 'EdgeColor', [.2, .2, .2]); |
44 for t=1:size(tracks,1) | |
45 h(t).FaceColor = settingFigure.cmap(t, :); | |
46 end | |
47 | |
43 xlim([0 size(powers,1)]) | 48 xlim([0 size(powers,1)]) |
44 xtick=0:round(20/step):size(powers,1); % every 20 sec | 49 xtick=0:round(20/step):size(powers,1); % every 20 sec |
45 set(gca,'YTick', [],'YTicklabel', [],'xtick',xtick,'xticklabel',xtick*step); | 50 set(gca,'YTick', [],'YTicklabel', [],'xtick',xtick,'xticklabel',xtick*step); |
46 xlabel('time (sec)') | 51 xlabel('time (sec)') |
52 % ylabel('amplitude') | |
47 | 53 |
48 set(f,'PaperUnits','centimeters') | |
49 set(f,'PaperPositionMode','manual') | |
50 set(f,'papersize',[settingFigure.width,settingFigure.height]) | |
51 set(f,'paperposition',[0,0,settingFigure.width,settingFigure.height]) | |
52 set(findall(f,'-property','FontSize'),'FontSize',settingFigure.FontSize) | 54 set(findall(f,'-property','FontSize'),'FontSize',settingFigure.FontSize) |
53 set(findall(f,'-property','FontName'),'FontName','Arial') | 55 set(findall(f,'-property','FontName'),'FontName','Arial') |
54 | 56 |
55 print(f,fileName,'-dpng') | |
56 | 57 |
58 box off %// remove outer border | |
59 set(gca,'ycolor', [1 1 1]); | |
60 ax1 = gca; | |
61 yruler = ax1.YRuler; | |
62 yruler.Axle.Visible = 'off'; | |
63 | |
64 if figuresOption == 1 | |
65 set(f,'PaperUnits','centimeters') | |
66 set(f,'PaperPositionMode','manual') | |
67 set(f,'papersize',[settingFigure.width,settingFigure.height]) | |
68 set(f,'paperposition',[0,0,settingFigure.width,settingFigure.height]) | |
69 set(gca,'ycolor', [1 1 1]); | |
70 print(f,fileName,'-dpng') | |
57 end | 71 end |
72 | |
73 | |
74 function as = gaussianSmoothing(as, factor) | |
75 | |
76 if ~exist('factor', 'var'), factor = 200; end | |
77 | |
78 % gaussian filtering for smooth display | |
79 g = gausswin(ceil(size(as, 2)/factor)); % shall adapt the size to the length of the file | |
80 g = g/sum(g); | |
81 for k=1:size(as, 1) | |
82 as(k, :) = conv(as(k, :), g, 'same'); | |
83 end | |
84 | |
85 |