S
sundar123
Guest
hei
Olen edessään ongelma osoittavat BER käyrä ....Oma koodi toimii oikein Jopa vähän vastaan, mutta kohtaavat ongelman laskemalla virheiden takia, jotka minun ryhmäpoikkeusasetus käyrä näyttää olevan suora viiva, kun se on laskussa ja yhä SNR ...myös minun koodi kestää yli 1 h laskea tuloksen ....koodi on alle
ystävällisesti ehdottaa, missä olen väärässä ja auttaa minua
kiitostyhjentää kaikki;
N = 10 ^ 4% symbolit
M = 16% ja 16 QAM
Virhe = 0;
count = 1;
SNR1 = [0:20];
= SNR1/10;
SNR = 10. ^;
% EbN0 = 20;
i = 1: length (SNR)
EbN0 = SNR (i);
L = log2 (M),% bittien määrä
bits = 1000;
; b = 0;
while (<bittiä)
; b = 1000 * count;
count = count 1;
data = ((merkki (randn (N * L, 1) 1))> 0,5). "% vähän lähettääTBL = [0, 1];
i = 1
<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Surullinen" border="0" />
L-1) tbl = [TBL nollia (pituus (TBL), 1); flipud (TBL) ones (length (TBL), 1)]; loppuun,
tmp = sortrows ([bi2de (TBL) ', [0: M-1 ]]');
Uusjako = tmp , 2) ";
Vals = [0: M-1];
Y = fix (Vals. / sqrt (M)),% y = 0:3 => rivillä
%% Laskee eteenpäin pariton rivejä, taaksepäin edes rivien
x =-merkki (mod (Y, 2) -0,5) .* (bitand (Vals, sqrt (P) -1) * 2 1- sqrt (P));% x = / - (0:3) * 2 1-4
y = sqrt (M)-Y * 2-1,% y = 4 - y * 2-1
Constellation = x j * y;% Constellation pistettä% rakentaa tulos
% Scatterplot (tähdistö);
constellationpower = sqrt (keskiarvo (abs (constellation). ^ 2));% keskimääräisen tehon
modulationconstellation = Constellation (Reordering 1) / constellationpower;EsN0 = EbN0 * L;% Suorittamiseen tarvittavat bi2de muuntaminen
bpwr = (2. ^ (0
<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Surullinen" border="0" />
L-1)));
% Asteikon katseli moduloitu tähdistö indeksi saadaan bi2de muuntaminen
if ((mod (size (data, 2), L) ~ = 0) & (1))
data = [data nollaa (1, L-mod (size (data, 2), L))];
varten;
z = sqrt (EsN0) * modulationconstellation (bpwr * muokata (data, L, size (data, 2) / L) 1);
% Noise
melulle = 1/sqrt (2) * (randn (1, length (z)) J * randn (1, length (z)));
h = 1;
y = h * z kohina,% modulaatio
% Demodulointi
% Saada indeksin arvo on vähintään
for k = 1: length
sig = y (k) * ones (M, 1);
[m, indeksi (k)] = min (sig-(h * sqrt (EsN0) * modulationconstellation .'));
loppu% On tehdä desimaalin joissa komponentteina muuntaminen
binary = (de2bi (index-1 )).';
bitrcv = binary (
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />
;% Vähän sai
data = data (
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />
;% Virhe = virhe e;
loppu
% itse edessään ongelma tässä osassa
e (i) = pituus (löytää ([data-bitrcv]));% löytää virheitä ...
loppu
BER = e / b;
Sulje kaikki;
kuvassa
semilogy (SNR, BER "MX-", "LineWidth ', 2);
xlabel ( 'SNR')
ylabel ( 'Bit Error Rate);
Otsikko (Bit Error todennäköisesti käyrän 16-QAM modulaatio ');
Olen edessään ongelma osoittavat BER käyrä ....Oma koodi toimii oikein Jopa vähän vastaan, mutta kohtaavat ongelman laskemalla virheiden takia, jotka minun ryhmäpoikkeusasetus käyrä näyttää olevan suora viiva, kun se on laskussa ja yhä SNR ...myös minun koodi kestää yli 1 h laskea tuloksen ....koodi on alle
ystävällisesti ehdottaa, missä olen väärässä ja auttaa minua
kiitostyhjentää kaikki;
N = 10 ^ 4% symbolit
M = 16% ja 16 QAM
Virhe = 0;
count = 1;
SNR1 = [0:20];
= SNR1/10;
SNR = 10. ^;
% EbN0 = 20;
i = 1: length (SNR)
EbN0 = SNR (i);
L = log2 (M),% bittien määrä
bits = 1000;
; b = 0;
while (<bittiä)
; b = 1000 * count;
count = count 1;
data = ((merkki (randn (N * L, 1) 1))> 0,5). "% vähän lähettääTBL = [0, 1];
i = 1
<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Surullinen" border="0" />
L-1) tbl = [TBL nollia (pituus (TBL), 1); flipud (TBL) ones (length (TBL), 1)]; loppuun,
tmp = sortrows ([bi2de (TBL) ', [0: M-1 ]]');
Uusjako = tmp , 2) ";
Vals = [0: M-1];
Y = fix (Vals. / sqrt (M)),% y = 0:3 => rivillä
%% Laskee eteenpäin pariton rivejä, taaksepäin edes rivien
x =-merkki (mod (Y, 2) -0,5) .* (bitand (Vals, sqrt (P) -1) * 2 1- sqrt (P));% x = / - (0:3) * 2 1-4
y = sqrt (M)-Y * 2-1,% y = 4 - y * 2-1
Constellation = x j * y;% Constellation pistettä% rakentaa tulos
% Scatterplot (tähdistö);
constellationpower = sqrt (keskiarvo (abs (constellation). ^ 2));% keskimääräisen tehon
modulationconstellation = Constellation (Reordering 1) / constellationpower;EsN0 = EbN0 * L;% Suorittamiseen tarvittavat bi2de muuntaminen
bpwr = (2. ^ (0
<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Surullinen" border="0" />
L-1)));
% Asteikon katseli moduloitu tähdistö indeksi saadaan bi2de muuntaminen
if ((mod (size (data, 2), L) ~ = 0) & (1))
data = [data nollaa (1, L-mod (size (data, 2), L))];
varten;
z = sqrt (EsN0) * modulationconstellation (bpwr * muokata (data, L, size (data, 2) / L) 1);
% Noise
melulle = 1/sqrt (2) * (randn (1, length (z)) J * randn (1, length (z)));
h = 1;
y = h * z kohina,% modulaatio
% Demodulointi
% Saada indeksin arvo on vähintään
for k = 1: length
sig = y (k) * ones (M, 1);
[m, indeksi (k)] = min (sig-(h * sqrt (EsN0) * modulationconstellation .'));
loppu% On tehdä desimaalin joissa komponentteina muuntaminen
binary = (de2bi (index-1 )).';
bitrcv = binary (
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />
;% Vähän sai
data = data (
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />
;% Virhe = virhe e;
loppu
% itse edessään ongelma tässä osassa
e (i) = pituus (löytää ([data-bitrcv]));% löytää virheitä ...
loppu
BER = e / b;
Sulje kaikki;
kuvassa
semilogy (SNR, BER "MX-", "LineWidth ', 2);
xlabel ( 'SNR')
ylabel ( 'Bit Error Rate);
Otsikko (Bit Error todennäköisesti käyrän 16-QAM modulaatio ');