B
babyeric
Guest
Nazdar,
V současné době dělám základní pásmo frekvence kompenzovat odhad v MATLABu.Nicméně jsem encounted velkým problémem.Při nízkých SNR, můj algoritmus nemohl odhadnout kompenzovat.Kdokoliv může mi říct, jaké kroky jsem vynechal v mém kódu?Doufám, že se odborníci tam může pomoci.To je můj MATLAB kód:
Ajin = znak (randn (1,1024));% generovat / - 1
Aupsample = upsample (Ain, 4);
rrcfilter = rcosine (1,4, 'jedle / sqrt', 0.3,4);% A RRC filtrem vytvářejí MATLAB
Arrc = conv (Ain, rrcfilter);% filtr signálu
foff = 0,005;% normalizovaly frekvence vyrovnáno
t = 1: délka (Arrc);
Aoffset = Arrc .* exp (j * foff * t);% frekvenční kompenzaci signálu
Anoisy = awgn (Aoffset, 0, 'měří');% přidat hluku
Brrc = conv (Anoisy, rrcfilter);% porovnaných filtrovat obdržel signál
Bdownsample = downsample (Arrc, 4);% downsample signál
Bframe = Bdownsample (9: konec-8);% najděte začátku rám
Bm = Bframe .* CONJ (Ain);% odebrat modulace
Bconj = BM (2: end) .* BM (1: konec-1);% frekvence kompenzovat algoritmus
foffest = sum (úhel (Bconj));% odhadu frekvence vyrovnáno
To je můj jednoduchý MATLAB kód.Doufám, že vám všem může pomoci a řekni mi, proč nemůžu dostat frekvenci kompenzovat, kterou jsem postavil jej na 0.005?Když SNR je vysoká tj.: 20 nebo 30 dB,
mohu frekvence snadno kompenzovat.
Opravdu potřebují vaši pomoc naléhavě.Děkujeme vám.
V současné době dělám základní pásmo frekvence kompenzovat odhad v MATLABu.Nicméně jsem encounted velkým problémem.Při nízkých SNR, můj algoritmus nemohl odhadnout kompenzovat.Kdokoliv může mi říct, jaké kroky jsem vynechal v mém kódu?Doufám, že se odborníci tam může pomoci.To je můj MATLAB kód:
Ajin = znak (randn (1,1024));% generovat / - 1
Aupsample = upsample (Ain, 4);
rrcfilter = rcosine (1,4, 'jedle / sqrt', 0.3,4);% A RRC filtrem vytvářejí MATLAB
Arrc = conv (Ain, rrcfilter);% filtr signálu
foff = 0,005;% normalizovaly frekvence vyrovnáno
t = 1: délka (Arrc);
Aoffset = Arrc .* exp (j * foff * t);% frekvenční kompenzaci signálu
Anoisy = awgn (Aoffset, 0, 'měří');% přidat hluku
Brrc = conv (Anoisy, rrcfilter);% porovnaných filtrovat obdržel signál
Bdownsample = downsample (Arrc, 4);% downsample signál
Bframe = Bdownsample (9: konec-8);% najděte začátku rám
Bm = Bframe .* CONJ (Ain);% odebrat modulace
Bconj = BM (2: end) .* BM (1: konec-1);% frekvence kompenzovat algoritmus
foffest = sum (úhel (Bconj));% odhadu frekvence vyrovnáno
To je můj jednoduchý MATLAB kód.Doufám, že vám všem může pomoci a řekni mi, proč nemůžu dostat frekvenci kompenzovat, kterou jsem postavil jej na 0.005?Když SNR je vysoká tj.: 20 nebo 30 dB,
mohu frekvence snadno kompenzovat.
Opravdu potřebují vaši pomoc naléhavě.Děkujeme vám.