📄 pr7_32.m
字号:
%Problem 7.32;
%Simulating fast frequency hopped spread spectrum modulation;
clear all; close all;
f0=1; %carrier frequency;
Tc=100; %chip duration;
S=[1,3,2,1,0,4]; N=length(S); Sov=kron(ones(1,4),kron(S,ones(1,Tc))); %FH signature, its length and oversampling;
%first part imitates spreading and modulation;
frin=max(S)+1; %frequency modulation index: minimum frequency shift due to data modulation;
D=[0,1,0,2]; Dov=kron(D,ones(1,N*Tc)); %4 bits of data and oversampled data;
Ft=Sov+frin*Dov; %frequency signature data-manipulated;
t=[0:length(Sov)-1]/Tc; %time scale;
ss=cos(2*pi*(f0+Ft).*t); sscmp=exp(i*2*pi*(f0+Ft).*t); %FH spread signal;
mod=[Dov;Sov;Ft;ss]; YLM=[-0.2,1.2*max(D);-0.2,frin;-0.2,1.2*max(Ft);-1.2,1.2]; YL={'data','freq signature','inst freq','FSK FH signal'}; %preparing to plotting;
for k=1:4
subplot(4,1,k);
plot(t,mod(k,:)); ylim(YLM(k,:)); xlim([0,4*N]); ylabel(YL(k)); grid; set(gca,'xtick',[0:6:24]);
end; %plotting data, FH signature, signature manipulated by data and FSK FH signal;
xlabel('t/Delta');
%second part imitates despreading and demodulation;
sds=real(sscmp.*exp(-i*2*pi*Sov.*t)); %despreading by downconversion of the signal;
rfr=cos(2*pi*([0:frin:max(D)*frin]+f0)'*t(1:N*Tc)); %references of different frequencies for demodulation;
Ddm=[];
for k=1:4
z=rfr*sds((k-1)*N*Tc+1:k*N*Tc)'; [Mx,adr]=max(z); Ddm=[Ddm,adr-1]; %demodulation is done by computing correlations of FSK signal with references of all frequencies and selection the largest;
end;
Ddm=kron(Ddm,ones(1,N*Tc)); %oversampling for display;
dmod=[ss;Sov;sds;Ddm]; YLM=[-1.2,1.2;-0.2,frin;-1.2,1.2;-0.2,1.2*max(D)]; YL={'FSK FH signal','freq signature','dsprd sign','dmod data'}; %preparing to plotting;
figure;
for k=1:4
subplot(4,1,k);
plot(t,dmod(k,:)); ylim(YLM(k,:)); xlim([0,4*N]); ylabel(YL(k)); grid; set(gca,'xtick',[0:6:24]);
end; %plotting data, FH signature, signature manipulated by data and FSK FH signal;
xlabel('t/\Delta');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -