7 Mụ phỏng với Ansoft Designer
4.2 Chuỗi bit phỏt ngẫu nhiờn: trường hợp 40 bit đầu tiờn
Bước 2. Chuẩn bị điều chế
Trong vớ dụ này sẽ sử dụng điều chế 16-QAM. Để thực hiện điều chế QAM cần sử dụng đối tượng là một bộ điều chế QAM được định nghĩa bởi cõu lệnh: modem.qammod(M), với M là bậc điều chế. Do đầu vào của cỏc bộ điều chế của Matlab nhận cỏc giỏ trị thập phõn từ0đến(M-1)nờn cần phải chuyển cỏc bit thành cỏc số thập phõn (binary-to-decimal) nhờ cõu lệnh bi2de. Cõu lệnh này nhận tổ hợp 4 bit và cho ra một số thập phõn tương ứng. Để làm điều này, chỳng ta thực hiện chuyển vộc-tơ cột nhị phõn thành một ma trận với k = log2M cột và n/k hàng. Thao tỏc này được thực hiện như sau: reshape(x, n/k, k). Để chuyển cỏc tổ hợp k bit thành một số thập phõn, sử dụng cõu lệnh: xsym = bi2de(reshape(x, n/k, k), ’left-msb’), với’left-msb’là tựy chọn của hàmbi2decho phộp nhận biết bit cao nhất là bit bờn trỏi. Để quan sỏt cỏc số nguyờn được tạo ra cú thể sử dụng cõu lệnh stemgiống ở trờn. Tập hợp đầy đủ của đoạn mó lệnh là:
%% Bit-to-Symbol Mapping
4.3. KHAI THÁC CÁC PHẦN TỬ CỦA HỆ THỐNG TRUYỀN THễNG71
xsym = bi2de(reshape(x,k,length(x)/k).’,’left-msb’); %% Stem Plot of Symbols
% Plot first 10 symbols in a stem plot. figure; % Create new figure window. stem(xsym(1:10));
title(’Random Symbols’);
xlabel(’Symbol Index’); ylabel(’Integer Value’);
1 2 3 4 5 6 7 8 9 10 0 2 4 6 8 10 12 14 Random Symbols Symbol Index Integer Value
Hỡnh 4.3: Chuỗi thập phõn biến đổi từ chuỗi bit ngẫu nhiờn.
Trong tập cõu lệnh trờn, cõu lệnhfigure nhằm tạo ra một cửa sổ hỡnh vẽ mới để kết quả biểu diễn mới khụng đố lờn kết quả cũ. Cỏc số thập phõn được tạo ra từ chuỗi bit ngẫu nhiờn được biểu diễn trờn Hỡnh 4.3.
Bước 3. Điều chế dữ liệu sử dụng 16-QAM
Để thực hiện điều chế 16-QAM cần thực hiện khởi tạo bộ MODEM điều chế nhờ cõu lệnh modem.qammod(M), sau đú gọi hàm điều chế để tiến hành điều chế, tức là:
72CHƯƠNG 4. Mễ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
Kết quả đầu ra bộ điều chế y là một vộc-tơ cột chứa cỏc ký hiệu phức thuộc chũm sao tớn hiệu 16-QAM. Để quan sỏt chũm sao tớn hiệu sau khi điều chế, cú thể sử dụng cõu lệnh scatterplot.
Bước 4. Tạo ảnh hưởng của kờnh truyền
Trong vớ dụ này, giả thiết kờnh truyền chỉ chịu ảnh hưởng của tạp õm Gauss trắng cộng tớnh (AWGN: Additive White Gaussian Noise). Do nhiệm vụ của mụ phỏng truyền dẫn tớn hiệu số thường là để quan sỏt chất lượng tớn hiệu thu theo hàm của Eb/N0 nờn cần phải tạo được tạp õm cú mức độ ảnh hưởng tương ứng. Để tạo được tạp õm AWGN cú thể sử dụng hàm awgnnhư vớ dụ sau:
%% Transmitted Signal ytx = y;
%% Channel
% Send signal over an AWGN channel. EbNo = 10; % In dB
snr = EbNo + 10*log10(k) - 10*log10(nsamp); ynoisy = awgn(ytx,snr,’measured’);
%% Received Signal yrx = ynoisy;
Do tớn hiệu truyền trờn kờnh truyền là cỏc ký hiệu phức chịu ảnh hưởng của tạp õm nờn trong trường hợp này cần tạo ra tạp õm theo tỷ số cụng suất tớn hiệu trờn cụng suất tạp õm (SNR). Tỷ số này được xỏc định như sau:
SNR = EbN0 + 10*log10(k) – 10*log10(nsamp);
trong đúEbN0 là tỷ sốEb/N0 tớnh theo đơn vị dB,k là số bit trong một ký hiệu, cũn nsamp là tỷ lệ lấy mẫu quỏ hạn (oversampling) và bằng 1 trong vớ dụ này. Để đưa ảnh hưởng của tạp õm vào tớn hiệu phỏt y, sử dụng cõu lệnh sau:
4.3. KHAI THÁC CÁC PHẦN TỬ CỦA HỆ THỐNG TRUYỀN THễNG73
ynoisy = awgn(ytx, SNR, ’measured’);
tựy chọn ’measured’của hàmawgncho phộp tự tớnh cụng suất tớn hiệu ytx để đặt ảnh hưởng của tạp õm tương ứng với tỉ số SNR. Tớn hiệu thu được tại mỏy thu chớnh là ynoisy, hay núi cỏch khỏc
yrx = ynoisy.
Bước 5. Phõn tớch đồ thị chũm sao
Để vẽ chũm sao của tớn hiệu, sử dụng hàm scatterplot. Trong vớ dụ này, ta sử dụng scatterplot cho cả tớn hiệu phỏt và tớn hiệu thu để quan sỏt ảnh hưởng của tạp õm đối với tớn hiệu phỏt và so sỏnh hai tớn hiệu này với nhau:
%% Scatter Plot
% Create scatter plot of noisy signal and transmitted % signal on the same axes.
h = scatterplot(yrx(1:nsamp*5e3),nsamp,0,’g.’); hold on;
scatterplot(ytx(1:5e3),1,0,’k*’,h); title(’Received Signal’);
legend(’Received Signal’,’Signal Constellation’); axis([-5 5 -5 5]); % Set axis ranges.
hold off;
Cõu lệnhh = scatterplot(yrx(1:nsamp*5e3),nsamp,0,’g.’) thực hiện vẽ chũm sao của tớn hiệu thu được trước khi giải điều chế, cũn cõu lệnh scatterplot(ytx(1:5e3),1,0,’k*’,h) vẽ chũm sao tớn hiệu của tớn hiệu phỏt trờn cựng hỡnh vẽ để tiện so sỏnh. Kết quả thu được được minh họa trờn Hỡnh 4.4. Từ hỡnh vẽ cú thể thấy cỏc điểm tớn hiệu thu (màu xanh lỏ cõy) bị tỏn xạ xung quanh điểm tớn hiệu phỏt (màu đen) do ảnh hưởng của cỏc mẫu tạp õm. Mức độ tỏn xạ của tớn hiệu thu phụ thuộc vào phương sai của tạp õm.
74CHƯƠNG 4. Mễ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX −5 −4 −3 −2 −1 0 1 2 3 4 5 −5 −4 −3 −2 −1 0 1 2 3 4 5 Quadrature In−Phase Received Signal Received Signal Signal Constellation