D
dhruva
Guest
선생님
난 MATLAB에 smulating 오전 OFDM
하지만이 언급한 코드 난에의 CI과 BER (즉, SNR을 n 비트 에러 비율 그래프를 그릴 수없는 유일한 지점 오전 사이에 표시됩니다.
plz 좀 봐야
도움
내가 어디가 잘못된 plz 올바른
갔다
감사합니다
dhruva
노이즈의 영향을 interfarence
% 시뮬레이트
%
%
% 병사 CE를 병사 데이터 병사 데이터 ... (데이터 6symbols)
%%********************** 준비 부분 ************************* **파라 = 52; (점)를 전송하는 병렬 채널의 % 번호
fftlen = 64; % FFT 길이
NOC는 = 53; 사업자의 % 번호
기 = 6; 하나의 루프에 대한 정보를 OFDM 심볼의 % 번호
knd = 1; 알려진 채널 추정의
% 번호 (CE를) OFDM 심볼
ml = 2; % 변조 수준 : QPSK
sr = 250000; % OFDM 심볼 속도 (250 ksyombol / s)의
기다 = sr .* ml; 통신사마다
% 비트 전송률
gilen = 16; 가드 간격 (점)의
% 길이
ebn0 = 1000; % Eb/N0페이딩 %---------------------- 초기화 ----------------------tstp = 1/sr / (fftlen gilen); % 타임 해상도
itau = [0]; 각 다중 tstp로 정상화를위한 % 도착 시간
dlvl1 = [0]; % 각각 직접 파도에 의해 정상화를위한 다중 전원 민.
N0 = [6];
파도의 % 번호
(1) N0 페이딩,) N0 (2를 생성하는
th1 = [0.0]; 지연 파도의
%를 초기 단계
itnd1 = [1000년]; % 페이딩 카운터
설정
now1 = 1; directwave의
% 번호 번호 지연의 물결
FD = 150; % 최대 도플러 주파수
= 0 평면; %
또는 평면하지 () ofdm_fading.m 참조
itnd0 = (fftlen
* gilen) * 10 기; 카운터로 건너 뛰 페이딩의 % 번호전파 간섭 %----------------- 초기화 --------------------의 CI = 10; % C / 난 비율
ml2 = 2; % 변조 수준itau2 = [0];
dlvl2 = [0];
n02 = [6];
th2 = [0.0];
itnd2 = [10000 바닥 (랜드 (1) * 10) * 1000];
now2 = 1;
fd2 = FD;
Flat2 = 0;
itnd02 = (fftlen
* gilen) * 300 기; 카운터로 건너 뛰 페이딩의 % 번호한 모체에서 %
% 저장소의 모든 매개 변수를 "fadingpara"fadingpara = 0 (8, 길이 (itau2));
fadingpara (1,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= itau2;
fadingpara (2,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= dlvl2;
fadingpara (3,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= n02;
fadingpara (4,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= th2;
fadingpara (5,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= itnd2;
fadingpara (6,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= now2;
fadingpara (7,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= fd2;
fadingpara (8,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= Flat2;메인 루프 부분 %************************** ******************** ******nloop = 1000;
시뮬레이션 루프의 % 번호가지고 = 0; 오류 데이터의 % 번호
고개를 끄덕 = 0; 전송된 데이터의 % 번호
eop = 0; 오류 중 % 번호 패킷
nop = 0; 전송된 패킷의 % 번호%************************** 송신기 ********************** *******
3 = 1 : nloopseldata = 랜드 (1, 파라 * 기 * ml)을> 0.5; % 워싱턴 = 0paradata
(51 * 기 * ml)을 (seldata, 파라, 었습니 * ml)을; % 크기를 바꿀 =ml 변조 %-------------- ----------------[ich, qch] = (paradata, 파라, 기, ml)을 qpskmod;
kmod = 1/sqrt (2);
ich = ich kmod .*;
qch = qch .* kmod;% CE를 데이터 생성
kndata = 0 (1, fftlen);
kndata0 = 2 .* (랜드 (1,52)> 0.5) -1;
kndata (2:27) = kndata0 (1시 26분);
kndata (39:64) = kndata0 (27:52);
ceich = kndata; % CE를 : BPSK
ceqch = 0 (1,64);%------------- 데이터 매핑 (워싱턴 = 0) -----------[ich1, qch1] = crmapping (ich, qch, fftlen,) 기;ich2 = [ceich. 'ich1]; % 나 - 채널 전송 데이터
qch2 = [ceqch. 'qch1]; % 질문 - 채널 전송 데이터------------------- %------------------- IFFTx = ich2 qch2 .* 난;
y를 = ifft (x)를;
ich3 = 진짜는
;
qch3는
심상 =;Gurad 간격을 삽입 %---------- ---------fftlen2 = fftlen gilen;
[ich4, qch4] = giins (ich3, qch3, fftlen, gilen, 었습니 1);감쇠 계산 %---------- ----------
spow = 액수 (ich4. ^ 2 qch4. ^ 2) / nd./52;
수신 = 0.5 * spow * sr / 기다 * 10. ^ (-ebn0/10);
수신 = sqrt (수신);%********************** 페이딩 채널 ************************* *****
% 미만의 성능을 시뮬레이션할 수있는 경우에 페이딩 싶다 "*를 삭제해 주시기 바랍니다"
다음 4 가지 sentenses부터 %
[ifade, qfade, 진입로, rcos, rsin] = sefade (ich4, qch4, itau, dlvl1, th1, N0, itnd1, now1, 길이 (ich4), tstp, FD, 평면);
itnd1 = itnd1 itnd0; % Updata 페이딩 카운터
ich4 = ifade;
qch4 = qfade;% % % 파도 또한 간섭
% 간섭
[iintw, qintw] = interwave (CI를, spow, ml2, 길이 (ich4), tstp, fadingpara);
itnd2 = itnd2 itnd02;
fadingpara (5,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= itnd2;
ich4 = ich4 iintw;
qch4 = qch4 qintw;수신기 %*************************** ********************* ********
AWGN 또한 %--------------- ---------------
[ICH5, qch5] = 빗 (ich4, qch4, 수신);%---- 하나의 경로 페이딩에 대한 완벽한 페이딩 보상 ----
% 완벽한 보상을하는 경우 아래의 성능을 시뮬레이션하고자하는 경우, "*를 삭제해 주시기 바랍니다"
다음 4 가지 sentenses부터 %
% ifade2 = 1./ramp .* (rcos (1,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* ICH5 ,
(1 rsin
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* qch5);
% qfade2 = 1./ramp .* (-,
(1 rsin
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* ICH5 rcos (1,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* qch5);
% ICH5 = ifade2;
% qch5 = qfade2;%----------- 가드 간격을 제거 ----------[ICH6, qch6] = girem (ICH5, qch5, fftlen2, gilen,
1 기);FFT %------------------ --------------------rx = ICH6 qch6 .* 난;
Ry = FFT (rx);
ICH7 = 진짜 (Ry);
qch7
(Ry) 심상 =;%--------------
CE를 기호로 Fading 보상 --------------
%
%하면 아래
- CE를 기반 보상, 성능을 시뮬레이트를 삭제해 주시기 바랍니다 "*"와 같은 것이
이 지역에서 %
%% CE를 데이터
알려진 준비
CE를 = 1;
ice0 = ich2
), CE를;
qce0 = qch2
), CE를;받은 데이터를 % 복용
CE를 데이터
ice1 = ICH7
), CE를;
qce1 = qch7
), CE를;%를 계산 역방향 회전
4 = 진짜 ((1. / (ice1. ^ 2 qce1. ^ 2 )).*( ice0
나 * qce0) .* (ice1-i. * qce1));
QV는 심상
= ((1. / (ice1. ^ 2 qce1. ^ 2 )).*( ice0
나 * qce0) .* (ice1-i. * qce1));역방향 회전을위한 % 매트릭스
ieqv1 = [4 4 4 4 4 4 4];
qeqv1 = [QV는 QV는 QV는 QV는 QV는 QV는 QV는];% 역방향 회전
icompen = 진짜 ((ICH7
나 * qch7) .* (ieqv1
나 * qeqv1));
qcompen = ((ICH7
나 * qch7) .* (ieqv1
나 * qeqv1)) 심상;
ICH7 = icompen;
qch7 = qcompen;CE를 상징 %---------- 제거 ----------------ich8 = ICH7
, knd 1 : 었습니 1);
qch8 = qch7
, knd 1 : 었습니 1);%---------- DC 및 조종사 데이터를 제거 --------[ich9, qch9] = crdemapping (ich8, qch8, fftlen, 기);%----------------- demoduration --------------ich10 = ich9./kmod;
qch10 = qch9./kmod;
[demodata] = (ich10, qch10, 파라, 기, ml)을 qpskdemod;%-------------- 오류 계산 ----------demodata1
* 기 * ml)을 (demodata, 1, 메세지를 바꿀 =;
noe2 = 액수 (복근 (demodata1 - seldata));
nod2 = 길이 (seldata);%를 계산 PER는
noe2면 ~ = 0
eop = eop 1;
그 밖의
eop = eop;
끝
eop;
nop = nop 1;%를 계산 BER를
가지고 = 가지고 noe2;
고개를 끄덕 끄덕 = nod2;fprintf ( '% d 개의을 \ t % 전자을 \ t % d 개 \ n'을, 3, noe2/nod2, eop);
= eop / nop 당;
BER는 = 노에 / 끄덕;
semilogy (CI를,
BER를 ,'-*');
전설 ( 'BER는 성능');
xlabel ( 'SNR을');
ylabel ( 'BER에');
끝%********************** 출력 결과 ************************* **fprintf ( '% F을 \ t % 전자을 \ t % 전자을 \ t % d 개의을 \ t % d 개 \ n'을, CI를, BER에, 당, nloop, FD);버팀대 =하면 fopen ( 'BERofdmci.dat', '');
fprintf (당, '% F을 \ t % 전자을 \ t % 전자을 \ t % d 개의을 \ t % d 개 \ n'을, CI를, BER에, nloop, FD) 버팀대;
fclose () 버팀대;%********************
파일의 끝 ************************** *
노이즈의 영향을 interfarence
% 시뮬레이트
%
%
% 병사 CE를 병사 데이터 병사 데이터 ... (데이터 6symbols)
%%********************** 준비 부분 ************************* **파라 = 52; (점)를 전송하는 병렬 채널의 % 번호
fftlen = 64; % FFT 길이
NOC는 = 53; 사업자의 % 번호
기 = 6; 하나의 루프에 대한 정보를 OFDM 심볼의 % 번호
knd = 1; 알려진 채널 추정의
% 번호 (CE를) OFDM 심볼
ml = 2; % 변조 수준 : QPSK
sr = 250000; % OFDM 심볼 속도 (250 ksyombol / s)의
기다 = sr .* ml; 통신사마다
% 비트 전송률
gilen = 16; 가드 간격 (점)의
% 길이
ebn0 = 1000; % Eb/N0페이딩 %---------------------- 초기화 ----------------------tstp = 1/sr / (fftlen gilen); % 타임 해상도
itau = [0]; 각 다중 tstp로 정상화를위한 % 도착 시간
dlvl1 = [0]; % 각각 직접 파도에 의해 정상화를위한 다중 전원 민.
N0 = [6];
파도의 % 번호
(1) N0 페이딩,) N0 (2를 생성하는
th1 = [0.0]; 지연 파도의
%를 초기 단계
itnd1 = [1000년]; % 페이딩 카운터
설정
now1 = 1; directwave의
% 번호 번호 지연의 물결
FD = 150; % 최대 도플러 주파수
= 0 평면; %
또는 평면하지 () ofdm_fading.m 참조
itnd0 = (fftlen
* gilen) * 10 기; 카운터로 건너 뛰 페이딩의 % 번호전파 간섭 %----------------- 초기화 --------------------의 CI = 10; % C / 난 비율
ml2 = 2; % 변조 수준itau2 = [0];
dlvl2 = [0];
n02 = [6];
th2 = [0.0];
itnd2 = [10000 바닥 (랜드 (1) * 10) * 1000];
now2 = 1;
fd2 = FD;
Flat2 = 0;
itnd02 = (fftlen
* gilen) * 300 기; 카운터로 건너 뛰 페이딩의 % 번호한 모체에서 %
% 저장소의 모든 매개 변수를 "fadingpara"fadingpara = 0 (8, 길이 (itau2));
fadingpara (1,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= itau2;
fadingpara (2,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= dlvl2;
fadingpara (3,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= n02;
fadingpara (4,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= th2;
fadingpara (5,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= itnd2;
fadingpara (6,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= now2;
fadingpara (7,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= fd2;
fadingpara (8,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= Flat2;메인 루프 부분 %************************** ******************** ******nloop = 1000;
시뮬레이션 루프의 % 번호가지고 = 0; 오류 데이터의 % 번호
고개를 끄덕 = 0; 전송된 데이터의 % 번호
eop = 0; 오류 중 % 번호 패킷
nop = 0; 전송된 패킷의 % 번호%************************** 송신기 ********************** *******
3 = 1 : nloopseldata = 랜드 (1, 파라 * 기 * ml)을> 0.5; % 워싱턴 = 0paradata
(51 * 기 * ml)을 (seldata, 파라, 었습니 * ml)을; % 크기를 바꿀 =ml 변조 %-------------- ----------------[ich, qch] = (paradata, 파라, 기, ml)을 qpskmod;
kmod = 1/sqrt (2);
ich = ich kmod .*;
qch = qch .* kmod;% CE를 데이터 생성
kndata = 0 (1, fftlen);
kndata0 = 2 .* (랜드 (1,52)> 0.5) -1;
kndata (2:27) = kndata0 (1시 26분);
kndata (39:64) = kndata0 (27:52);
ceich = kndata; % CE를 : BPSK
ceqch = 0 (1,64);%------------- 데이터 매핑 (워싱턴 = 0) -----------[ich1, qch1] = crmapping (ich, qch, fftlen,) 기;ich2 = [ceich. 'ich1]; % 나 - 채널 전송 데이터
qch2 = [ceqch. 'qch1]; % 질문 - 채널 전송 데이터------------------- %------------------- IFFTx = ich2 qch2 .* 난;
y를 = ifft (x)를;
ich3 = 진짜는
;
qch3는
심상 =;Gurad 간격을 삽입 %---------- ---------fftlen2 = fftlen gilen;
[ich4, qch4] = giins (ich3, qch3, fftlen, gilen, 었습니 1);감쇠 계산 %---------- ----------
spow = 액수 (ich4. ^ 2 qch4. ^ 2) / nd./52;
수신 = 0.5 * spow * sr / 기다 * 10. ^ (-ebn0/10);
수신 = sqrt (수신);%********************** 페이딩 채널 ************************* *****
% 미만의 성능을 시뮬레이션할 수있는 경우에 페이딩 싶다 "*를 삭제해 주시기 바랍니다"
다음 4 가지 sentenses부터 %
[ifade, qfade, 진입로, rcos, rsin] = sefade (ich4, qch4, itau, dlvl1, th1, N0, itnd1, now1, 길이 (ich4), tstp, FD, 평면);
itnd1 = itnd1 itnd0; % Updata 페이딩 카운터
ich4 = ifade;
qch4 = qfade;% % % 파도 또한 간섭
% 간섭
[iintw, qintw] = interwave (CI를, spow, ml2, 길이 (ich4), tstp, fadingpara);
itnd2 = itnd2 itnd02;
fadingpara (5,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= itnd2;
ich4 = ich4 iintw;
qch4 = qch4 qintw;수신기 %*************************** ********************* ********
AWGN 또한 %--------------- ---------------
[ICH5, qch5] = 빗 (ich4, qch4, 수신);%---- 하나의 경로 페이딩에 대한 완벽한 페이딩 보상 ----
% 완벽한 보상을하는 경우 아래의 성능을 시뮬레이션하고자하는 경우, "*를 삭제해 주시기 바랍니다"
다음 4 가지 sentenses부터 %
% ifade2 = 1./ramp .* (rcos (1,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* ICH5 ,
(1 rsin
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* qch5);
% qfade2 = 1./ramp .* (-,
(1 rsin
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* ICH5 rcos (1,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* qch5);
% ICH5 = ifade2;
% qch5 = qfade2;%----------- 가드 간격을 제거 ----------[ICH6, qch6] = girem (ICH5, qch5, fftlen2, gilen,
1 기);FFT %------------------ --------------------rx = ICH6 qch6 .* 난;
Ry = FFT (rx);
ICH7 = 진짜 (Ry);
qch7
(Ry) 심상 =;%--------------
CE를 기호로 Fading 보상 --------------
%
%하면 아래
- CE를 기반 보상, 성능을 시뮬레이트를 삭제해 주시기 바랍니다 "*"와 같은 것이
이 지역에서 %
%% CE를 데이터
알려진 준비
CE를 = 1;
ice0 = ich2
), CE를;
qce0 = qch2
), CE를;받은 데이터를 % 복용
CE를 데이터
ice1 = ICH7
), CE를;
qce1 = qch7
), CE를;%를 계산 역방향 회전
4 = 진짜 ((1. / (ice1. ^ 2 qce1. ^ 2 )).*( ice0
나 * qce0) .* (ice1-i. * qce1));
QV는 심상
= ((1. / (ice1. ^ 2 qce1. ^ 2 )).*( ice0
나 * qce0) .* (ice1-i. * qce1));역방향 회전을위한 % 매트릭스
ieqv1 = [4 4 4 4 4 4 4];
qeqv1 = [QV는 QV는 QV는 QV는 QV는 QV는 QV는];% 역방향 회전
icompen = 진짜 ((ICH7
나 * qch7) .* (ieqv1
나 * qeqv1));
qcompen = ((ICH7
나 * qch7) .* (ieqv1
나 * qeqv1)) 심상;
ICH7 = icompen;
qch7 = qcompen;CE를 상징 제거 %---------- ----------------ich8 = ICH7
, knd 1 : 었습니 1);
qch8 = qch7
, knd 1 : 었습니 1);%---------- DC 및 조종사 데이터를 제거 --------[ich9, qch9] = crdemapping (ich8, qch8, fftlen, 기);%----------------- demoduration --------------ich10 = ich9./kmod;
qch10 = qch9./kmod;
[demodata] = (ich10, qch10, 파라, 기, ml)을 qpskdemod;오류 계산 %-------------- ----------demodata1
* 기 * ml)을 (demodata, 1, 메세지를 바꿀 =;
noe2 = 액수 (복근 (demodata1 - seldata));
nod2 = 길이 (seldata);%를 계산 PER는
noe2면 ~ = 0
eop = eop 1;
그 밖의
eop = eop;
끝
eop;
nop = nop 1;%를 계산 BER를
가지고 = 가지고 noe2;
고개를 끄덕 끄덕 = nod2;fprintf ( '% d 개의을 \ t % 전자을 \ t % d 개 \ n'을, 3, noe2/nod2, eop);
= eop / nop 당;
BER는 = 노에 / 끄덕;
semilogy (CI를,
BER를 ,'-*');
전설 ( 'BER는 성능');
xlabel ( 'SNR을');
ylabel ( 'BER에');
끝%********************** 출력 결과 ************************* **fprintf ( '% F을 \ t % 전자을 \ t % 전자을 \ t % d 개의을 \ t % d 개 \ n'을, CI를, BER에, 당, nloop, FD);버팀대 =하면 fopen ( 'BERofdmci.dat', '');
fprintf (당, '% F을 \ t % 전자을 \ t % 전자을 \ t % d 개의을 \ t % d 개 \ n'을, CI를, BER에, nloop, FD) 버팀대;
fclose () 버팀대;%********************
파일의 끝 ************************** *
난 MATLAB에 smulating 오전 OFDM
하지만이 언급한 코드 난에의 CI과 BER (즉, SNR을 n 비트 에러 비율 그래프를 그릴 수없는 유일한 지점 오전 사이에 표시됩니다.
plz 좀 봐야
도움
내가 어디가 잘못된 plz 올바른
갔다
감사합니다
dhruva
노이즈의 영향을 interfarence
% 시뮬레이트
%
%
% 병사 CE를 병사 데이터 병사 데이터 ... (데이터 6symbols)
%%********************** 준비 부분 ************************* **파라 = 52; (점)를 전송하는 병렬 채널의 % 번호
fftlen = 64; % FFT 길이
NOC는 = 53; 사업자의 % 번호
기 = 6; 하나의 루프에 대한 정보를 OFDM 심볼의 % 번호
knd = 1; 알려진 채널 추정의
% 번호 (CE를) OFDM 심볼
ml = 2; % 변조 수준 : QPSK
sr = 250000; % OFDM 심볼 속도 (250 ksyombol / s)의
기다 = sr .* ml; 통신사마다
% 비트 전송률
gilen = 16; 가드 간격 (점)의
% 길이
ebn0 = 1000; % Eb/N0페이딩 %---------------------- 초기화 ----------------------tstp = 1/sr / (fftlen gilen); % 타임 해상도
itau = [0]; 각 다중 tstp로 정상화를위한 % 도착 시간
dlvl1 = [0]; % 각각 직접 파도에 의해 정상화를위한 다중 전원 민.
N0 = [6];
파도의 % 번호
(1) N0 페이딩,) N0 (2를 생성하는
th1 = [0.0]; 지연 파도의
%를 초기 단계
itnd1 = [1000년]; % 페이딩 카운터
설정
now1 = 1; directwave의
% 번호 번호 지연의 물결
FD = 150; % 최대 도플러 주파수
= 0 평면; %
또는 평면하지 () ofdm_fading.m 참조
itnd0 = (fftlen
* gilen) * 10 기; 카운터로 건너 뛰 페이딩의 % 번호전파 간섭 %----------------- 초기화 --------------------의 CI = 10; % C / 난 비율
ml2 = 2; % 변조 수준itau2 = [0];
dlvl2 = [0];
n02 = [6];
th2 = [0.0];
itnd2 = [10000 바닥 (랜드 (1) * 10) * 1000];
now2 = 1;
fd2 = FD;
Flat2 = 0;
itnd02 = (fftlen
* gilen) * 300 기; 카운터로 건너 뛰 페이딩의 % 번호한 모체에서 %
% 저장소의 모든 매개 변수를 "fadingpara"fadingpara = 0 (8, 길이 (itau2));
fadingpara (1,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= itau2;
fadingpara (2,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= dlvl2;
fadingpara (3,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= n02;
fadingpara (4,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= th2;
fadingpara (5,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= itnd2;
fadingpara (6,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= now2;
fadingpara (7,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= fd2;
fadingpara (8,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= Flat2;메인 루프 부분 %************************** ******************** ******nloop = 1000;
시뮬레이션 루프의 % 번호가지고 = 0; 오류 데이터의 % 번호
고개를 끄덕 = 0; 전송된 데이터의 % 번호
eop = 0; 오류 중 % 번호 패킷
nop = 0; 전송된 패킷의 % 번호%************************** 송신기 ********************** *******
3 = 1 : nloopseldata = 랜드 (1, 파라 * 기 * ml)을> 0.5; % 워싱턴 = 0paradata
(51 * 기 * ml)을 (seldata, 파라, 었습니 * ml)을; % 크기를 바꿀 =ml 변조 %-------------- ----------------[ich, qch] = (paradata, 파라, 기, ml)을 qpskmod;
kmod = 1/sqrt (2);
ich = ich kmod .*;
qch = qch .* kmod;% CE를 데이터 생성
kndata = 0 (1, fftlen);
kndata0 = 2 .* (랜드 (1,52)> 0.5) -1;
kndata (2:27) = kndata0 (1시 26분);
kndata (39:64) = kndata0 (27:52);
ceich = kndata; % CE를 : BPSK
ceqch = 0 (1,64);%------------- 데이터 매핑 (워싱턴 = 0) -----------[ich1, qch1] = crmapping (ich, qch, fftlen,) 기;ich2 = [ceich. 'ich1]; % 나 - 채널 전송 데이터
qch2 = [ceqch. 'qch1]; % 질문 - 채널 전송 데이터------------------- %------------------- IFFTx = ich2 qch2 .* 난;
y를 = ifft (x)를;
ich3 = 진짜는
qch3는
[ich4, qch4] = giins (ich3, qch3, fftlen, gilen, 었습니 1);감쇠 계산 %---------- ----------
spow = 액수 (ich4. ^ 2 qch4. ^ 2) / nd./52;
수신 = 0.5 * spow * sr / 기다 * 10. ^ (-ebn0/10);
수신 = sqrt (수신);%********************** 페이딩 채널 ************************* *****
% 미만의 성능을 시뮬레이션할 수있는 경우에 페이딩 싶다 "*를 삭제해 주시기 바랍니다"
다음 4 가지 sentenses부터 %
[ifade, qfade, 진입로, rcos, rsin] = sefade (ich4, qch4, itau, dlvl1, th1, N0, itnd1, now1, 길이 (ich4), tstp, FD, 평면);
itnd1 = itnd1 itnd0; % Updata 페이딩 카운터
ich4 = ifade;
qch4 = qfade;% % % 파도 또한 간섭
% 간섭
[iintw, qintw] = interwave (CI를, spow, ml2, 길이 (ich4), tstp, fadingpara);
itnd2 = itnd2 itnd02;
fadingpara (5,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= itnd2;
ich4 = ich4 iintw;
qch4 = qch4 qintw;수신기 %*************************** ********************* ********
AWGN 또한 %--------------- ---------------
[ICH5, qch5] = 빗 (ich4, qch4, 수신);%---- 하나의 경로 페이딩에 대한 완벽한 페이딩 보상 ----
% 완벽한 보상을하는 경우 아래의 성능을 시뮬레이션하고자하는 경우, "*를 삭제해 주시기 바랍니다"
다음 4 가지 sentenses부터 %
% ifade2 = 1./ramp .* (rcos (1,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* ICH5 ,
(1 rsin
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* qch5);
% qfade2 = 1./ramp .* (-,
(1 rsin
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* ICH5 rcos (1,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* qch5);
% ICH5 = ifade2;
% qch5 = qfade2;%----------- 가드 간격을 제거 ----------[ICH6, qch6] = girem (ICH5, qch5, fftlen2, gilen,
1 기);FFT %------------------ --------------------rx = ICH6 qch6 .* 난;
Ry = FFT (rx);
ICH7 = 진짜 (Ry);
qch7
(Ry) 심상 =;%--------------
CE를 기호로 Fading 보상 --------------
%
%하면 아래
- CE를 기반 보상, 성능을 시뮬레이트를 삭제해 주시기 바랍니다 "*"와 같은 것이
이 지역에서 %
%% CE를 데이터
알려진 준비
CE를 = 1;
ice0 = ich2
qce0 = qch2
CE를 데이터
ice1 = ICH7
qce1 = qch7
4 = 진짜 ((1. / (ice1. ^ 2 qce1. ^ 2 )).*( ice0
나 * qce0) .* (ice1-i. * qce1));
QV는 심상
= ((1. / (ice1. ^ 2 qce1. ^ 2 )).*( ice0
나 * qce0) .* (ice1-i. * qce1));역방향 회전을위한 % 매트릭스
ieqv1 = [4 4 4 4 4 4 4];
qeqv1 = [QV는 QV는 QV는 QV는 QV는 QV는 QV는];% 역방향 회전
icompen = 진짜 ((ICH7
나 * qch7) .* (ieqv1
나 * qeqv1));
qcompen = ((ICH7
나 * qch7) .* (ieqv1
나 * qeqv1)) 심상;
ICH7 = icompen;
qch7 = qcompen;CE를 상징 %---------- 제거 ----------------ich8 = ICH7
qch8 = qch7
qch10 = qch9./kmod;
[demodata] = (ich10, qch10, 파라, 기, ml)을 qpskdemod;%-------------- 오류 계산 ----------demodata1
* 기 * ml)을 (demodata, 1, 메세지를 바꿀 =;
noe2 = 액수 (복근 (demodata1 - seldata));
nod2 = 길이 (seldata);%를 계산 PER는
noe2면 ~ = 0
eop = eop 1;
그 밖의
eop = eop;
끝
eop;
nop = nop 1;%를 계산 BER를
가지고 = 가지고 noe2;
고개를 끄덕 끄덕 = nod2;fprintf ( '% d 개의을 \ t % 전자을 \ t % d 개 \ n'을, 3, noe2/nod2, eop);
= eop / nop 당;
BER는 = 노에 / 끄덕;
semilogy (CI를,
BER를 ,'-*');
전설 ( 'BER는 성능');
xlabel ( 'SNR을');
ylabel ( 'BER에');
끝%********************** 출력 결과 ************************* **fprintf ( '% F을 \ t % 전자을 \ t % 전자을 \ t % d 개의을 \ t % d 개 \ n'을, CI를, BER에, 당, nloop, FD);버팀대 =하면 fopen ( 'BERofdmci.dat', '');
fprintf (당, '% F을 \ t % 전자을 \ t % 전자을 \ t % d 개의을 \ t % d 개 \ n'을, CI를, BER에, nloop, FD) 버팀대;
fclose () 버팀대;%********************
파일의 끝 ************************** *
노이즈의 영향을 interfarence
% 시뮬레이트
%
%
% 병사 CE를 병사 데이터 병사 데이터 ... (데이터 6symbols)
%%********************** 준비 부분 ************************* **파라 = 52; (점)를 전송하는 병렬 채널의 % 번호
fftlen = 64; % FFT 길이
NOC는 = 53; 사업자의 % 번호
기 = 6; 하나의 루프에 대한 정보를 OFDM 심볼의 % 번호
knd = 1; 알려진 채널 추정의
% 번호 (CE를) OFDM 심볼
ml = 2; % 변조 수준 : QPSK
sr = 250000; % OFDM 심볼 속도 (250 ksyombol / s)의
기다 = sr .* ml; 통신사마다
% 비트 전송률
gilen = 16; 가드 간격 (점)의
% 길이
ebn0 = 1000; % Eb/N0페이딩 %---------------------- 초기화 ----------------------tstp = 1/sr / (fftlen gilen); % 타임 해상도
itau = [0]; 각 다중 tstp로 정상화를위한 % 도착 시간
dlvl1 = [0]; % 각각 직접 파도에 의해 정상화를위한 다중 전원 민.
N0 = [6];
파도의 % 번호
(1) N0 페이딩,) N0 (2를 생성하는
th1 = [0.0]; 지연 파도의
%를 초기 단계
itnd1 = [1000년]; % 페이딩 카운터
설정
now1 = 1; directwave의
% 번호 번호 지연의 물결
FD = 150; % 최대 도플러 주파수
= 0 평면; %
또는 평면하지 () ofdm_fading.m 참조
itnd0 = (fftlen
* gilen) * 10 기; 카운터로 건너 뛰 페이딩의 % 번호전파 간섭 %----------------- 초기화 --------------------의 CI = 10; % C / 난 비율
ml2 = 2; % 변조 수준itau2 = [0];
dlvl2 = [0];
n02 = [6];
th2 = [0.0];
itnd2 = [10000 바닥 (랜드 (1) * 10) * 1000];
now2 = 1;
fd2 = FD;
Flat2 = 0;
itnd02 = (fftlen
* gilen) * 300 기; 카운터로 건너 뛰 페이딩의 % 번호한 모체에서 %
% 저장소의 모든 매개 변수를 "fadingpara"fadingpara = 0 (8, 길이 (itau2));
fadingpara (1,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= itau2;
fadingpara (2,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= dlvl2;
fadingpara (3,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= n02;
fadingpara (4,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= th2;
fadingpara (5,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= itnd2;
fadingpara (6,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= now2;
fadingpara (7,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= fd2;
fadingpara (8,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= Flat2;메인 루프 부분 %************************** ******************** ******nloop = 1000;
시뮬레이션 루프의 % 번호가지고 = 0; 오류 데이터의 % 번호
고개를 끄덕 = 0; 전송된 데이터의 % 번호
eop = 0; 오류 중 % 번호 패킷
nop = 0; 전송된 패킷의 % 번호%************************** 송신기 ********************** *******
3 = 1 : nloopseldata = 랜드 (1, 파라 * 기 * ml)을> 0.5; % 워싱턴 = 0paradata
(51 * 기 * ml)을 (seldata, 파라, 었습니 * ml)을; % 크기를 바꿀 =ml 변조 %-------------- ----------------[ich, qch] = (paradata, 파라, 기, ml)을 qpskmod;
kmod = 1/sqrt (2);
ich = ich kmod .*;
qch = qch .* kmod;% CE를 데이터 생성
kndata = 0 (1, fftlen);
kndata0 = 2 .* (랜드 (1,52)> 0.5) -1;
kndata (2:27) = kndata0 (1시 26분);
kndata (39:64) = kndata0 (27:52);
ceich = kndata; % CE를 : BPSK
ceqch = 0 (1,64);%------------- 데이터 매핑 (워싱턴 = 0) -----------[ich1, qch1] = crmapping (ich, qch, fftlen,) 기;ich2 = [ceich. 'ich1]; % 나 - 채널 전송 데이터
qch2 = [ceqch. 'qch1]; % 질문 - 채널 전송 데이터------------------- %------------------- IFFTx = ich2 qch2 .* 난;
y를 = ifft (x)를;
ich3 = 진짜는
qch3는
[ich4, qch4] = giins (ich3, qch3, fftlen, gilen, 었습니 1);감쇠 계산 %---------- ----------
spow = 액수 (ich4. ^ 2 qch4. ^ 2) / nd./52;
수신 = 0.5 * spow * sr / 기다 * 10. ^ (-ebn0/10);
수신 = sqrt (수신);%********************** 페이딩 채널 ************************* *****
% 미만의 성능을 시뮬레이션할 수있는 경우에 페이딩 싶다 "*를 삭제해 주시기 바랍니다"
다음 4 가지 sentenses부터 %
[ifade, qfade, 진입로, rcos, rsin] = sefade (ich4, qch4, itau, dlvl1, th1, N0, itnd1, now1, 길이 (ich4), tstp, FD, 평면);
itnd1 = itnd1 itnd0; % Updata 페이딩 카운터
ich4 = ifade;
qch4 = qfade;% % % 파도 또한 간섭
% 간섭
[iintw, qintw] = interwave (CI를, spow, ml2, 길이 (ich4), tstp, fadingpara);
itnd2 = itnd2 itnd02;
fadingpara (5,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
= itnd2;
ich4 = ich4 iintw;
qch4 = qch4 qintw;수신기 %*************************** ********************* ********
AWGN 또한 %--------------- ---------------
[ICH5, qch5] = 빗 (ich4, qch4, 수신);%---- 하나의 경로 페이딩에 대한 완벽한 페이딩 보상 ----
% 완벽한 보상을하는 경우 아래의 성능을 시뮬레이션하고자하는 경우, "*를 삭제해 주시기 바랍니다"
다음 4 가지 sentenses부터 %
% ifade2 = 1./ramp .* (rcos (1,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* ICH5 ,
(1 rsin
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* qch5);
% qfade2 = 1./ramp .* (-,
(1 rsin
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* ICH5 rcos (1,
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
.* qch5);
% ICH5 = ifade2;
% qch5 = qfade2;%----------- 가드 간격을 제거 ----------[ICH6, qch6] = girem (ICH5, qch5, fftlen2, gilen,
1 기);FFT %------------------ --------------------rx = ICH6 qch6 .* 난;
Ry = FFT (rx);
ICH7 = 진짜 (Ry);
qch7
(Ry) 심상 =;%--------------
CE를 기호로 Fading 보상 --------------
%
%하면 아래
- CE를 기반 보상, 성능을 시뮬레이트를 삭제해 주시기 바랍니다 "*"와 같은 것이
이 지역에서 %
%% CE를 데이터
알려진 준비
CE를 = 1;
ice0 = ich2
qce0 = qch2
CE를 데이터
ice1 = ICH7
qce1 = qch7
4 = 진짜 ((1. / (ice1. ^ 2 qce1. ^ 2 )).*( ice0
나 * qce0) .* (ice1-i. * qce1));
QV는 심상
= ((1. / (ice1. ^ 2 qce1. ^ 2 )).*( ice0
나 * qce0) .* (ice1-i. * qce1));역방향 회전을위한 % 매트릭스
ieqv1 = [4 4 4 4 4 4 4];
qeqv1 = [QV는 QV는 QV는 QV는 QV는 QV는 QV는];% 역방향 회전
icompen = 진짜 ((ICH7
나 * qch7) .* (ieqv1
나 * qeqv1));
qcompen = ((ICH7
나 * qch7) .* (ieqv1
나 * qeqv1)) 심상;
ICH7 = icompen;
qch7 = qcompen;CE를 상징 제거 %---------- ----------------ich8 = ICH7
qch8 = qch7
qch10 = qch9./kmod;
[demodata] = (ich10, qch10, 파라, 기, ml)을 qpskdemod;오류 계산 %-------------- ----------demodata1
* 기 * ml)을 (demodata, 1, 메세지를 바꿀 =;
noe2 = 액수 (복근 (demodata1 - seldata));
nod2 = 길이 (seldata);%를 계산 PER는
noe2면 ~ = 0
eop = eop 1;
그 밖의
eop = eop;
끝
eop;
nop = nop 1;%를 계산 BER를
가지고 = 가지고 noe2;
고개를 끄덕 끄덕 = nod2;fprintf ( '% d 개의을 \ t % 전자을 \ t % d 개 \ n'을, 3, noe2/nod2, eop);
= eop / nop 당;
BER는 = 노에 / 끄덕;
semilogy (CI를,
BER를 ,'-*');
전설 ( 'BER는 성능');
xlabel ( 'SNR을');
ylabel ( 'BER에');
끝%********************** 출력 결과 ************************* **fprintf ( '% F을 \ t % 전자을 \ t % 전자을 \ t % d 개의을 \ t % d 개 \ n'을, CI를, BER에, 당, nloop, FD);버팀대 =하면 fopen ( 'BERofdmci.dat', '');
fprintf (당, '% F을 \ t % 전자을 \ t % 전자을 \ t % d 개의을 \ t % d 개 \ n'을, CI를, BER에, nloop, FD) 버팀대;
fclose () 버팀대;%********************
파일의 끝 ************************** *