📄 timng_test.m
字号:
clear
clc
close all
dt = 1/88;
pi2 = 2*pi;
fid = fopen('rand_data.m','r');
source = fread(fid)';
fclose(fid);
source1 = [source zeros(1,100)];
Qpsk_sig(1,:) = 2*source1(1:2:end)-1;
Qpsk_sig(2,:) = 2*source1(2:2:end)-1;
Expand_sig = zeros(2,size(Qpsk_sig,2)*8);
Expand_sig(1,1:8:end) = Qpsk_sig(1,:);
Expand_sig(2,1:8:end) = Qpsk_sig(2,:);
coeff_5 = firrcos(28,5.5,0.25,88,'rolloff','sqrt');
Filter_sig(1,:) = conv(Expand_sig(1,:),coeff_5);
Filter_sig(2,:) = conv(Expand_sig(2,:),coeff_5);
t = [0:dt:(size(Filter_sig,2)-1)*dt];
Md_sig_c = Filter_sig(1,:).*cos(pi2*22*t) + Filter_sig(2,:).*sin(pi2*22*t);
Md_sig_s = -Filter_sig(1,:).*sin(pi2*22*t) + Filter_sig(2,:).*cos(pi2*22*t); % 与希尔伯特变换等效,
clear Filter_sig;
clear Expand_sig;
clear Qpsk_sig;
sig_stor_c = resample(Md_sig_c,8802,8800);
sig_stor_s = resample(Md_sig_s,8802,8800);
dt1 = 1/88.02;
t = [0:dt1:(length(sig_stor_s)-1)*dt1];
sig_ave_pow = (norm(sig_stor_c)^2+norm(sig_stor_s)^2)/(length(sig_stor_s));
dc_rig = zeros(1,29);
ds_rig = zeros(1,29);
decode = zeros(2,2);
count = -28;
count1 = 0;
decode_out = [];
store = [];
for i = 1:length(sig_stor_c)
count = count+1;
Md_sig_c = sig_stor_c ;
Md_sig_s = sig_stor_s;
Md_sig = Md_sig_c + Md_sig_s;
dc = Md_sig_c(i)*cos(pi2*22*t(i)) - Md_sig_s(i)*sin(pi2*22*t(i));
ds = Md_sig_c(i)*sin(pi2*22*t(i)) + Md_sig_s(i)*cos(pi2*22*t(i));
dc_rig(2:end) = dc_rig(1:end-1);
ds_rig(2:end) = ds_rig(1:end-1);
dc_rig(1) = dc;
ds_rig(1) = ds;
d_convert_c = dc_rig*coeff_5';
d_convert_s = ds_rig*coeff_5';
if mod(count,4)==1 & count>0
count1 = count1+1;
decode(1,2) = decode(1,1);
decode(2,2) = decode(2,1);
decode(1,1) = d_convert_c;
decode(2,1) = d_convert_s;
if mod(count1,2)==0
store = [store decode(1,1)];
tempt1 = decode(1,1) + decode(1,2);
tempt2 = decode(2,1) + decode(2,2);
if tempt1>0 & tempt2>0
decode_out = [decode_out 1 1];
elseif tempt1>0 & tempt2<0
decode_out = [decode_out 1 0];
elseif tempt1<0 & tempt2>0
decode_out = [decode_out 0 1];
else
decode_out = [decode_out 0 0];
end
end
end
end
err_num = 0;
err_bit = zeros(1,length(source));
for i = 1:length(source)
if decode_out(i)~=source(i)
err_num = err_num+1;
err_bit(i) = 1;
end
end
err_rate = err_num/length(source)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -