📄 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 + -