⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sttc_test_2x1.m

📁 基于MIMO通信系统中的各种空时编译码算法
💻 M
字号:
% 2X1 STTC,QPSK,4 states%% initializationclear all;close all;clc;frame_length=10000;original_bits=randint(frame_length,2);code_matrix(:,:,1)=[0 0 0 0;                    1 1 1 1;                    2 2 2 2;                    3 3 3 3];code_matrix(:,:,2)=[0 1 2 3;                    0 1 2 3;                    0 1 2 3;                    0 1 2 3];%% STTC codingorig_num=bi2de(original_bits,'left-msb'); % 0~3sig_sttc=zeros(2,length(orig_num));now_num=1;for ii=1:length(orig_num)    next_num=orig_num(ii,1)+1;  % 1~4    sig_sttc(:,ii)=reshape(code_matrix(now_num,next_num,:),2,1);    now_num=next_num;endsig_sttc=qammod(sig_sttc,4);%% channel matrixH=(randn(size(sig_sttc))+j*randn(size(sig_sttc)))/sqrt(2); %Raylaigh channelH=H.';received_sig=zeros(frame_length,1);for n=1:frame_length    received_sig(n,1)=H(n,:)*sig_sttc(:,n);end%% viterbi algorithmsurvivors=zeros(4,frame_length);s_temp=survivors;distance=zeros(4,1); % Euclidian distanced_temp=distance;d_q=zeros(1,4);%snr=20dbreceived_sig=received_sig+sqrt(2/(10^(20/10)))*(randn(size(received_sig))+j*randn(size(received_sig)));for p=1:4     X_e=qammod(reshape(code_matrix(1,p,:),2,1),4);    distance(p,1)=sum(abs(received_sig(1,:)-H(1,:)*X_e).^2);    survivors(p,1)=p-1;endfor n=2:frame_length    for p=1:4 % check state_p        for q=1:4 % check state_q to state_p            X_e=qammod(reshape(code_matrix(q,p,:),2,1),4);            d_q(q)=sum(abs(received_sig(n,:)-H(n,:)*X_e).^2)+distance(q,1);        end        [v in]=min(d_q);        d_temp(p,1)=v;        s_temp(p,1:n)=[survivors(in,1:(n-1)) p-1];    end    distance=d_temp;    survivors=s_temp;end[v in]=min(distance);decoded_num=survivors(in,:);decoded_num=decoded_num.';decoded_bits=de2bi(decoded_num,'left-msb');[err_num ber]=biterr(original_bits,decoded_bits);ber

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -