?? top_tb_source.m
字號:
clear all;
N = 10;
% A(1:3:N)=1;
% A(2:3:N)=-1;
% A(3:3:N)=-1;
% A(1:5)=1;
A(1:10)=1;
C=A;
% A = randsrc(1,N,[1,-1]);
SNR_INPUT=100000;
B(1)=-1;
for i=1:length(A)
B(i+1)=B(i)*A(i);
end
A=B;
PNi = ss_mlsrs([1 0 0 1 0 0 0]);
fc = 24384000;%中頻
fs = 32512000;%抽樣頻率
f_err_s = 0;
phase_0 = pi/4;
%PN = [1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 1 0];
PNi = 1 - PNi*2;
M = length(PNi);
for n=1:N
Xi0((n-1)*M+(1:M))=A(n)*PNi;% I路未成型的基帶信號
end
Xi1 = rcosflt(Xi0,1,8,'sqrt',0.36);
signal_baseband_sender_i = Xi1';;% I路成型的基帶信號
%調制
t = (0:length(Xi1)-1)/fs;
phase_sender = 2*pi*t*(fc + f_err_s) - phase_0;
signal_if_sender = signal_baseband_sender_i.*cos(phase_sender); %發(fā)射機中頻調制信號
'發(fā)端調制完畢'
signal_if_sender = awgn(signal_if_sender,SNR_INPUT - 10*log10(8/2/(1+0.36)),'measured'); %接收機收到的中頻調制信號,信號帶寬內的信噪比為SNR_INPUT;
signal_if_sender = round(signal_if_sender*(2^9 -1)/max(abs(signal_if_sender)));
for m=1:length(signal_if_sender)
if(signal_if_sender(m)<0)
Xi3(m) = signal_if_sender(m) + 2^10;
else
Xi3(m) = signal_if_sender(m);
end
end
fid = fopen('f:\fpgawork\dssp_tb_source\test_tob_dmf.txt','w');
if(fid~=-1)
for m=1:length(Xi3)
fprintf(fid,'%x',Xi3(m));
fprintf(fid,'%c',' ');
end
end
fclose(fid)
fid = fopen('F:\760program\rom.coe','w');
if(fid~=-1)
fprintf(fid,'%c','memory_initialization_radix=16;');
fprintf(fid,'%c','memory_initialization_vector=');
for m=1:length(Xi3)
fprintf(fid,'%x',Xi3(m));
fprintf(fid,'%c',',');
end
end
fclose(fid)
plot(abs(fft(signal_if_sender)));
cose=cos(phase_sender);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
signal_receive = signal_if_sender .* round(cos(phase_sender)*(2^15-1));
flt=[-2,-1,0,1,3,4,5,5,3,1,-2,-6,-9,-11,-11,-9,-4,3,13,24,36,47,55,61,63,61,55,47,36,24,13,3,-4,-9,-11,-11,-9,-6,-2,1,3,5,5,4,3,1,0,-1,-2];
signal_receive_base= conv(signal_receive,flt);
plot(signal_receive_base);
pianyi=6*8-1;
PNi1=PNi(127:-1:1);
signal_receive_base1=signal_receive_base(1+pianyi:8:length(signal_receive_base));
signal_receive_base2=signal_receive_base(2+pianyi:8:length(signal_receive_base));
signal_receive_base3=signal_receive_base(3+pianyi:8:length(signal_receive_base));
signal_receive_base4=signal_receive_base(4+pianyi:8:length(signal_receive_base));
signal_receive_base5=signal_receive_base(5+pianyi:8:length(signal_receive_base));
signal_receive_base6=signal_receive_base(6+pianyi:8:length(signal_receive_base));
signal_receive_base7=signal_receive_base(7+pianyi:8:length(signal_receive_base));
signal_receive_base8=signal_receive_base(8+pianyi:8:length(signal_receive_base));
res1=conv(signal_receive_base1,PNi1);
res2=conv(signal_receive_base2,PNi1);
res3=conv(signal_receive_base3,PNi1);
res4=conv(signal_receive_base4,PNi1);
res5=conv(signal_receive_base5,PNi1);
res6=conv(signal_receive_base6,PNi1);
res7=conv(signal_receive_base7,PNi1);
res8=conv(signal_receive_base8,PNi1);
plot(res1);
result=res1(127:127:length(res1));
stem(result);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -