?? guji.m
字號:
% =================================================
% 信道估計
clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%讀取文件內容
fidin=fopen('mp0.txt'); % 打開文件
%while ~feof(fidin) % 判斷是否為文件末尾
mp0=fgets(fidin); %獲取文件內容,mp0 中存放
%end;; %導入基本碼
K=16; %設置用戶數
K_rice=6;
%L=144; %在burst中傳輸的midamble碼長度
%W=16; %信道沖激響應長度
%Q=16; %擴頻因子
%N=22; %每個用戶的數據比特個數(一個Burst中)
%M=4; % QPSK調制
K_rice=10^(K_rice/10);
SNR_dB=[-10 0 10 25];
x=length(SNR_dB);
SNR=10.^(SNR_dB./10);
G=midamble(mp0,16,K); %調用函數得到生成矩陣G 16為最大的用戶數
q=length(SNR_dB);
for i=1:q
H=zeros(128,q);
[h,e]=find_e_h(K_rice,SNR(i),K);
%根據信道估計算法,求出H
H(:,i)=ifft(fft(e(1:128))./fft(G(1:128,1)));
%用零把h矩陣補成行:128/K,列:(K)的矩陣,并按列排成一列
[m,n]=size(h);
h1=zeros(128/K-m,K);
h=[h;h1];
h0=h(:);
%繪制h與h0的圖形
t=0:127;
subplot(x,1,i);
plot(t,abs(h0),t,abs(H(:,i)));
legend('h0','H');
end
%% 下面是以后的工作,由于時間問題沒有完成!!
%**************************************************************
%以下為構造A矩陣
% b=zeros(K,Q+W-1);
% for user_index=1:K
% b(user_index,:)=conv(c(user_index,:),h_est(W*(user_index-1)+1:W*(user_index-1)+W));
% %b(user_index,:)=conv(c(user_index,:),h);
% end
% b=b.';
% A=zeros(N*Q+W-1,N*K);
% for n=1:N
% A([(n-1)*Q+1:(n-1)*Q+Q+W-1],[K*(n-1)+1:K*(n-1)+K])=b;
% end
%構造A矩陣至此
%**************************************************************************
% e1d=e(1:N*Q+W-1); %subframe中preamble中的數據
% e2d=e(N*Q+L+1:2*N*Q+L+W-1); %subframe中postamble中的數據
% M_zf=inv(A'*A)*A';%ZF-BLE
% d1_est=M_mmse*(e1d.'); %d1_est為preamble的估計值
% d2_est=M_mmse*(e2d.'); %d2_est為postamble的估計值
% user_symbols_est=[d1_est,d2_est];
%計算誤符號率
%Pe=0;
%for slot_number=1:M
% for user_index=1:K
% Pe=Pe+sum(abs(user_symbols(user_index,M*(slot_number-1)+1:M*(slot_number-1)+M)-user_symbols_est(user_index,M*%(slot_number-1)+1:M*(slot_number-1)+M)));
% end
%end
%Pe=Pe/(4*N*M);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -