Một trong các ứng dụng của kĩ thuật trải phổ là cung cấp khả năng đa truy nhập phân chia theo mã, khi đó nguồn tài nguyên kênh truyền đợc chia sẻ cho nhiều ngời sử dụng có thể truyền phát tin tức đồng thời trên cùng một độ rộng băng thông, trong đó mỗi ngời sử dụng đợc ấn định một mã trải phổ riêng biệt và nh vậy họ vẫn đợc tách biệt trong quá trình giải trải phổ ở phía thu. Mục đích của nhà thiết kế hệ thống trải phổ cho hệ thống đa truy nhập là có thể tìm ra một tập các mã hoặc dạng sóng sao cho có càng nhiều ngời sử dụng có thể dùng chung một độ rộng băng tần mà sự gây nhiễu lẫn nhau là càng ít càng tốt.
Cần nhắc lại rằng quá trình giải trải phổ ở phía thu là một quá trình tơng quan với mã trải phổ của phía phát tơng ứng. Một cách lý tởng, một tín hiệu thu đợc vừa đợc trải phổ sử dụng một mã trải phổ riêng biệt sẽ gây nhiễu ít nhất trong tín hiệu mong muốn. Lợng nhiễu từ những ngời sử dụng sử dụng mã trải phổ khác nhau có liên quan tới tính tơng quan chéo giữa hai mã trải phổ. Mã Gold, đợc phát hiện từ năm 1967 đợc đặc biệt sử dụng cho các ứng dụng về đa truy nhập của trải phổ bởi tập chuỗi Gold có đặc tính tơng quan chéo tốt.
Nh đã nói ở chơng 1, chuỗi Gold đợc tạo ra bằng cách dùng một cặp chuỗi -m đợc lựa chọn đặc biệt gọi là các chuỗi -m a dùng hơn rồi lấy tổng modul 2 của hai chuỗi này đối với mỗi L phiên bản dịch chu kỳ của một chuỗi với chuỗi kia. Nh vậy ta sẽ tạo đợc một chuỗi Gold với chu kì L = 2m-1 và có tất cả L + 2 chuỗi.
Trong bài mô phỏng này sẽ thực hiện tạo chuỗi Gold có độ dài L =31. Thanh ghi dịch hoạt động với hai chuỗi m và chuỗi Gold tơng ứng đợc chỉ ra trong Hình 3.8. Trong trờng hợp này, có 33 chuỗi khác nhau, tơng ứng với 60
33 pha của chuỗi –m. Trong số đó, 31 chuỗi là các chuỗi có độ dài không cực đại, hai chuỗi còn lại là hai chuỗi gốc.
Độ dài của chuỗi là L = 31 = 25 - 1.
Nh đã chỉ ra trong bảng 1.2, với m = 5 giá trị cực đại của hàm tơng quan chéo là:
t(m) = t(5) = 23+1 = 9
và các giá trị của hàm tơng quan chéo cho mỗi chu kì dịch của a và a' là: - t(m)/ L = - 9/ 31;
-1/ L = -1/ 31; [t(m) - 2]/ L = 7/31;
Hai chuỗi a dùng hơn đợc tạo ra theo Peterson và Weldon là hai đa thức:
g1(p) = p5+p2+1
g2(p) = p5+p4+p2+p+1
Sử dụng phần mềm MATLAB, các bớc tạo chuỗi Gold đợc thực hiện trong chơng trình bao gồm:
- Trớc hết, chơng trình thực hiện xác định độ dài cực đại của chuỗi thanh ghi dịch với giả thiết trạng thái đầu của thanh ghi dịch là 00001.
- Tiếp theo chơng trình sẽ thực hiện dịch vòng chuỗi thứ hai (giả thiết chuỗi có đa thức sinh g2(p) = p5+p4+p2+p+1 đồng thời cộng modul 2 nó với chuỗi thứ nhất g1(p) = p5+p2+1.
- Tìm giá trị cực đại của hàm tơng quan chéo, với bài tập này, giá trị đỉnh của hàm tơng quan chéo là 9.
Kết quả sau khi chạy chơng trình là bộ mã Gold với độ dài mỗi từ mã là L
= 31 và có tất cả 31 từ mã: 0111000010000110010010111100000 0101101110001000001001000110001 0000110110010100111110110010011 1010000110101101010001011010111 1111100111011110001110001011110 0100100100111000110000101001100 0010100011110101001101101101001 1110101101101110110111100100011 0110110001011001000011110110110 0110001000110110101011010011101 0111111011101001111010011001011 0100011101010111011000001100111 Chuỗi Gold a4 a3 v a2
Hình 3.8 Tạo chuỗi Gold có độ dài 31
g1(p) = p5+p2+1
g2(p) = p5+p4+p2+p+1
a1 a0
a'4 a'3 a'2
0011010000101010011100100111111 1101001011010000010101110001111 0001111100100100000111011101110 1000010011001100100010000101101 1011001100011101101000110101010 1101110010111111111101010100100 0000001111111011010110010111000 1011110101110010000000010000001 1100000001100000101100011110010 0011101001000101110100000010100 1100111000001111000100111011001 0010011010011010100101001000010 1111011110110001100110101110101 0101010111100111100001100011010 0001000101001011101111111000101 1001100000010011110011001111011 1000101010100011001010100000110 1010111111000010111001111111100 1110010100000001011111000001000
Nh vậy tập mã Gold là các mã có tính chất tơng quan chéo tốt đợc tạo ra bằng cách cộng modul 2 với dịch vòng từ hai chuỗi -m a dùng hơn có chu kì của mỗi mã là L, bằng chu kì của các chuỗi -m đợc ứng dụng cho khả năng đa truy nhập của hệ thống trải phổ, đồng thời mã Gold này cũng có nhiều ứng dụng khác rất quan trọng nh chúng cũng đợc NASA lựa chọn để sử dụng trong hệ thống vệ tinh chuyển tiếp dữ liệu (Data Relay Satellite System) cũng nh trong hệ thống định vị toàn cầu GPS.
Chơng 4 kết luận
Có rất nhiều phơng pháp điều chế và giải điều chế đã đợc nghiên cứu và thiết kế để áp dụng cho quá trình truyền đa tín hiệu trên môi trờng tạp âm trắng cộng dừng Gaussian trong các hệ thống thông tin số hiện nay, trong đó kĩ thuật trải phổ là một kĩ thuật rất hữu dụng trong việc giải quyết các vấn đề lớn của các hệ thống thông tin.
Đối với các hệ thống thông tin số áp dụng kĩ thuật trải phổ (spread spectrum) độ rộng băng tần của tín hiệu đợc mở rộng, thông thờng hàng trăm lần trớc khi đợc phát. Quá trình trải phổ tín hiệu đợc thực hiện bằng cách nhân phổ của tín hiệu sau khi đã đợc xử lý số với dãy mã giả tạp âm PN đợc tạo ra từ bộ tạo chuỗi PN. Mã giả ngẫu nhiên đợc thiết kế để có độ rộng băng tần lớn hơn nhiều so với độ rộng băng của bản tin. Bản tin đợc biến đổi bởi mã sao cho tín hiệu nhận đợc có độ rộng phổ gần bằng độ rộng phổ của tín hiệu giả ngẫu nhiên. Tại phía thu, tín hiệu trải phổ đợc giải trải phổ bằng cách nhân tín hiệu thu với mã trải phổ là bản sao đã đợc đồng bộ với mã trải phổ ở phía phát. Các tín hiệu khác xuất hiện ở dạng các nhiễu phổ rộng công suất thấp tựa tạp âm, đây chính là u điểm triệt nhiễu của hệ thống trải phổ.
Một u điểm nữa của tín hiệu trải phổ đó là tin tức có thể đợc dấu đi trong nền tạp âm bằng cách trải độ rộng băng tần kết hợp mã hoá và phát tín hiệu tổng hợp với mức công suất trung bình rất thấp. Bởi vì với mức công suất phát thấp, tín hiệu phát đi sẽ có xác suất bị chặn (phát hiện) thấp và do đó tín hiệu trải phổ cũng đợc gọi là tín hiệu có xác suất bị chặn thu thấp. Bên cạnh đó, tính riêng t của thông tin có thể đạt đợc bằng cách thêm vào tín hiệu đợc phát thành phần giả ngẫu nhiên. Bất kì một đài thu nào không biết thành phần giả ngẫu nhiên này thì không thể thu đợc thông tin ngoại trừ đài thu hợp lệ.
Việc sử dụng thành phần giả ngẫu nhiên trong tín hiệu trải phổ tạo khả năng đa truy nhập của hệ thống. Mỗi ngời sử dụng đợc ấn định một mã riêng biệt có tính trực giao tốt. Nhờ đó, từng ngời thu riêng biệt có thể khôi phục lại thông tin khi biết đợc thành phần giả ngẫu nhiên, đồng thời do tính trực giao của các tín hiệu này, tại cùng một thời điểm có thể có nhiều ngời sử dụng cùng phát đồng thời trên cùng một độ rộng băng truyền, và do đó hiệu quả sử dụng nguồn tài nguyên hữu hạn băng tần tăng lên.
Với mục đích khảo sát một số đặc tính của hệ thống trải phổ dãy trực tiếp, bản luận văn đã trình bày các kĩ thuật cơ bản về trải phổ trong đó có đi sâu kĩ thuật trải phổ dãy trực tiếp cũng nh một số đặc điểm nổi bật đồng thời trình bày các kĩ thuật tạo ra chuỗi mã giả ngẫu nhiên PN, từ đó đa ra phơng pháp tạo chuỗi Gold với những u điểm hơn hẳn chuỗi PN về tính trực giao và tính t- ơng quan tốt. Bên cạnh đó, một số ứng dụng của kĩ thuật trải phổ cũng đợc đề cập tới cụ thể với hai ứng dụng quan trọng trong hệ thống định vị toàn cầu GPS và hệ thống đa truy nhập phân chia theo mã CDMA theo tiêu chuẩn IS- 95.
Ưu điểm triệt nhiễu của hệ thống trải phổ cũng đợc khảo sát với tác động của nhiễu sin và qua đó thấy rằng tác động của nhiễu băng hẹp đối với hệ thống đã bị hạn chế bởi yếu tố dự trữ chống nhiễu trong đó công suất nhiễu giảm đi một lợng bằng với hệ số trải rộng phổ của tín hiệu đợc gọi là tăng ích xử lý của hệ thống. Qua đây ta cũng thấy rằng sự khác biệt giữa một hệ thống có trải phổ và một hệ thống áp dụng các phơng pháp điều chế khác đó là hệ thống trải phổ sẽ đa ra một tham số giới hạn cho phép cải thiện những tác động của nhiễu. Thông số cải thiện này thờng đợc định nghĩa là tăng ích xử lý. Nh vậy, một hệ thống trải phổ sẽ, trong điều kiện lý tởng, làm giảm đợc các tác động của công suất nhiễu bằng tăng ích xử lý.
Do thời gian, trình độ cũng nh phơng tiện kĩ thuật còn hạn chế nên kết quả khảo sát và mô phỏng cha đáp ứng đợc hết các yêu cầu mong muốn đã đợc đặt ra, rất mong nhận đợc sự đóng góp ý kiến của thầy cô và các bạn. Một lần nữa em xin chân thành cảm ơn Th.S Trần Xuân Việt vì sự nhiệt tình hớng trong suốt quá trình thực hiện luận văn này.
Phụ lục
MATLAB script cho bài mô phỏng hệ thống DS_SS với tác động của nhiễu sin.
Script file 3-2 echo on
Lc=100; % số lợng chips trên 1 bit
A1=3; % biên độ của nhiễu sin thứ nhất A2=7; % biên độ của nhiễu sin thứ hai A3=12; % biên độ của nhiễu sin thứ ba A4=0; % trờng hợp không có nhiễu
w0=1; % tần số của nhiễu sin tính theo radians SNRindB=0:2:30;
for i=1:length(SNRindB), % measured error rates
smld_err_prb1(i)=ss_Pe94(SNRindB(i),Lc,A1,w0); smld_err_prb2(i)=ss_Pe94(SNRindB(i),Lc,A2,w0); smld_err_prb3(i)=ss_Pe94(SNRindB(i),Lc,A3,w0); echo off ; end; echo on ; SNRindB4=0:1:8; for i=1:length(SNRindB4),
% xác định xác suất xuất hiện lỗi khi không có nhiễu sin smld_err_prb4(i)=ss_Pe94(SNRindB4(i),Lc,A4,w0); echo off ; end; echo on; % các lệnh vẽ đồ thị. echo off; semilogy(SNRindB4,smld_err_prb4,': +',SNRindB,smld_err_prb1,'.-',SNRindB,smld_err_prb2,'o-',SNRindB,smld_er r_prb3,'*-')
text(10,10^-0.2,'A la bien do cua nhieu') LEGEND('A=0','A=3','A=7','A=12') XLABEL('SNR in dB')
YLABEL('xác suất lỗi Pb') Script file tính xác suất lỗi.
function[p]=ss_Pe3_2(snr_in_dB, Lc, A, w0) % [p]=ss_Pe94(snr_in_dB, Lc, A, w0)
% SS_PE3_2 tìm tỉ số lỗi. Hàm này có đầu ra là xác suất lỗi khi đầu % vào là các giá trị: tỉ số snr_in_dB, Lc, A và w0.
snr=10^(snr_in_dB/10);
sgma=1; % phơng sai của tạp âm đợc giữ cố định.
Eb=2*sgma^2*snr; % mức tín hiệu yêu cầu để đạt đợc SNR mong muốn E_chip=Eb/Lc; % năng lợng của một chip mã
N=100000; % số bit đợc thực hiện trong mô phỏng
% trong chơng trình thực hiện mô phỏng này, quá trình tạo ra dữ liệu, tạp âm %cộng, nhiễu sin, nén phổ và tính lỗi đợc thực hiện trong cùng chơng trình
%này nhằm giảm khối lợng tính toán hay làm tăng tốc độ chạy mô phỏng. num_of_err=0;
for i=1:N,
% tạo bit dữ liệu tiếp theo. temp=rand; if (temp<0.5), data=-1; else data=1; end;
% lặp với Lc lần, ví dụ chia nhỏ thành các chips. for j=1:Lc,
repeated_data(j)=data; end;
% đoạn PN đợc sử dụng cho bit dữ liệu. for j=1:Lc, temp=rand; if (temp<0.5), pn_seq(j)=-1; else pn_seq(j)=1; end; end; % tín hiệu phát đi là trans_sig=sqrt(E_chip)*repeated_data.*pn_seq; % tạo ra AWGN với phơng sai sgma^2
noise=sgma*randn(1,Lc); % tạo nhiễu sin
n=(i-1)*Lc+1:i*Lc;
interference=A*sin(w0*n); % tín hiệu thu đợc
rec_sig=trans_sig+noise+interference; % khôi phục lại tín hiệu phát (giải trải phổ) temp=rec_sig.*pn_seq;
decision_variable=sum(temp);
% quyết định mức if (decision_variable<0), decision=-1; else decision=1; end;
% nếu bit thu đợc bị lỗi, sẽ tăng số đếm bit lỗi lên 1 if (decision~=data),
num_of_err=num_of_err+1; end;
end;
% khi đó xác suất lỗi đo đợc là: p=num_of_err/N;
Các MATLAB script cho bài mô phỏng hệ thống DS_SS thực hiện truyền thông tin bằng điều chế PSK nhị phân qua kênh AWGN.
Chơng trình tính xác suất lỗi cho hệ thống DS BPSK Script file DSBPSK
function [p]=DSBPSK(snr_in_dB, Lc) % [p]=DSBPSK(snr_in_dB, Lc)
snr=10^(snr_in_dB/10);
sgma=1; % phơng sai của nhiễu đợc giữ cố định. Eb=2*sgma^2*snr; % mức tín hiệu yêu cầu để đạt đợc tỉ số tín
%hiệu trên tạp âm mong muốn E_chip=Eb/Lc; % năng lợng chip mã
N=100000; % số lợng bit thử num_of_err=0;
for i=1:N,
% Tạo bit dữ liệu. temp=rand; if (temp<0.5), data=-1; else data=1; end; % BPSK s0=-1; s1=1;
% nhiễu tạp âm Gauss n=sgma*randn;
% tín hiệu tại phía thu r=sqrt(Eb)*data+n; c0=dot(r,s0);
c1=dot(r,s1); c_max=max([c0 c1]); if c0==c_max y=-1; else y=1; end; % lặp Lc lần. for j=1:Lc, repeated_data(j)=y; end; % tạo chuỗi PN for j=1:Lc, temp=rand; if (temp<0.5), pn_seq(j)=-1; else pn_seq(j)=1; end; end; % tín hiệu phát trans_sig=sqrt(E_chip)*repeated_data.*pn_seq; % khôi phục lại tín hiệu phát.
temp=trans_sig.*pn_seq; decision_variable=sum(temp); % quyết định mức if (decision_variable<0), decision=-1; else decision=1; end;
% nếu bit thu đợc bị lỗi, sẽ tăng số đếm bit lỗi lên 1. if (decision~=data),
num_of_err=num_of_err+1; end;
end;
% đa ra xác suất lỗi p=num_of_err/N;
Chơng trình tính xác suất lỗi cho hệ thống BPSK không áp dụng trải phổ. Script file BPSK
function [p]=BPSK(snr_in_dB); snr=10^(snr_in_dB/10);
sgma=1; Eb=2*sgma^2*snr; N=100000; s0=-1; s1=1; numerr=0; for i=1:N; x=rand; if x<0.5, y(i)=-1; else y(i)=1; end; n=sgma*randn; r(i)=sqrt(Eb)*y(i)+n; c0=dot(r(i),s0); c1=dot(r(i),s1); c_max=max([c0 c1]); if c0==c_max decis(i)=s0; else decis(i)=s1; end; if decis(i)~=y(i), numerr=numerr+1; end; end; p=numerr/N;
Script file ket_hop thực hiện kết hợp hai hàm DSBPSK và BPSK clear; SNRindB=0:1:8; echo on ; for i=1:length(SNRindB), % BPSK smld_err_prb1(i)=BPSK(SNRindB(i)); echo off; end; SNRindB4=0:1:8; echo on; for i=1:length(SNRindB4),
% DS_SS co nhieu gauss, nhieu sin = 0
echo off; end;
semilogy(SNRindB,smld_err_prb1,'*-',SNRindB4,smld_err_prb,'k.-'); legend('BPSK DSSS co nhieu gauss','BPSK co nhieu Gauss');
MATLAB script cho bài tập tạo chuỗi Gold 3.4 echo on
%Xác định độ dài cực đại của chuỗi thanh ghi dịch % Giả sử nội dung ban đầu của thanh ghi dịch là: "00001" connections1=[1 0 1 0 0];
connections2=[1 1 1 0 1];
sequence1=ss_mlsrs(connections1); sequence2=ss_mlsrs(connections2);
% Dịch vòng chuỗi thứ hai và cộng nó với chuỗi thứ nhất L=2^length(connections1)-1;; for shift_amount=0:L-1, temp=[sequence2(shift_amount+1:L) sequence2(1:shift_amount)]; gold_seq(shift_amount+1,:)=(sequence1+temp) floor((sequence1+temp)./2).*2; echo off ; end; echo on ;
% tìm ra giá trị lớn nhất của hàm tơng quan chéo cho các chuỗi này. max_cross_corr=0; for i=1:L-1, for j=i+1:L, % equivalent sequences c1=2*gold_seq(i,:)-1; c2=2*gold_seq(j,:)-1; for m=0:L-1, shifted_c2=[c2(m+1:L) c2(1:m)]; corr=abs(sum(c1.*shifted_c2)); if (corr>max_cross_corr), max_cross_corr=corr; end; echo off ; end; end; end;
% lu ý rằng giá trị tơng quan chéo bằng 9 trong bài này.
Tài liệu tham khảo
1. Introduction to Digital Communication - Rodger E. Ziemer&
Roger L. Peterson.
2. Digital Communications - John G.Proakis.
3. Các hệ thống thông tin hiện nay - Học viện kỹ thuật quân sự. 4. Mô phỏng các hệ thống thông tin số - Học viện kỹ thuật quân sự. 5. Cơ sở MATLAB - Nhà xuất bản khoa học và kỹ thuật.