MATLAB

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 = 진짜는 (y);

qch3는
(y) 심상 =;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 = 진짜는 (y);

qch3는
(y) 심상 =;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 () 버팀대;%********************
파일의 끝 ************************** *

 

Welcome to EDABoard.com

Sponsor

Back
Top