16-QAM ... ongelma koodi

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 (y)
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 ');

 
Ai niin surullista ... ei kukaan auttaa minua

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Surullinen" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Surullinen" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top