Multidimensional Signals
In the preceding section we constructed multiamplitude signal waveforms, which allowed
us to transmit multiple bits per signal waveform. Thus, with signal waveforms
having M = 2k(2 power k) amplitude levels, we are able to transmit k = log2 M bits of information
per signal waveform. We also observed that the multiamplitude signals can
be represented geometrically as signal points on the real line. Such signal waveforms are called one-dimensional signals.
consider the construction of a class of M = 2k(2 power k) signal waveforms
that have a multidimensional representation. That is, the set of signal waveforms
can be represented geometrically as points in N-dimensional space.
Multidimensional Orthogonal Signals
As in our previous discussion, we assume that an information source is providing
a sequence of information bits, which are to be transmitted through a communication
channel. The information bits occur at a uniform rate of R bits per second. The reciprocal
of R is the bit interval, Tb. The modulator takes k bits at a time and maps them
into one of M = 2k(2 power K) signal waveforms. Each block of k bits is called a symbol. The
time interval available to transmit each symbol is T = kTb. Hence, T is the symbol
interval.
Figure 5 .31 illustrates the signal points (signal constellations) corresponding to M = 2 and M = 3 orthogonal signals.
Let us assume that these orthogonal signal waveforms are used to transmit information
through an AWGN channel. Consequently, if the transmitted waveform is Si(t), the received waveform is
where n(t) is a sample function of a white Gaussian noise process with power spectrum
No/2 watts/hertz. The receiver observes the signal r(t) and decides which of the M signal waveforms was transmitted.
Optimum Receiver for the AWGN Channel
The receiver that minimizes the probability of error first passes the signal r(t) through
a parallel bank of M matched filters or M correlators. Because the signal correlators
and matched filters yield the same output at the sampling instant, let us consider the
case in which signal correlators are used, as shown in Figure 5.32.
Signal Correlators
The Detector
Matlab Coding
1 % MATLAB script M = 4 orthogonal signals for Monte Carlo simulation
2 echo on
3 clear;
4 SNRindB=0:2:10;
5 for i=1:length(SNRindB),
6 % simulated error rate
7 smld_err_prb(i)=smldP510(SNRindB(i));
8 echo off;
9 end;
M = 4;
for i=1:length(SNRindB_T)
SNR=exp(SNRindB_T(i)*log(10)/10);
% theoretical error rate
theo_err_prb(i)= (2*(M-1)/M)*Qfunct(sqrt((6*log2(M)/(M^2-1))*SNR));
echo off ;
end
10 echo on;
11 % Plotting commands follow
12 semilogy(SNRindB,smld_err_prb,'*');
13
hold on
semilogy(SNRindB_T,theo_err_prb,'-');
xlabel('SNR');
14
15 function [p]=smldP510(snr_in_dB)
16 % [p]=smldP510(snr_in_dB)
17 % SMLDP510 simulates the probability of error for the given
18 % snr_in_dB, signal-to-noise ratio in dB.
19 M=4; % quaternary orthogonal signaling
20 E=1;
21 SNR=exp(snr_in_dB*log(10)/10); % signal-to-noise ratio per bit
22 sgma=sqrt(E^2/(4*SNR)); % sigma, standard deviation of noise
23 N=10000; % number of symbols being simulated
24 % generation of the quaternary data source
25 for i=1:N,
26 temp=rand; % a uniform random variable over (0,1)
27 if (temp<0.25),
28 dsource1(i)=0;
29 dsource2(i)=0;
30 elseif (temp<0.5),
31 dsource1(i)=0;
32 dsource2(i)=1;
33 elseif (temp<0.75),
34 dsource1(i)=1;
35 dsource2(i)=0;
36 else
37 dsource1(i)=1;
38 dsource2(i)=1;
39 end
40 end;
41 % detection, and probability of error calculation
42 numoferr=0;
43 for i=1:N,
44 % matched filter outputs
45 if ((dsource1(i)==0) & (dsource2(i)==0)),
46 r0=sqrt(E)+gngauss(sgma);
47 r1=gngauss(sgma);
48 r2=gngauss(sgma);
49 r3=gngauss(sgma);
50 elseif ((dsource1(i)==0) & (dsource2(i)==1)),
51 r0=gngauss(sgma);
52 r1=sqrt(E)+gngauss(sgma);
53 r2=gngauss(sgma);
54 r3=gngauss(sgma);
55 elseif ((dsource1(i)==1) & (dsource2(i)==0)),
56 r0=gngauss(sgma);
57 r1=gngauss(sgma);
58 r2=sqrt(E)+gngauss(sgma);
59 r3=gngauss(sgma);
60 else
61 r0=gngauss(sgma);
62 r1=gngauss(sgma);
63 r2=gngauss(sgma);
64 r3=sqrt(E)+gngauss(sgma);
65 end;
66 % the detector
67 max_r=max([r0 r1 r2 r3]);
68 if (r0==max_r),
69 decis1=0;
70 decis2=0;
71 elseif (r1==max_r),
72 decis1=0;
73 decis2=1;
74 elseif (r2==max_r),
75 decis1=1;
76 decis2=0;
77 else
78 decis1=1;
79 decis2=1;
80 end;
81 % Count the number of bit errors made in this decision.
82 if (decis1~=dsource1(i)), % If it is an error, increase the error counter.
83 numoferr=numoferr+1;
84 end;
85 if (decis2~=dsource2(i)), % If it is an error, increase the error counter.
86 numoferr=numoferr+1;
87 end;
88 end;
89 p=numoferr/(2*N); % bit error probability estimate
Simulation Result
Reference,
1. <<Contemporary Communication System using MATLAB>> - John G. Proakis