MATLAB ỨNG DỤNG TRONG VIỄN THÔNG - Trang 264

Kênh truyền và đánh giá chất lượng kênh truyền

233

kênh truyền theo phương pháp thông thường (phương pháp băng dải). Ví dụ sau đây sẽ minh
hoạ điều này.
Ví dụ 16-2. Viết chương trình điều chế 1 chuỗi bit nhị phân tốc độ 8Kbps bằng phương
pháp BPSK với sóng mang 100KHz và phát đi trên kênh truyền có nhiễu AWGN với

0

b

N

/

E

=10dB, sau đó giải điều chế. Vẽ các tín hiệu phát và thu.

Chọn tần số lấy mẫu

s

f

bằng 1MHz.

Phương pháp thực hiện tương tự như ví dụ 15-3.

% Thiết lập các thông số

N = 10;

% Số bit

x = randint(N,1); % Chuỗi bit ngẫu nhiên N bit

M = 2;

% Số mức của tín hiệu

k = 1; %

Fb = 8000; % Tốc độ bit

Fc = 40000; % Tần số sóng mang

Fs = 400000;

% Tần số lấy mẫu

EbNo = 10; % Đơn vị dB

Nsamp = floor(Fs/Fb*N); % Số mẫu

Time = [0:1/Fs:(Nsamp-1)/Fs]; % Vector thời gian

% Xây dựng các tín hiệu

% Tín hiệu tin tức

xmsg = zeros(1,Nsamp);

for i=1:Nsamp

xmsg(i) = x(floor((i-1)*Fb/Fs)+1);

end

% Sóng mang

xcar = cos(2*pi*Fc*Time);

% Tín hiệu điều chế BPSK

ytx = (2*xmsg-1).*xcar;

% Cộng nhiễu

snr = EbNo + 10*log10(k) - 10*log10(Nsamp);

ynoisy = awgn(ytx,snr,'measured');

% Giải điều chế

ytmp = ynoisy.*xcar;

% Nhân với sóng mang

[num,den]=butter(2,Fc/(Fs/2));% Bộ lọc thấp Butterworth bậc 2, tần số cắt

Fc

ztmp = filter(num,den,ytmp); % Lọc bỏ tần số cao

for i = 1:length(x)

% Lấy mẫu và quyết định

if ztmp(floor(((i-1)/Fb+1/2/Fb)*Fs)) > 0 % Lấy mẫu ở giữa bit

z(i) = 1;

% Ngưỡng quyết định là 0

else

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.