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

📄 sttc_test_2x2.m

📁 基于MIMO通信系统中的各种空时编译码算法
💻 M
字号:
% 2X2 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 matrix% you can modify the channel to a 2*2*length matrix, in which '2*2' means Nr*NtH=zeros(2,2,frame_length);for n=1:2    H(n,:,:)=(randn(size(sig_sttc))+j*randn(size(sig_sttc)))/sqrt(2); %Raylaigh channelendreceived_sig=zeros(size(sig_sttc));for n=1:length(sig_sttc)    received_sig(:,n)=reshape(H(:,:,n),2,2)*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)-reshape(H(:,:,1),2,2)*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)-reshape(H(:,:,n),2,2)*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 + -