<< Chapter < Page | Chapter >> Page > |
MATLAB is commonly used to design filters and determine frequency responses of systems, but it is also very useful as a simulation tool.
Use the following MATLAB code skeleton to simulate the QPSK
transmitter from
Digital
Transmitter: Introduction to Quadrature Phase-ShiftKeying and fill in the incomplete portions. Note that
the code is not complete and will not execute properly aswritten. How does the spectrum of the transmitted signal
change with
? How do you interpret the figure created by
plot(rI,rQ)
?
1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 % MATLAB Code Skeleton for QPSK Digital Transmitter
3
4 % Generate random bits
5 bits_per_symbol=2;
6 num_symbols=128;
7 numbits=bits_per_symbol*num_symbols;
8 bits=rand(1,numbits)>0.5;
9
10 Tsymb = 16; % symbol length
11 omega = pi/2; % carrier frequency
12
13 %%%%%%%%%%%%%%%%%%%%%%%%
14 % Transmitter section
15 % initialize transmit sequence
16 t = zeros(1,num_symbols*Tsymb);
17 i = 1; % initialize bit index
18 n = 1; % initialize time index
19
20 while (n <= num_symbols*Tsymb)
21 if ( bits(i:i+1) == [ 0 0])
22 Igain = 1/sqrt(2);
23 Qgain = 1/sqrt(2);
24 % ------>Insert code here<-------
25
26 end;
27 i = i+2; % next 2 bits
28
29 % Generate symbol to be transmitted
30 t(n:n+Tsymb-1) = %------>Insert code here<-------
31
32 n = n+Tsymb; % next symbol
33 end;
34
35 % Show the transmitted signal and its spectrum
36 % ------>Insert code here<-------
37
38 % Show the transmitted signal constellation
39 rI = t.*cos(omega*[1:num_symbols*Tsymb]);
40 rQ = t.*sin(omega*[1:num_symbols*Tsymb]);
41
42 % Filter out the double-frequency term
43 low_pass=fir1(512,0.5);
44 rI=conv(rI,low_pass);
45 rQ=conv(rQ,low_pass);
46 figure;
47 plot(rI,rQ);
Notification Switch
Would you like to follow the 'Dsp laboratory with ti tms320c54x' conversation and receive update notifications?