資源簡介
MPSK的符號同步算法,MATLAB編寫,可運行
代碼片段和文件信息
clear
clc
close?all
%?????**********************??加載波和位定時同步???***************************************************
fs?=?88;????%?整個系統的采樣頻率
dt?=?1/fs;
f_i?=?22;
pi2?=?2*pi;
%?c1?=?1/256;
%?c2?=?1/(2048+128);
%?c3?=?1/(2048+128);
c1?=?1/128;
c2?=?1/(2048+128);
c3?=?1/2048;?????%?針對-0.02情況。
barkercode_11?=?[1?1?1?-1?-1?-1?1?-1?-1?1?-1];
pn_15?=?[1?1?1?1?0?1?0?1?1?0?0?1?0?0?0];
pn_sequence?=?pn_15*2-1;
coeff_5?=?firrcos(285.50.2588‘rolloff‘‘sqrt‘);
%?coeff_44?=[4?1?-4?-4?2?12?14?-2?-30?-48?-24?48?152?248?284?248?152?48?-24?-48?-30?-2?14?12?2?-4?-4?1?4];
Match_barker?=?kron(barkercode_11ones(12));
c_1?=?inline(‘1/6*u^3-1/6*u‘);
c_2?=?inline(‘-1/2*u^3+1/2*u^2+u‘);
c_3?=?inline(‘1/2*u^3-u^2-1/2*u+1‘);
c_4?=?inline(‘-1/6*u^3+1/2*u^2-1/3*u‘);
fid?=?fopen(‘rand_data.m‘‘r‘);
source1?=??fread(fid)‘;
fclose(fid);
source?=?[source1?zeros(1100)];
sig_i?=?[1?pn_15?source(1:2:end)];
sig_q?=?[1?pn_15?source(2:2:end)];
match_regist?=?zeros(2size(Match_barker2));
%?match_regist1?=?zeros(2size(Match_barker2));
num?=?[0.01?1];
den?=?[1?1.01?1];
[AfBfCfDf]?=?tf2ss(numden);
for?i?=?1:length(sig_i)
????if?i?==?1
????????DQpsk(1i)?=?1;
????????DQpsk(2i)?=?1;
????else
????????DQpsk(1i)?=?abs(xor(sig_i(i)sig_q(i))-1)*xor(sig_i(i)pre_i)?+?xor(sig_i(i)sig_q(i))*xor(sig_q(i)pre_q);
????????DQpsk(2i)?=?abs(xor(sig_i(i)sig_q(i))-1)*xor(sig_q(i)pre_q)?+?xor(sig_i(i)sig_q(i))*xor(sig_i(i)pre_i);
????end
????pre_i?=?DQpsk(1i);
????pre_q?=?DQpsk(2i);
end
DQpsk?=?DQpsk*2-1;
Expand_sig?=?kron(DQpskbarkercode_11);?????????%?spread
Ep_insert_sig?=?zeros(2length(Expand_sig)*8);??%?insert?8?zero
Ep_insert_sig(:1:8:end)?=?Expand_sig;
Filter_sig(1:)?=?conv(Ep_insert_sig(1:)coeff_5);??%?low_filter?(fc?=?11fs?=88);
Filter_sig(2:)?=?conv(Ep_insert_sig(2:)coeff_5);
t?=?[0:dt:(size(Filter_sig2)-1)*dt];
Md_sig_c?=?Filter_sig(1:).*cos(pi2*22*t);
Md_sig_s?=?Filter_sig(2:).*sin(pi2*22*t);
clear?Ep_insert_sig;
clear?Filter_sig;
clear?Ep_insert_sig;
sig_stor_c?=?resample(Md_sig_c87988800);
sig_stor_s?=?resample(Md_sig_s87988800);
dt1?=?1/87.98;
t?=?[0:dt1:(length(sig_stor_s)-1)*dt1];
noice?=?randn(1length(sig_stor_c));
step?=?2;
snr_min?=??4;
snr_max?=??4;
err_rate?=?[];
store?=?[];
sig_ave_pow?=?(norm(sig_stor_c)^2+norm(sig_stor_s)^2)/length(sig_stor_c);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??接受端??%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for?snr?=?snr_min:step:snr_max
????snr
????Md_sig?=?sig_stor_c?+?sig_stor_s;??%?I
????Md_sig?=?Md_sig/sqrt(sig_ave_pow)?+sqrt(10^(-snr/10))*noice*sqrt(0.5);
????
????%--------------高頻部分略過通過下載波可以得到?Md_sig_c?和?Md_sig_s?--------------------
????nco_out?=?0;
????nco_nature?=?22.01;
????i?=?0;
????dc_rig?=?zeros(129);
????ds_rig?=?zeros(129);
????match_out?=?zeros(222);
????phase_err?=?0;
????fx?=?zeros(22);
????%-----------------Timing_parament--------------------------------------------
????it_f
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????14055??2013-08-13?19:35??Gardner_for?_DQPSK\gardner1.m
?????文件???????2405??2013-08-13?19:24??Gardner_for?_DQPSK\gardner_BPSK.m
?????文件??????44592??2006-04-16?10:03??Gardner_for?_DQPSK\imag_timing.fig
?????文件??????10330??2005-03-24?23:34??Gardner_for?_DQPSK\none_timing_resample.m
?????文件???????8000??2005-03-25?09:10??Gardner_for?_DQPSK\rand_data.m
?????文件????????122??2005-03-25?09:10??Gardner_for?_DQPSK\rand_source.m
?????文件??????14218??2005-03-25?12:03??Gardner_for?_DQPSK\timing_resample.m
?????文件???????2676??2005-03-24?23:38??Gardner_for?_DQPSK\timng_test.m
?????文件???????6033??2005-03-25?09:38??Gardner_for?_DQPSK\tming_test1.m
?????目錄??????????0??2013-08-13?19:27??Gardner_for?_DQPSK
-----------?---------??----------?-----??----
???????????????102431????????????????????10
- 上一篇:膚色檢測matlab代碼
- 下一篇:圖像的飽和度,亮度,色調的matlab代碼
評論
共有 條評論