diff util/classes/@dictionary/plotcumcoherencebounds.m @ 184:8fc38e8df8c6 danieleb

Minor edits
author Daniele Barchiesi <daniele.barchiesi@eecs.qmul.ac.uk>
date Fri, 27 Jan 2012 13:18:50 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/util/classes/@dictionary/plotcumcoherencebounds.m	Fri Jan 27 13:18:50 2012 +0000
@@ -0,0 +1,65 @@
+function plotcumcoherencebounds(obj)
+
+[d N] = size(obj.phi);
+
+mu1 = cumcoherence(obj,1);
+mu2 = cumcoherence(obj,2);
+mu1_min = (1:d)*sqrt((N-d)/(d*(N-1)));
+
+figure, subplot(2,1,1)
+hold on, grid on
+plot(1:d,mu1,'k-')
+plot(1:d,mu2,'k--')
+plot(1:d,mu1_min,'b-.')
+set(gca,'XScale','log','YScale','log');
+axis tight
+ylabel('p-cumulative coherence')
+xlabel('k')
+legend('\mu_1(k)','\mu_2(k)','\mu_{1_{min}}(k)')
+
+% temp = conv(mu1,[1 1]);
+% kMax = find(temp<1,1,'last');
+% title(['Worst case bound: k_{max} = ' num2str(kMax)])
+% 
+% % subplot(2,1,2)
+% p_BP_fails = exp(-1./(8*mu1(1)^2*(1:d)));
+% p_TH_fails = exp(-1./(128*mu2.^2));
+% plot(1:d,p_BP_fails,'k-+');
+% plot(1:d,p_TH_fails,'k-o');
+% legend('P(BP fails)','P(TH fails)');
+
+% % Plot cumulative coherence with lower and upper bounds
+% mumin = (1:d)*sqrt((N-d)/(d*(N-1)));
+% mumax = (1:d);
+% figure,
+% subplot(1,6,1:2)
+% hold on, grid on
+% plot(1,mumax(1),'k-s');
+% plot(1,mu(1),'ko');
+% plot(1,mumin(1),'k-d')
+% 
+% 
+% subplot(1,6,3:6)
+% hold on, grid on
+% plot(2:d,mumax(2:end),'k-s');
+% plot(2:d,mu(2:end),'k-o');
+% plot(2:d,mumin(2:end),'k-d');
+% set(gca,'XScale','log','YScale','log');
+% axis tight
+% xlabel('k');
+% ylabel('\mu(k)');
+% ylim([mumin(1) 10])
+% 
+% % Plot recovery bounds
+% plot(2:d,1-mu(1:d-1),'r-o')
+% plot(2:d,1-mumin(1:d-1)','r-d')
+% plot([2 d],[1/3 1/3],'b');
+% legend('\mu_{max}(k)','\mu(k)','\mu_{min}(k)','Exact-Sparse \mu','Exact-Sparse \mu_{min}','Sparse');
+
+
+% v = conv(mu,[1 1]);
+% ind = find(v<1, 1, 'last');
+% 
+% line([ind ind], [min(mu) max(mu)],'Color','red');
+% title(['Minimum allowed sparsity (Tanner):' num2str(ind/obj.len)]);
+end