?? test3.m
字號:
%% 測試 ofdm,畫仿真曲線
%%
%% 有無添加CP對系統性能的影響
%% 三條多徑
close all;clear all; clc; tic ; %計時開始
global CP_len;
global nSubC;
global ifft_len;
global bitPerSymbol;
global symbolPerCarrier;
global s_len;
global fade; %信道衰弱
%% 測試參數
%SNR = 40; % dB
CP_len = 0;
nSubC = 48;
ifft_len = 256;
bitPerSymbol = 2;
symbolPerCarrier = 50;
fade = [0, 0, 0, 0.4, 0.3]; % 信道參數,下標為延時點數,值為衰減系數
% 開始測試
s_len = nSubC*bitPerSymbol* symbolPerCarrier;
SNR = 0:2:30;
ber1 = zeros(1,length(SNR));
ber2 = zeros(1,length(SNR));
for kk = 1:length(SNR)
max = floor((2^(kk))/50)+10;
fprintf('仿真信噪比: %d\n', SNR(kk));
fprintf('仿真點數: %d\n', max*nSubC*bitPerSymbol*symbolPerCarrier);
CP_len = 0;
ber = 0;
for m = 1:max
% 生成用于測試的隨機比特
s_in = floor( rand(1, s_len )*2 );
sch = ofdm_mod_neq(s_in);
sch = channel(sch,SNR(kk));
s_out = ofdm_demod_neq(sch);
%計算誤比特率
err_count = sum(abs(s_in-s_out));
ber = ber + err_count/s_len ;
end
ber1(kk) = ber/max;
fprintf('cp=0 :%f\n',ber1(kk));
CP_len = 16;
ber = 0;
for m = 1:max
% 生成用于測試的隨機比特
s_in = floor( rand(1, s_len )*2 );
sch = ofdm_mod_neq(s_in);
sch = channel(sch,SNR(kk));
s_out = ofdm_demod_neq(sch);
%計算誤比特率
err_count = sum(abs(s_in-s_out));
ber = ber + err_count/s_len;
end
ber2(kk) = ber/max ;
fprintf('cp=16 :%f\n\n',ber2(kk));
end
figure(2);
semilogy(SNR,ber1,'o-');
hold on;
semilogy(SNR,ber2,'r*-');
xlabel('SNR in dB');
ylabel('Bit Error Rate');
legend('no CP','CP');
grid;
toc
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -