Truyền dẫn baseband và passband
223
Trong thí dụ trên, chúng ta thấy rằng hàm qammod cũng như các hàm điều chế số khác
trong MATLAB đều trả về vector phức, do đó ta chưa thể vẽ được dạng sóng của tín hiệu sau
khi điều chế. Sở dĩ như vậy là vì MATLAB sử dụng phưong pháp biểu diễn tín hiệu điều chế
bằng tín hiệu băng gốc tương đương. Nếu tín hiệu điều chế có dạng:
)
t
f
2
sin(
)
t
(
Y
)
t
f
2
cos(
)
t
(
Y
y
c
2
c
1
θ
+
π
−
θ
+
π
=
(15.1)
trong đó
c
f là tần số và
θ là pha ban đầu của sóng mang, thì biểu diễn băng gốc tương đương
của nó sẽ là:
θ
+
j
2
1
e
)]
t
(
jY
)
t
(
Y
[
(15.2)
Cách biểu diễn này làm giảm bớt số lượng các phép tính cần thực hiện khi mô phỏng bởi vì
nếu biểu diễn bằng tín hiệu thực thì phải thực hiện lấy mẫu ở tốc độ cao hơn tần số sóng
mang.
Muốn vẽ dạng sóng tín hiệu sau khi điều chế, ta phải chuyển đổi dạng tín hiệu băng gốc thu
được sau khi dùng các hàm điều chế số thành tín hiệu băng dải thực. Các thông số cần có để
thực hiện điều này là tốc độ bit và tần số lấy mẫu. Ví dụ sau đây minh hoạ quá trình này.
Ví dụ 15-3. Vẽ dạng sóng tín hiệu sau khi điều chế ở ví dụ 15-2, giả sử tốc độ ký hiệu bằng
1Kbps, tần số sóng mang bằng 10KHz, tần số lấy mẫu bằng 100KHz.
% Thiết lập các thông số
fd = 1000; % Tốc độ ký hiệu
fc = 10*fd; % Tần số sóng mang
fs = 10*fc; % Tần số lấy mẫu
len = length(y)*fs/fd; % Số mẫu của tín hiệu y
Yreal = real(y);%Tín hiệu Y1(t) là phần thực của tín hiệu điều chế băng gốc
y
Yimag = imag(y);% Tín hiệu Y2(t) là phần ảo của tín hiệu điều chế băng gốc
y
% Khởi tạo vector tín hiệu
y1 = [];
y2 = [];
xtmp=[];
ztmp=[];
for k=1:length(y) % Xét từng chu kỳ ký hiệu
sigx=xsym(k,1)*ones(1,100); % Tạo 100 mẫu giá trị bằng x
sig1=Yreal(k,1)*ones(1,100); % Tạo 100 mẫu giá trị bằng Yreal
sig2=Yimag(k,1)*ones(1,100); % Tạo 100 mẫu giá trị bằng Yimag
sigz=zsym(k,1)*ones(1,100); % Tạo 100 mẫu giá trị bằng z
y1=[y1 sig1];
y2=[y2 sig2];
xtmp = [xtmp sigx];
ztmp = [ztmp sigz];
end
time = 0:(1/fs):(len-1)/fs;
% Vector thời gian