1 % Robert Borkowski, rbor@fotonik.dtu.dk
2 % Technical University of Denmark
5 cplx2mat = @(z)[real(z(:)) imag(z(:))];
6 xmodnorm = @(varargin)varargin{1}*modnorm(varargin{:});
9 h = modem.qammod(
'M',M);
10 M = length(h.Constellation);
11 signal = h.modulate(randi([0 M-1],4e4,1));
12 signal = xmodnorm(signal,
'avpow',1);
13 signal = awgn(signal,20,
'measured');
14 figure,plot(signal,
'.');
18 neigh = zeros(size(x,1),1);
22 neigh(xi) = nnz(sum(bsxfun(@minus,x(xi,:),x).^2,2)<=r^2);
23 % neigh(xi) = nnz(all(bsxfun(@lt,abs(bsxfun(@minus,x(xi,:),x)),xy),2));
27 C = 64; % number of colors
28 % cmap = colormap(jet(C));
29 % cmap = colormap([linspace(0,0.85,C)' zeros(C,2)]);
30 % cmap = colormap(hot(C));
31 cmap = colormap(constcmap(C,[1 2])); %[1 2] red, [3 2] blue
32 cols = round(scaledata(neigh,1,size(cmap,1)));
34 points = x(cols==c,:);
35 plot(points(:,1),points(:,2),'Marker','.','LineStyle','none','Color',cmap(c,:));