?? prb.m
字號:
%%%%% 循環譜檢測OFDM信號 %%%%%
clear;
clc;
%%% OFDM參數 %%%
%數據長度的1/8必須大于等于循環譜采樣長度
%數據速率 6-BPSK, 12-QPSK
%%%%%%%%%%%%%%%%
TXVECTOR.LENGTH = 2000; % 數據長度
TXVECTOR.DATARATE = 6; % 數據速率
trst_rate = 20e6; % 信號發射速率,恒定
fc = 100e6;
%%% 循環譜檢測參數 %%%
%檢測帶寬為 -fs/2 至 fs/2
%循環頻率分辨率為 fs/N
%頻率分辨率為 M*fs/N
%%%%%%%%%%%%%%%%%%%%%
fs = 300e6; % 采樣頻率
N = 2048; % 采樣長度
M = 20; % 平滑點數
snr = 11;
cnt = 100;
thres = 3;
seq = round(rand(1,cnt));
rlt = zeros(1,cnt);
%%% 信道參數 %%%
for i=1:cnt
%%% 隨機數據生成 %%%
if seq(i) == 1
PSDU = round(rand(1,8*TXVECTOR.LENGTH));
%%% OFDM信號生成 %%%
sig = transmitter(PSDU,TXVECTOR);
%%% 提升信號采樣率 %%%
s_n = ceil(fs/trst_rate); % 檢測采樣率近似為OFDM信號速率的整數倍
sig = sig(ones(s_n,1),:); % 碼元復制
sig = reshape(sig, 1, s_n*length(sig));
%%% 載波調制 %%%
sig_chnl = real(sig.*exp(j*2*pi*fc/fs*(0:length(sig)-1)));
%%% 高斯信道 %%%
sig_awgn = awgn(sig_chnl, snr);
else
%sig_awgn=sig_chnl;
sig_awgn = awgn(zeros(1,N), snr);
end
%%% 循環譜檢測 %%%
%cyclic_spectrum(sig_awgn, N, fs, M);
RT = cs_threshold(sig_awgn, N, fs, M, fc, trst_rate);
if RT >= thres
rlt(i)=1;
end
end
[number,ratio] = biterr(seq,rlt)
%normplot(RT(:));
%save('sigsnrrt', 'SNR', 'RT');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -