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

📄 theory.m

📁 alamouti 空频分组码---在时变信道下SFBC-OFDM
💻 M
字号:
%BER in Theory
%hold on;
%clear;

% parameters
d = 1;                                              % Tao_rms/T
M = 12;                                             % Number of paths
N = 128;                                            % Number of subcarries
fm = 0;                                            % Maximum Doppler Spread
fs = 800000;                                        % Sampling Rate 1/T

% besselJ function
J = besselj(0, 2*pi*fm/fs*(0:N-1));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Conventional Detection %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Sigma_H = Pf(0, 0)    -- Signal response correlation
%Sigma_H = (N + 2 * J(2:N) * (N-1:-1:1).')/N/N;
Sigma_H = Correlation (0, 0, 0, 0, d, M, N, fm, fs);

% Pf = Pf(0, 1)         -- Frequency domain correlation 
%Pf = ( (1-exp(-1/d))*(1-exp(-M/d)*exp(-sqrt(-1)*2*pi*M/N)) )/( (1-exp(-M/d))*(1-exp(-1/d)*exp(-sqrt(-1)*2*pi/N))); % * Sigma_H;
Pf = Correlation (0, 0, 1, 1, d, M, N, fm, fs)/Sigma_H;

% Sigma_C = 1 - Sigma_H -- Intercarrier Interference
Sigma_C = 1 - Sigma_H; % * (1 + abs(Pf^2))/2;
%Sigma_C = N*(N-1);
%for n = 1 : N-1
%    for l = 1 : N-1
%        Sigma_C = Sigma_C+ 2*(N-l)*J(l)*cos(2*pi*l*n/N);
%    end
%end
%Sigma_C = Sigma_C/N/N;

%%%%   BER in Theory   %%%%
SNR_Curve = 0:0.1:40;                               % Es/N0
N0 = 10.^(-SNR_Curve/10);                           % N0 (Es = 1 assumed)
%N0 = 0;
Sigma_W = 2*(N0+Sigma_C);                           % ICI plus Noise
Gama_a = 2*Sigma_H./Sigma_W;                        % Average Signal Noise Intercarrier Interference Ratio
Gama_a_SML = 2*Gama_a./(2+(1-abs(Pf^2))*Gama_a);

Temp = sqrt(Gama_a./(2+Gama_a));
Temp_SML = sqrt(Gama_a_SML./(2+Gama_a_SML));
% BER expression for 1Tx + 1Rx system
T_BER_OFDM = (1-sqrt(Gama_a./(1+Gama_a)))/2;
% BER expression for Zero Force detection
T_BER_ZF = (1-abs(Pf^2))*(1-Temp)/2 + abs(Pf^2)*(1-Temp).^2.*(2+Temp)/4;
% BER expression for Joint Maxima Likelihood detection
T_BER_JML = (1-Temp).^2.*(2+Temp)/4;
% BER expression for Simple Maxima Likelihood detection
T_BER_SML = (1-Temp_SML).^2.*(2+Temp_SML)/4;
% BER expression for Decision Feedback detection
T_BER_DF = (T_BER_ZF + T_BER_JML)/2;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%     New Detection     %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Sigma_H = Pf(0, 0) -- Signal response correlation
Sigma_H_new = real(Correlation (1, 0, 1, 0, d, M, N, fm, fs) + Sigma_H);

% Pf = Pf(0, 1)      -- Frequency domain correlation 
temp = Correlation (1, 0, 0, 1, d, M, N, fm, fs);
Pf_new = ( -temp + Pf * Sigma_H ) / Sigma_H_new;

% Sigma_C = 1 - Sigma_H -- Intercarrier Interference
Sigma_C_new = 1 - Sigma_H_new;% * (1 + abs(Pf_new^2))/2;

%%%%   BER in Theory     %%%%
Sigma_W_new = 2*(N0+Sigma_C_new);                           % ICI plus Noise
Gama_a_new = 2*Sigma_H_new./Sigma_W_new;                    % Average Signal Noise Intercarrier Interference Ratio
Gama_a_new_SML = 2*Gama_a_new./(2+(1-abs(Pf_new^2))*Gama_a_new);

Temp = sqrt(Gama_a_new./(2+Gama_a_new));
Temp_SML = sqrt(Gama_a_new_SML./(2+Gama_a_new_SML));
% BER expression for Zero Force detection
T_BER_ZF_new = (1-abs(Pf_new^2))*(1-Temp)/2 + abs(Pf_new^2)*(1-Temp).^2.*(2+Temp)/4;
% BER expression for Joint Maxima Likelihood detection
T_BER_JML_new = (1-Temp).^2.*(2+Temp)/4;
% BER expression for Simple Maxima Likelihood detection
T_BER_SML_new = (1-Temp_SML).^2.*(2+Temp_SML)/4;
% BER expression for Decision Feedback detection
T_BER_DF_new = (T_BER_ZF_new + T_BER_JML_new)/2;

% SINR Gain
% plot(SNR_Curve, 10*log10(Gama_a_new./Gama_a), 'b');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%         Plot          %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%semilogy(SNR_Curve,T_BER_OFDM   ,'c'  , ...
%         SNR_Curve,T_BER_JML    ,'r'  , SNR_Curve,T_BER_SML    ,'m' ,  SNR_Curve,T_BER_ZF    ,'b',   SNR_Curve,T_BER_DF    ,'k', ...
%         SNR_Curve,T_BER_JML_new,'r-.', SNR_Curve,T_BER_SML_new,'m-.', SNR_Curve,T_BER_ZF_new,'b-.', SNR_Curve,T_BER_DF_new,'k-.');
%semilogy(SNR_Curve,T_BER_ZF    ,'b', SNR_Curve,T_BER_ZF_new,'b-.', SNR_Curve,T_BER_JML    ,'r', SNR_Curve,T_BER_JML_new    ,'r-.');
%grid on;
%xlabel('Eb/N0 in dB');ylabel('Bit Error Rate');
%legend('1Tx + 1Rx', 'JML', 'SML', 'ZF', 'DF', 'JML (new)', 'SML (new)', 'ZF (new)', 'DF (new)');
%title('BER Expressions in Theory');

⌨️ 快捷键说明

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