Tài liệu Điều chế QPSK (4PSK): Điều chế QPSK (4PSK)
Sơ đồ nguyờn lý
Nguyờn lý điều chế số
Để cú thể truyền dẫn cỏc thụng tin số bằng súng điện từ, cần phải tiến hành điều chế số.
Điều chế số là kỹ thuật gắn thụng tin số vào dao động hỡnh Sin (súng mang), làm cho súng mang cú thể mang thụng tin cần truyền đi.
Ta cũng cú thể hiểu: Điều chế số là sử dụng thụng tin số tỏc động lờn cỏc thụng số của súng mang, làm cho cỏc thụng số của súng mang biến thiờn theo quy luật của thụng tin.
Súng mang hỡnh Sin cú dạng:
x(t) = A cos(2Πfct + ứ)
Cú ba thụng số của súng mang cú thể mang tin:là biờn độ (A), tần số (fc) và gúc pha (ứ).
Do đú, ta cú thể tỏc động lờn một trong 3 thụng số của súng mang để cú cỏc phương phỏp điều chế tương ứng.
Ngoài ra, ta cũng cú thể tỏc động lờn một lỳc 2 thụng số của súng mang để cú phương phỏp điều chế kết hợp.
Điều chế 2PSK
0
Điều chế QPSK (PSK 4 mức)
Mỗi trạng thỏi súng mang mang thụng tin 2 bit
PHƯƠNG THỨC ĐIỀU CHẾ PSK
Cơ sở toỏn học của điều chế PSK:
PSK là phương thức điều chế ...
41 trang |
Chia sẻ: hunglv | Lượt xem: 4259 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Điều chế QPSK (4PSK), để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Điều chế QPSK (4PSK)
Sơ đồ nguyên lý
Nguyên lý điều chế số
Để có thể truyền dẫn các thông tin số bằng sóng điện từ, cần phải tiến hành điều chế số.
Điều chế số là kỹ thuật gắn thông tin số vào dao động hình Sin (sóng mang), làm cho sóng mang có thể mang thông tin cần truyền đi.
Ta cũng có thể hiểu: Điều chế số là sử dụng thông tin số tác động lên các thông số của sóng mang, làm cho các thông số của sóng mang biến thiên theo quy luật của thông tin.
Sóng mang hình Sin có dạng:
x(t) = A cos(2Πfct + ø)
Có ba thông số của sóng mang có thể mang tin:là biên độ (A), tần số (fc) và góc pha (ø).
Do đó, ta có thể tác động lên một trong 3 thông số của sóng mang để có các phương pháp điều chế tương ứng.
Ngoài ra, ta cũng có thể tác động lên một lúc 2 thông số của sóng mang để có phương pháp điều chế kết hợp.
Điều chế 2PSK
0
Điều chế QPSK (PSK 4 mức)
Mỗi trạng thái sóng mang mang thông tin 2 bit
PHƯƠNG THỨC ĐIỀU CHẾ PSK
Cơ sở toán học của điều chế PSK:
PSK là phương thức điều chế mà pha của tín hiệu sóng mang cao tần biến đối theo tín hiệu băng gốc.
Giả sử tín hiệu sóng mang được biểu diễn: f0(t) = cos(ɷ0t + φ)
Biểu thức tín hiệu băng gốc: s(t) là tín hiệu ở dạng nhị phân 0 hoặc 1, hay là một dãy tín hiệu dạng NRZ.
Khi đó tín hiệu được điều chế dịch pha PSK sẽ có dạng :
P(t) = cos[ɷ0t + φ + s(t).Δø2]
Trong đó: Δø = 2Πn: là sự lệch pha giữa các pha lân cận của tín hiệu
Biểu diễn tín hiệu theo kiểu cầu phương:
P(t) = cos[ɷ0t + φ + s(t).Δø2]
= cos[ s(t).Δø2].cos(ɷ0t + φ) – sin[ s(t).Δø2].sin(ɷ0t + φ)
Đặt at= cos[s(t).Δø2]bt= -sin[s(t).Δø2]
Suy ra: P(t) = a(t).cos(ɷ0t + φ) + b(t). sin(ɷ0t + φ)
Như vậy, tín hiệu điều chế dịch pha là tổng của hai tín hiệu điều biên vuông góc nhau.
ĐIỀU CHẾ DỊCH PHA 4 TRẠNG THÁI (QPSK)
Với n = 4 suy ra Δø = 2Πn = Π2
Khi đó ta có tín hiệu điểu chế QPSK có dạng:
P(t) = cos[(ɷ0t + φ + s(t) Π4]
Tín hiệu băng gốc s(t) là xung nhị phân NRZ lưỡng cực nhận 4 giá trị.
Sơ đồ điều chế:
Sơ đồ nguyên lý điều chế QPSK sử dụng một trong 4 pha lệch nhau 900
I
Trộn
f0(t) = cosɷ0t
b(t)
Chuyển đổi nối tiếp sang song song
s(t)
P(t)
∑
a(t)
Tín hiệu sau điều chế
Tín hiệu nhị phân nhập vào
900
Q
Trộn
Tín hiệu băng gốc được đưa vào bộ biến đổi nối tiếp thành song song, đầu ta được hai luồng tín hiệu có tốc độ bit giảm đi một nửa, đồng thời tín hiệu đơn cực RZ (Return-Zero: dạng tín hiệu mức 0 hoặc 1) được biến đổi thành tín hiệu lưỡng cực NRZ (Non Return Zero: dạng tín hiệu mức +1 hoặc -1). Hai sóng mang đưa tới hai bộ trộn làm lệch pha nhau 900. Tổng hợp tín hiệu đầu ra ở của hai bộ trộn ta được tín hiệu QPSK.
Tín hiệu đầu ra hai bộ trộn
M1(t) = a(t).cosɷ0t
M2(t) = b(t).sinɷ0t
Với a(t) = +1 hoặc -1; b(t) = +1 hoặc -1
Tín hiệu tổng QPSK ở ngõ ra:
P(t) = a(t).cosɷ0t + b(t).sinɷ0t
HỆ THỐNG VÔ TUYẾN
Sóng mang hình sin được biểu thị theo công thức chung như sau:
S(t) = A.cos(ɷct + θ)
Trong đó:
+ A là biên độ sóng mang
+ ɷc = 2πfc là tần số góc của sóng mang
+ fc là tần số sóng mang.
+ θ là pha sóng mang
Ta có thể viết công thức cho sóng mang được điều chế QPSK như sau:
Si(t) =2ET. cos2πft+ θt+ θ
Với θ(t) = (2i – 1).π4; và E = 12A2.T
Trong đó:
i= 1, 2, 3 và 4 tương ứng với phát đi các ký hiệu gồm 2 bit: 00, 01, 11 và 10
E là năng lượng tín hiệu phát trên một ký hiệu
T = 2Tb là thời gian tồn tại một ký hiệu
Tb là thời gian tồn tại một bit
fc là tần số sóng mang
θ(t) là góc pha được điều chế
θ là góc pha ban đầu của tín hiệu
Mỗi giá trị của pha tương tứng với hai bit duy nhất của tín hiệu được gọi là cặp bit, như vậy ta có thể lập các giá trị pha để biểu diễn tập các cặp bit như sau: 00, 01, 11 và 10.
Góc pha ban đầu θ là một hằng số, nó nhận giá trị bất kỳ trong khoảng từ 0 đến 2π, vì góc pha này không ảnh hưởng đến quá trình phân tích tín hiệu được điều chế nên ta đặt giá trị pha ban đầu θ bằng không. (θ = 0)
Hay: Si(t) = 2ET. cos2πft+ θt = 2ET. cos2πft+ 2i-1π4
Qua biến đổi lượng giác, ta có thể viết lại biểu thức của sóng mang như sau:
Si(t) = -2ET.sin2i-1π4sin2πfct+ 2ET. cos2i-1π4cos2πfct
Trong đó: θ(t) = (2i – 1).π4; ( i=1, 2, 3, 4)
Theo công thức trên, ta có nhận xét:
+ Có hai hàm cơ sở trong biểu thức si(t), ta định nghĩa như sau:
Ø1(t) = -2T.sin(2πfct), khi 0 ≤ t ≤ T
Ø2(t) = 2T.cos(2πfct), khi 0 ≤ t ≤ T
Khi đó ta viết lại:
Si(t) = E.sin[2i-1.π4]. Ø1(t) + E.cos[2i-1.π4]. Ø2(t)
+ Tồn tại 4 điểm tương ứng với các Vectơ được xác định như sau:
Si = E.sin[2i-1.π4]E.cos[2i-1.π4] (Với i = 1, 2, 3, 4)
Các phần tử của các Vectơ tín hiệu là Si1 và Si2 có các giá trị được tổng kết ở bảng dưới đây. Hai cột đầu tiên biểu diễn các cặp Bit và pha tương ứng của tín hiệu QPSK ở ngõ ra của bộ điều chế, trong đó bit 0 tương ứng với điện áp ---E2 và bit 1 tương ứng với điện áp +E2
Bảng: Các Vectơ không gian tín hiệu QPSK
Cặp bit
Pha của tín hiệu QPSK
Tọa độ của các điểm bản tin
Si1
Si2
11
π/4
+E/2
+E/2
01
3π/4
-E/2
+E/2
00
5π/4
-E/2
-E/2
10
7π/4
+E/2
-E/2
Từ khảo sát ở trên ta thấy một tín hiệu QPSK được đặc trưng bởi không gian
2 chiều và bốn điểm bản tin như hình vẽ
Hình: Giản đồ chòm sao của tín hiệu QPSK
(Mỗi ký hiệu kề nhau chỉ khác nhau 1 bit)
Chuyển mã
NRZ
Chuyển mã
NRZ
E
-E
I
1 0 1 0
ø1t=2T.cos(2πfct)
900
c(t)
bitI
Chuyển đổi nối tiếp sang song song
chuoibit
∑
y(t)
Tín hiệu nhị phân nhập vào
1 1 0 0 0 1 1 0
Tín hiệu sau điều chế
bitQ
ø2t=2T.sin(2πfct)
Q
1 0 0 1
E
-E
Hình: Sơ đồ khối điều chế QPSK
i(t)
2PSK
bitI
Chuyển đổi nối tiếp sang song song
Chuoibit
c(t)
y(t)
∑
bitQ
Tín hiệu sau điều chế
Tín hiệu nhị phân nhập vào
900
q(t)
2PSK
Hình: Sơ đồ khối điều chế QPSK
Phase-shift keying
Cho dãy bit đầu vào là: 01010101101010110110010111011101010100.
Tần số sóng mang là: fc=2MHz
Tín hiệu nhị phân này qua khối chuyển đổi nối tiếp sang song song, được 2 dòng bit riêng biệt x1 và x2.
Dòng bit x1 đi qua khối điều chế PSK 2 mức (2PSK) với sóng mang là c(t)=
Biểu thức toán học
y(t) = A.cos2Πft+π4 Tương ứng symbol 11A.cos2Πft+3π4 Tương ứng symbol 01A.cos2Πft+5π4 Tương ứng symbol 00A.cos2Πft+7π4 Tương ứng symbol 10
Sơ đồ khối điều chế
I
2PSK
x1(t)
Chuyển đổi nối tiếp sang song song
c(t)
x(t)
y(t)
∑
x2(t)
Tín hiệu sau điều chế
Tín hiệu nhị phân nhập vào
900
Q
2PSK
Biểu đồ chòm sao
Dạng sóng mô phỏng được
Đoạn mã chương trình
Tài liệu tham khảo
Sơ đồ nguyên lý điều chế QPSK
Mô phỏng bằng MatLab
Tập lệnh chương trình
function qpsk(g,f) % g: la chuoi bit nhi phan dau vao, ta có the thay "g" băng "sobit" f: la tan so f0, ta co the thay f bang f0
%dieu che QPSK
%tu cua so lenh ban hay go:
%qpsk([1 0 1 1 0 1 0 1 1 1 0 1],2):
%[1 0 1 1 0 1 0 1 1 1 0 1] la so bit nhi phan dau vao
%[1 0 1 1 0 1 0 1 1 1 0 1] co the thay doi theo y ban
% Khi ta xoa di tat ca cac dong tu 9 den 19 (IF NARGIN > 2 den END) thi do thi ket qua mo phong khong
% thay doi
if nargin > 2 % Neu so bien so dau vao > 2
error('ban da dua nhieu tham so, chi duoc dua 2 tham so dau vao');
elseif nargin==1 % So sanh so bien dau vao va 1
f=1;
end
if f<1;
error('tan so phai lon hon 1');
end
% Khi ta xoa tat ca cac dong tu 9 den 19 thi ket qua mo phong khong thay doi
%*-*-*-*-*-*
% Bai toan thuc hien kiem tra tong so bit nhap vao la so chan (de thuc hien
% tach thanh 2 nhanh
l=length(g);
r=l/2;
re=ceil(r); % thuc hien chuyen cac phan tu cua r ve so nguyen
val=re-r;
if val~=0;
error('so bit nhi phan nhap vao phai la chan');
end
%*-*-*-*-*-*
% Gan cac gia tri dau vao
t=0:2*pi/99:2*pi; % cho gia tri t chay tu 0 den 2pi, buoc nhay la 2pi/99
% Khai bao cac ma tran dung trong chuong trinh
cp=[];
sp=[]; % hu hu, khong hieu
mod=[];
mod1=[];
bit=[]; % Hu hu, khong hieu
bit1=[];
bit2=[];bit0=[]; % hu hu, khong hieu
for n=1:length(g)/2; % cho gia tri n chay tu 1 den length(g)/2
if g(2*n-1)==0; %
se1=zeros(1,100); % tao ma tran 1x100 (gom 1 hang,100 cot,tat ca cac gia tri =0)
else g(2*n-1)==1;
se1=ones(1,100); % tao ma tran 1x100 (gom 1 hang, 100 cot,tat ca cac gia tri = 1)
end
bit1=[bit1 se1];
end
for n=1:length(g)/2; %cho gia tri n chay tu 1 den length(g)/2
if g(2*n)==0;
se2=zeros(1,100); %tao ma tran 1x100 (gom 1 hang,100 cot,tat ca cac gia tri =0)
else g(2*n)==1;
se2=ones(1,100); %tao ma tran 1x100 (gom 1 hang,100 cot,tat ca cac gia tri =1)
end
bit2=[bit2 se2];
end
for n=1:2:length(g); % cho gia tri n chay tu 1 den length(g),buoc nhay la 2
if g(n)==0 && g(n+1)==1; %Trang thai 01,goc pha 3pi/4
die=sqrt(2)/2*ones(1,100); % die: tuong ung voi truc tung
die1=-sqrt(2)/2*ones(1,100); % die1: tuong ung voi truc hoanh
se=[zeros(1,50) ones(1,50)];
elseif g(n)==0 && g(n+1)==0; % Trang thai 00, goc pha 5pi/4
die=-sqrt(2)/2*ones(1,100);
die1=-sqrt(2)/2*ones(1,100);
se=[zeros(1,50) zeros(1,50)];
elseif g(n)==1 && g(n+1)==0; % Trang thai 10, goc pha 7pi/4
die=-sqrt(2)/2*ones(1,100);
die1=sqrt(2)/2*ones(1,100);
se=[ones(1,50) zeros(1,50)];
elseif g(n)==1 && g(n+1)==1; % Trang thai 11, goc pha pi/4
die=sqrt(2)/2*ones(1,100);
die1=sqrt(2)/2*ones(1,100);
se=[ones(1,50) ones(1,50)];
end
c=cos(f*t); % Tin hieu song mang cho I, dong pha voi tin hieu ban dau
s=sin(f*t); % Tin hieu song mang cho Q, lech 90 do so voi tin hieu ban dau
cp=[cp die]; %Amplitude cosino, bien do cua song Coos
sp=[sp die1]; %Amplitude sino, bien do cua song Sin
mod=[mod c]; %cosino carrier (Q)
mod1=[mod1 s]; %sino carrier (I)
bit=[bit se];
end
% cac lenh ve do thi
qpsk=cp.*mod+sp.*mod1;
subplot(4,1,1);plot(bit,'LineWidth',1.5);grid on;
title('tin hieu dua vao dieu che')
axis([0 50*length(g) -1.5 1.5]);
subplot(4,1,2);plot(bit1,'LineWidth',1.5);grid on;
title('tin hieu nhanh 1')
axis([0 50*length(g) -1.5 1.5]);
subplot(4,1,3);plot(bit2,'LineWidth',1.5);grid on;
title('tin hieu nhanh 2')
axis([0 50*length(g) -1.5 1.5]);
subplot(4,1,4);plot(qpsk,'LineWidth',1.5);grid on;
title('tin hieu dieu che qpsk')
axis([0 50*length(g) -1.5 1.5]);
Mô phỏng
Hình 1: qpsk([1 0 1 1 0 1 0 1 1 1 0 1],2)
Hình 2: qpsk([1 0 1 1 0 1 0 1 1 1 0 1],4)
Hình 3: qpsk([1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1],2)
Điều chế 8PSK
Sơ đồ nguyên lý
Mô phỏng bằng MatLab
d
22-Jan-2011
function qpsk(chuoibit,f)
%dieu che QPSK
%tu cua so lenh ban hay go:
%qpsk([1 0 1 1 0 1 0 1 1 1 0],2)
%[1 0 1 1 0 1 0 1 1 1 0] la so bit nhi phan dau vao
%[1 0 1 1 0 1 0 1 1 1 0] co the thay doi theo y ban
if nargin > 2
error('ban da dua nhieu tham so chi duoc dua 2 tham so dau vao');
elseif nargin==1
f=1;
end
if f<1;
error('tan so phai lon hon 1');
end
%*-*-*-*-*-*
% Kiem tra tong so bit cua chuoi co phai la so chan hay khong
l=length(chuoibit);
r=l/2;
re=ceil(r);
val=re-r;
if val~=0;
error('Tong So Bit Nhi Phan Dau Vao Phai La Mot So Chan');
end
%*-*-*-*-*-*
% Khai bao bien thoi gia t, ca ma tran su dung trong bai toan
t=0:2*pi/99:2*pi;
cp=[];
sp=[];
mod=[];
mod1=[];
bit=[];
bit1=[];
bit2=[];
bit0=[];
% Lay gia tri cac bit o vi tri le cho dong 1
for n=1:length(chuoibit)/2;
if chuoibit(2*n-1)==0;
se1=zeros(1,100);
else chuoibit(2*n-1)==1;
se1=ones(1,100);
end
bit1=[bit1 se1];
end
% Lay gia tri cac bit o vi tri chan cho dong 2
for n=1:length(chuoibit)/2;
if chuoibit(2*n)==0;
se2=zeros(1,100);
else chuoibit(2*n)==1;
se2=ones(1,100);
end
bit2=[bit2 se2];
end
% Dung 2 bit cho 1 Symbol trong dieu che QPSK
for n=1:2:length(chuoibit);
% Dat trang thai goc pha cho cac ky tu
% Goc pha cho Symbol 01 la 3pi/4, bien do la (-sqrt(2)/2;sqrt(2)/2)
if chuoibit(n)==0 && chuoibit(n+1)==1;
die=sqrt(2)/2*ones(1,100);
die1=-sqrt(2)/2*ones(1,100);
se=[zeros(1,50) ones(1,50)];
% Goc pha cho Symbol 00 la 5pi/4, bien do la (-sqrt(2)/2;-sqrt(2)/2)
elseif chuoibit(n)==0 && chuoibit(n+1)==0;
die=-sqrt(2)/2*ones(1,100);
die1=-sqrt(2)/2*ones(1,100);
se=[zeros(1,50) zeros(1,50)];
% Goc pha cho Symbol 10 la 7pi/4, bien do la (sqrt(2)/2;-sqrt(2)/2)
elseif chuoibit(n)==1 && chuoibit(n+1)==0;
die=-sqrt(2)/2*ones(1,100);
die1=sqrt(2)/2*ones(1,100);
se=[ones(1,50) zeros(1,50)];
% Goc pha cho Symbol 11 la pi/4, bien do la (sqrt(2)/2;sqrt(2)/2)
elseif chuoibit(n)==1 && chuoibit(n+1)==1;
die=sqrt(2)/2*ones(1,100);
die1=sqrt(2)/2*ones(1,100);
se=[ones(1,50) ones(1,50)];
end
% Khai bao cac thanh phan song mang dua vao dieu che
c=cos(f*t);
s=sin(f*t);
cp=[cp die]; %Amplitude cosino
sp=[sp die1]; %Amplitude sino
mod=[mod c]; %cosino carrier (Q)
mod1=[mod1 s]; %sino carrier (I)
bit=[bit se];
end
% Tin hieu sau dieu che bang tong hai thanh phan
bpsk=cp.*mod+sp.*mod1;
% Ve hinh mo phong
% Tin hieu nhi phan o dau vao bo dieu che
subplot(4,1,1);
plot(bit,'linewidth',2);
grid on;
title('Hinh 1: Tin Hieu Nhi Phan Duoc Dua Vao Dieu Che')
axis([0 50*length(chuoibit) -1.5 1.5]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% Tin hieu duoc tach ra lam thanh phan nhanh 1
subplot(4,1,2);
plot(bit1,'r','linewidth',2);
grid on;
title('Hinh 2: Tin Hieu Nhi Phan O Nhanh 1')
axis([0 50*length(chuoibit) -1.5 1.5]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% Tin hieu duoc tach ra lam thanh phan nhanh 2
subplot(4,1,3);
plot(bit2,'g','linewidth',2);
grid on;
title('Hinh 3: Tin Hieu Nhi Phan O Nhanh 2')
axis([0 50*length(chuoibit) -1.5 1.5]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% Tin hieu duoc dieu che QPSK o dau ra
subplot(4,1,4);
plot(bpsk,'linewidth',2);
grid on;
title('Hinh 4: Song Hinh Sin Sau Khi Duoc Dieu Che QPSK')
axis([0 50*length(chuoibit) -1.5 1.5]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% -------------------BAI TAP LON---------------------
% Mon hoc: Mo Phong He Thong Thong Tin
% "BAI VIET MO PHONG VE DIEU CHE KHOA DICH PHA 4PSK"
% Giang vien huong dan: TS. Trinh Quang Khai
% Hoc vien thuc hien: Tran Quang Nhu
% Lop: Ky Thuat Dien Tu - Khoa 18 - He: Cao hoc
% Truong: Dai Hoc Giao Thong Van Tai Co So 2
%--------- Tp. Ho Chi Minh thang 1 nam 2011 ---------
% CACH CHAY FILE CHUONG TRINH
% Go Lenh dieucheqpsk_tranquangnhu([chuoi bit],tan so f])
% Vi du: dieucheQPSK_tranquangnhu([1 1 0 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 0],2)
% CHUONG TRINH
% m=input('[chuoi bit dau vao],tan so')
function qpsk(chuoibit,f)
% n=input('[chuoi bit dau vao],tan so')
if nargin > 2;
error('Tham So Dau Vao Khong Nhieu Hon 2 Gia Tri');
elseif nargin==1 % ?????????
f=1; % ???????????
thong bao ('ban da nhap dung');
end
if f<1;
Thong Bao('Tan So Phai La Gia Tri Lon Hon Hoac Bang 1');
end
% Kiem tra tong so bit cua chuoi co phai la so chan hay khong
l=length(chuoibit);
a=l/2;
b=ceil(a);
c=b-a;
if c~=0;
Thong Bao: ('Tong So Bit Nhi Phan Dau Vao Phai La Mot So Chan');
end
% Khai bao bien thoi gia t, cac ma tran su dung trong bai toan
t=0:2*pi/99:2*pi;
cp=[];
sp=[];
modI=[];
modQ=[];
bit=[];
bit1=[];
bit2=[];
bit0=[];
% Lay gia tri cac bit o vi tri le cho nhanh I
for n=1:length(chuoibit)/2;
if chuoibit(2*n-1)==0;
i=zeros(1,100);
else chuoibit(2*n-1)==1;
i=ones(1,100);
end
bit1=[bit1 i]; % CO THE BO DONG NAY
end
% Lay gia tri cac bit o vi tri chan cho nhanh Q
for n=1:length(chuoibit)/2;
if chuoibit(2*n)==0;
q=zeros(1,100);
else chuoibit(2*n)==1;
q=ones(1,100);
end
bit2=[bit2 q]; % CO THE BO DONG NAY
end
% Dung 2 bit cho 1 Symbol trong dieu che QPSK
for n=1:2:length(chuoibit);
% Dat trang thai goc pha cho cac ky tu
% Goc pha cho Symbol 11 la pi/4, bien do la (sqrt(2)/2;sqrt(2)/2)
if chuoibit(n)==1 && chuoibit(n+1)==1;
I=sqrt(2)/2*ones(1,100);
Q=sqrt(2)/2*ones(1,100);
se=[ones(1,50) ones(1,50)];
% Goc pha cho Symbol 01 la 3pi/4, bien do la (-sqrt(2)/2;sqrt(2)/2)
elseif chuoibit(n)==0 && chuoibit(n+1)==1;
I=-sqrt(2)/2*ones(1,100);
Q=sqrt(2)/2*ones(1,100);
se=[ones(1,50) zeros(1,50)];
% Goc pha cho Symbol 00 la 5pi/4, bien do la (-sqrt(2)/2;-sqrt(2)/2)
elseif chuoibit(n)==0 && chuoibit(n+1)==0;
I=-sqrt(2)/2*ones(1,100);
Q=-sqrt(2)/2*ones(1,100);
se=[zeros(1,50) zeros(1,50)];
% Goc pha cho Symbol 10 la 7pi/4, bien do la (sqrt(2)/2;-sqrt(2)/2)
elseif chuoibit(n)==1 && chuoibit(n+1)==0;
I=sqrt(2)/2*ones(1,100); %Q: die, chuyen thanh I
Q=-sqrt(2)/2*ones(1,100); %I: die1
se=[zeros(1,50) ones(1,50)];
end
% Khai bao cac thanh phan song mang dua vao dieu che
c=cos(f*t); % Khai bao ham Cos
s=sin(f*t); % Khai bao ham Sin
cp=[cp I]; %Gia tri bien do cua song hinh Cos
sp=[sp Q]; %Gia tri bien do cua song hinh Sin
modI=[modI c]; %Song mang hinh Cos cho nhanh I
modQ=[modQ s]; %Song mang hinh Sin cho nhanh Q
bit=[bit se];
end
% VE HINH MO PHONG
% Tin hieu nhi phan dau vao
subplot(6,1,1);
plot(bit,'linewidth',3)
grid on;
title('Hinh 1: Tin Hieu Nhi Phan Duoc Dua Vao Dieu Che')
axis([0 25*length(chuoibit) -1.5 2]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% Tin hieu duoc tach ra lam thanh phan nhanh 1
subplot(6,1,2);
plot(bit1,'r','linewidth',2);
grid on;
title('Hinh 2: Tin Hieu Nhi Phan O Nhanh I')
axis([0 50*length(chuoibit) -1.5 2]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% Tin hieu duoc tach ra lam thanh phan nhanh 2
subplot(6,1,3);
plot(bit2,'g','linewidth',2);
grid on;
title('Hinh 3: Tin Hieu Nhi Phan O Nhanh Q')
axis([0 50*length(chuoibit) -1.5 2]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% Tin hieu nhanh I sau dieu che 2PSK
I=cp.*modI;
subplot(6,1,4);
plot(I,'r','linewidth',2);
grid on;
title('Hinh 4: Song Hinh Sin O Nhanh I')
axis([0 25*length(chuoibit) -1.5 2]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
%Tin hieu nhanh Q sau dieu che 2PSK
Q=sp.*modQ;
subplot(6,1,5);
plot(Q,'g','linewidth',2);
grid on;
title('Hinh 5: Song Hinh Sin O Nhanh Q')
axis([0 25*length(chuoibit) -1.5 2]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% Tin hieu duoc dieu che QPSK o dau ra
qpsk=cp.*modI+sp.*modQ;
subplot(6,1,6);
plot(qpsk,'linewidth',3);
grid on;
title('Hinh 6: Song Hinh Sin Sau Khi Duoc Dieu Che QPSK')
axis([0 25*length(chuoibit) -1.5 3]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% TAI LIEU THAM KHAO
% [1]. Pham Hong Lien, "MatLab Va Ung Dung Trong Vien Thong", Dai Hoc Quoc
% Gia Tp. Ho Chi Minh, 2006
% [2]. Phan Thanh Tao, "Giao trinh MatLab", Dai Hoc Bach Khoa Da Nang, 2004
%------------------------THE END---------------------------
9-February-2011
% -------------------BAI TAP LON---------------------
% Mon hoc: Mo Phong He Thong Thong Tin
% "BAI VIET MO PHONG VE DIEU CHE KHOA DICH PHA 4PSK"
% Giang vien huong dan: TS. Trinh Quang Khai
% Hoc vien thuc hien: Tran Quang Nhu
% Lop: Ky Thuat Dien Tu - Khoa 18 - He: Cao hoc
% Truong: Dai Hoc Giao Thong Van Tai Co So 2
%--------- Tp. Ho Chi Minh thang 1 nam 2011 ---------
% CACH CHAY FILE CHUONG TRINH
% Go Lenh dieucheqpsk_tranquangnhu([chuoi bit],tan so f])
% Vi du: dieucheqpsk_tranquangnhu([1 1 0 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 0],2)
% CHUONG TRINH
function qpsk(chuoibit,f)
if nargin > 2;
error('Tham So Dau Vao Khong Nhieu Hon 2 Gia Tri');
elseif nargin==1 % ?????????
f=1; % ???????????
Thong bao ('ban da nhap dung');
end
if f<1;
Thong Bao('Tan So Phai La Gia Tri Lon Hon Hoac Bang 1');
end
% Kiem Tra Tong So Bit Cua Chuoi Co Phai La So Chan Hay Khong
l=length(chuoibit);
a=l/2;
b=ceil(a);
c=b-a;
if c~=0;
Thong Bao: ('Tong So Bit Nhi Phan Dau Vao Phai La Mot So Chan');
end
% Khai Bao Bien Thoi Gian t Va Cac Ma Tran Su Dung Trong Bai Toan
t=0:2*pi/99:2*pi;
AI=[];
AQ=[];
carrierI=[];
carrierQ=[];
bit=[];
bitI=[];
bitQ=[];
% Lay Gia Tri Cac Bit O Vi Tri Le Cho Nhanh I
for n=1:length(chuoibit)/2;
if chuoibit(2*n-1)==0;
i=zeros(1,100);
else chuoibit(2*n-1)==1;
i=ones(1,100);
end
bitI=[bitI i];
end
% Lay Gia Tri Cac Bit O Vi Tri Chan Cho Nhanh Q
for n=1:length(chuoibit)/2;
if chuoibit(2*n)==0;
q=zeros(1,100);
else chuoibit(2*n)==1;
q=ones(1,100);
end
bitQ=[bitQ q];
end
% Dung 2 Bit Cho 1 Symbol Trong Dieu Che QPSK
for n=1:2:length(chuoibit);
% Dat Trang Thai Goc Pha Cho Cac Ky Tu
% Goc pha cho Symbol 11 la pi/4, bien do la (sqrt(2)/2;sqrt(2)/2)
if chuoibit(n)==1 && chuoibit(n+1)==1;
I=sqrt(2)/2*ones(1,100);
Q=sqrt(2)/2*ones(1,100);
se=[ones(1,50) ones(1,50)];
% Goc pha cho Symbol 01 la 3pi/4, bien do la (-sqrt(2)/2;sqrt(2)/2)
elseif chuoibit(n)==0 && chuoibit(n+1)==1;
I=-sqrt(2)/2*ones(1,100);
Q=sqrt(2)/2*ones(1,100);
se=[ones(1,50) zeros(1,50)];
% Goc pha cho Symbol 00 la 5pi/4, bien do la (-sqrt(2)/2;-sqrt(2)/2)
elseif chuoibit(n)==0 && chuoibit(n+1)==0;
I=-sqrt(2)/2*ones(1,100);
Q=-sqrt(2)/2*ones(1,100);
se=[zeros(1,50) zeros(1,50)];
% Goc pha cho Symbol 10 la 7pi/4, bien do la (sqrt(2)/2;-sqrt(2)/2)
elseif chuoibit(n)==1 && chuoibit(n+1)==0;
I=sqrt(2)/2*ones(1,100); %Q: die, chuyen thanh I
Q=-sqrt(2)/2*ones(1,100); %I: die1
se=[zeros(1,50) ones(1,50)];
end
% Khai Bao Cac Thanh Phan Song Mang Dua Vao Dieu Che
c=cos(f*t); % Khai bao ham Cos
s=sin(f*t); % Khai bao ham Sin
AI=[AI I]; %Gia tri bien do cua song hinh Cos
AQ=[AQ Q]; %Gia tri bien do cua song hinh Sin
carrierI=[carrierI c]; %Song mang hinh Cos cho nhanh I
carrierQ=[carrierQ s]; %Song mang hinh Sin cho nhanh Q
bit=[bit se];
end
% VE HINH MO PHONG
% Tin hieu nhi phan dau vao
subplot(6,1,1);
plot(bit,'linewidth',3)
grid on;
title('Hinh 1: Tin Hieu Nhi Phan Duoc Dua Vao Dieu Che')
axis([0 25*length(chuoibit) -1.5 2]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% Tin hieu duoc tach ra lam thanh phan nhanh 1
subplot(6,1,2);
plot(bitI,'r','linewidth',2);
grid on;
title('Hinh 2: Tin Hieu Nhi Phan O Nhanh I')
axis([0 50*length(chuoibit) -1.5 2]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% Tin hieu duoc tach ra lam thanh phan nhanh 2
subplot(6,1,3);
plot(bitQ,'g','linewidth',2);
grid on;
title('Hinh 3: Tin Hieu Nhi Phan O Nhanh Q')
axis([0 50*length(chuoibit) -1.5 2]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% Tin hieu nhanh I sau dieu che 2PSK
I=AI.*carrierI;
subplot(6,1,4);
plot(I,'r','linewidth',2);
grid on;
title('Hinh 4: Song Hinh Sin O Nhanh I')
axis([0 25*length(chuoibit) -1.5 2]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
%Tin hieu nhanh Q sau dieu che 2PSK
Q=AQ.*carrierQ;
subplot(6,1,5);
plot(Q,'g','linewidth',2);
grid on;
title('Hinh 5: Song Hinh Sin O Nhanh Q')
axis([0 25*length(chuoibit) -1.5 2]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% Tin hieu duoc dieu che QPSK o dau ra
qpsk=AI.*carrierI+AQ.*carrierQ;
subplot(6,1,6);
plot(qpsk,'linewidth',3);
grid on;
title('Hinh 6: Song Hinh Sin Sau Khi Duoc Dieu Che QPSK')
axis([0 25*length(chuoibit) -1.5 3]);
xlabel('Thoi gian (t)')
ylabel('Bien do (A)')
% TAI LIEU THAM KHAO
% [1]. Pham Hong Lien, "MatLab Va Ung Dung Trong Vien Thong", Dai Hoc Quoc
% Gia Tp. Ho Chi Minh, 2006
% [2]. Phan Thanh Tao, "Giao Trinh MatLab", Dai Hoc Bach Khoa Da Nang, 2004
%------------------------THE END---------------------------
Các file đính kèm theo tài liệu này:
- M Phỏng (Bản Nhp)-Tran Quang Nhu (8-Feb-2011).docx