Chương trình nguồn
Trang 1CHƯƠNG 3
CHƯƠNG TRÌNH NGUỒN
Có tất cả 32 file chương trình chính, ở đây chỉ trình bày những chương trình chính.
Chương trình khởi động (init.m)
% R : tốc độ bit
% Fc : tần số sóng mang
% N : chiều dài bit cần truyền
% s : chuỗi bit truyền
% Sample : số mẫu trong 1 bit
% A : biên độ sóng mang
% bittrain : số bit huấn luyện
% bittransfer : số bit truyền mỗi lần
Trang 3save loainhieu HCheckNoise HCheckFading HCheckCoChannel HRadioSNR SNRNoise Means Vars SNRFad SourceFad SNRCo SourceCo;
if HCheckFading
Ps=0.5*A^2; %Cong suat tin hieu
Pn=Ps*10^(-SNRFad/10); %Cong suat nhieu tong cong
Trang 4load loainhieu PhaseShiftFad RatioFad SourceFad;
global bittransfer Info Sample A t ;
Trang 5Fadi(bittransfer*Sample:-1:PhaseShiftFad(i)+1)=Fadi(bittransfer*Sample-PhaseShiftFad(i):-1:1);
Fadi(1:1:PhaseShiftFad(i))=0;
elseif PhaseShiftFad(i)<0
PhaseShiftFad(i):1:bittransfer*Sample);
Fadi(1:1:bittransfer*Sample+PhaseShiftFad(i))=Fadi(1-Fadi(bittransfer*Sample+PhaseShiftFad(i)+1:1:bittransfer*Sample)=0;
load loainhieu RatioCo PhaseShiftCo SourceCo;
global R Fc bittransfer Sample t t0 A;
T=1/R;
i=1;
out=0;
while i<=SourceCo
Rn=R; %Toc do bit nhieu Rn
Nn=ceil(bittransfer*Rn/R); %so bit cua tin hieu nhieu dong kenh Nn=ceil(Nn/2)*2; %Bao dam Nn la so chan bit dieu che QPSK Tn=1/Rn;
n=randint(1,Nn); %Tao bit nhieu
if PhaseShiftCo(i)>0
PhaseShiftCo(i):-1:1);
Coi(1:1:PhaseShiftCo(i))=0;
elseif PhaseShiftCo(i)<0
PhaseShiftCo(i):1:bittransfer*Sample);
Trang 6Chương trình chạy mô phỏng (callbackrun.m)
function callbackrun;
global Fc R N A t t0 Sample TypeMod s bittrain bittransfer;
global Info FiltedTransmit Receive FiltedReceive FiltedLow ss;
global AfterEq Decision;
% Info : Tín hiệu điều chế không có nhiễu
% FiltedTransmit : Tín hiệu điều chế sau khi qua BPF
% Receive : Tín hiệu thu
% FiltedReceive : Tín hiệu thu sau khi qua BPF
% FiltedLow : Tín hiệu thu sau LPF
% ss : chuỗi bit thu được không qua bộ cân bằng
% AfterEq : Tín hiệu thu sau khi qua bộ cân bằng
% Decision : Chuỗi bit thu được sau khi qua bộ cân bằng
Trang 9Chương trình điều chế BPSK không có nhiễu (bpsk.m)
ref=A*(cos(wt+sOdd(ceil(tt*R-0.1/Sample))*pi)-sin(wt+sEven(ceil(tt*R-ref=reshape(ref,2*Sample,4)';
for i=1:bittransfer/2
Info((i-1)*2*Sample+1:i*2*Sample)=ref(2*s(2*i-1)+s(2*i)+1,:);
end
clear wt sEven sOdd ref T tt;
Chương trình giải điều chế BPSK không có nhiễu (debpsk.m)
Trang 10Chương trình giải điều chế QPSK không có nhiễu (debpsk.m)
Chương trình thiết kế bộ lọc băng thông BPF (loc.m)
% Fb : tần số bit thực
clear passband bac Bb Ab;
Chương trình thiết kế bộ lọc thông thấp LPF (lowpass.m)
clear passband bac Bb Ab;
Chương trình lưu các thông số cần cho mạng Neural Networks (luutrain.m)
function luutrain;
FcnName=['compet ';'hardlim ';'hardlims';'logsig ';'poslin ';'purelin ';'radbas ';'satlin ';'satlins ';'softmax ';'tansig ';'tribas '];
Trang 14load luutrain HSliderTapDelay;
global Sample bittransfer;
Trang 16%Cong suat nhieu Fading
clear Pn Ps Pc Pw Pf Cau HStaticTotalSNR;
Chương trình thiết kế bộ quyết định (detector.m)
function out=detector(signal);
global Sample bittransfer R TypeMod s;
T=1/R;
if TypeMod=='BPSK'
Trang 18Hz=['Carrier Freq ' num2str(Fc/1000) ' KHz'];
Rate=['Bit Rate ' num2str(R/1000) ' Kbps'];
h1 = uicontrol('Parent',h,
'Units','points',
'BackgroundColor',[0.75294117647 0.75296470588 0.752941176588], 'Callback','close(gcf);Htrain=findobj(''tag'',''train'');set(Htrain,''Visible'',''on'');clear Htrain;',
Trang 19'BackgroundColor',[0.752941176488 0.751176470588 0.75294110588], 'Callback','set(gcf,''visible'',''off'');spectrum;',
Trang 20'Tag','TextMod');
end
BER2=['Real BER before train ' num2str(berpre,5)];
BER3=['Real BER after train ' num2str(bertrain,5)];
h1 = uicontrol('Parent',h,
'Units','points',
'BackgroundColor',[0.803921568621 0.803921568627 0.80392156851], 'FontSize',12,
Trang 21h1 = uicontrol('Parent',h,
'Units','points',
'BackgroundColor',[0.8 0.807843137254902 0.807843137254902], 'FontName','Vni-book',
'FontSize',11,
'HorizontalAlignment','left',
'ListboxTop',0,
'Position',[220 319.25 100 15],
Trang 22'ListboxTop',0,
Trang 23'ListboxTop',0,
'Position',[360 368 10 10],
Trang 24'ListboxTop',0,
'Position',[548.25 368 10 10],
Trang 27BER2=['Real BER before train ' num2str(berpre,5)];
BER3=['Real BER after train ' num2str(bertrain,5)];
global t Sample sobit line;
StrLegend=['Data Input ';'Modulated ';'Transmit Sig
';'Receive Sig ';'After BPF Rev ';'After LPF Rev ';'Without Eq ';'After Eq ';'With Eq '];
Trang 29KẾT LUẬN
Ngày nay thông tin di động rất phổ biến ở mọi nơi, ngay cả ở Việt Nam điện thoại di động cũng đã được sử dụng rộng rãi Khoa học kỹ thuật ngày càng phát triển không ngừng, hệ thống thông tin di động cũng ngày càng cải thiện Lĩnh vực Neural Networks là một kỹ thuật tiến tiến, có rất nhiều ứng dụng như nhận dạng, dự đoán, phân loại, điều khiển, xử lý tín hiệu, hình ảnh … Ứng dụng Neural Networks vào bộ cân bằng để triệt nhiễu trên băng tần gốc là một kỹ thuật mới, đem lại hiệu quả khá cao Tuy nhiên khoa học phát triển không ngừng nên nhiều thành tựu, ứng dụng mới được ra đời, và do đó Neural Networks cũng cần phải được cải tiến để đưa ra những mô hình mạng hiệu quả hơn.
Qua những kết quả và nhận xét rút ra từ quá trình mô phỏng có thể kết luận rằng ứng dụng Neural Networks vào bộ cân bằng trong việc triệt nhiễu có thể cải thiện được BER trong hệ thống thông tin rất nhiều Không phải tất cả các loại mạng đều đem lại hiệu quả cao, nhưng nếu chọn mô hình mạng thích hợp thì có khả năng triệt nhiễu tốt.
Luận văn đã thực hiện đầy đủ nhiệm vụ là giới thiệu về Neural Networks và ứng dụng vào việc triệt nhiễu trong băng gốc của hệ thống GSM Ứng dụng được thử nghiệm qua việc mô phỏng bằng phần mềm Matlab 5.3 có giao diện giao tiếp với người sử dụng Do mới làm quen với Matlab và còn ít kinh nghiệm cho nên chương trình không hoàn hảo, mong quý thầy cô và các bạn xem xét góp ý.
Từ ý tưởng của đề tài này ta có thể phát triển hơn nữa, ứng dụng Neural Networks vào bộ cân bằng mù, đưa ra những mô hình mạng có thể triệt nhiễu tốt mà không cần biết trước chuỗi bit huấn luyện