X-Git-Url: https://adrianiainlam.tk/git/?p=4yp.git;a=blobdiff_plain;f=phasenoise1signal.m;h=e2240b957d1ec9933b1550455baa9b98f459ee9d;hp=f819e653fe0a75b9d78f2b0d5ce78678ea0350be;hb=5fae00773184080617ac022c07495d365975e0e1;hpb=427465905320390cebf3d247b8beace19387c70f diff --git a/phasenoise1signal.m b/phasenoise1signal.m index f819e65..e2240b9 100644 --- a/phasenoise1signal.m +++ b/phasenoise1signal.m @@ -4,7 +4,7 @@ M = 4; Rsym = 2.5e10; % symbol rate (sym/sec) rolloff = 0.5; span = 6; % filter span -sps = 4; % samples per symbol +sps = 8; % samples per symbol fs = Rsym * sps; % sampling freq (Hz) Tsamp = 1 / fs; @@ -39,18 +39,19 @@ linewidthLO = 10e6; % Hz snr = EbN0_db + 10 * log10(log2(M)) - 10 * log10(sps); -%%y = awgn(xPN, snr, 'measured'); yPSK = awgn(xPSKpn, snr, 'measured'); yDPSK = xDPSKpn; rPSK = rxFilter(yPSK, rolloff, span, sps); rDPSK = rxFilter(yDPSK, rolloff, span, sps); +sps = 2; +Tsamp = Tsamp * 4; -rPSKSa = rPSK(sps*span/2+1:sps:(numSymbs+span/2)*sps); -rDPSKSa = rDPSK(sps*span/2+1:sps:(numSymbs+span/2)*sps); +rPSKSa = rPSK(1:2:end); +rDPSKSa = rDPSK(1:2:end); -[rPSKSaPhEq, phiestsPSK] = phaseNoiseCorr(rPSKSa, M, pi/M, 40); +[rPSKSaPhEq, phiestsPSK] = phaseNoiseCorr(rPSKSa, M, pi/M, 80); demodPSK = pskdemod(rPSKSaPhEq, M, pi/M, 'gray'); demodDPSK = dpskdemod(rDPSKSa, M, pi/M, 'gray'); @@ -60,9 +61,9 @@ demodDPSK = dpskdemod(rDPSKSa, M, pi/M, 'gray'); figure(2); -plot(t(1:40000), repelem(-phiestsPSK, sps)); +plot(t(1:80000), repelem(-phiestsPSK, 8)); hold on; -plot(t(1:40000), pTxLoPSK(1:40000)); +plot(t(1:80000), pTxLoPSK(1:80000)); legend('estimate', 'actual'); title('Phase noise estimation'); hold off;