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