FH程序.docx
- 文档编号:9613727
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:21
- 大小:19.23KB
FH程序.docx
《FH程序.docx》由会员分享,可在线阅读,更多相关《FH程序.docx(21页珍藏版)》请在冰豆网上搜索。
FH程序
clc,clear
closeall
%快跳频系统
%数据采用MFSK调制
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%跳频参数设置%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
M=4;%MFSK
T=0.001;%数据比特周期(s)
L=log2(M);
Ts=L*T;%MFSK的码符号周期
fm=100000;%MFSK信号载频中心频率
fs=1/Ts;%MFSK的码速率
Tc=Ts/4;%跳频周期(Tc fc=1/Tc;%最小单频间隔 Bs=M*fc;%MFSK信号带宽 fh=200000;%跳频信号中心频率 K=16;%跳频频率个数 Bt=K*Bs;%发射信号带宽 t=0.1;%仿真时间 fsample=1600000;%采样速率 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%跳频信号产生%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Data_len=floor(t/Ts);%用户数据长度 Data=randsrc(Data_len,1,(0: M-1));%用户数据 %%%%%%%%%%%%%%%%MFSK调制%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% St_baseband=DMOD(Data,fm,fs,fsample,'fsk',M,fc);%MFSK信号 %figure,plot(St_baseband),title('MFSK基带信号'); signal_len=length(St_baseband);%仿真时间内采样数据长度 %%%%%%%%%%%%%%%%%%%跳频载波产生%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FH_seq=randsrc(ceil(signal_len/fsample/Tc),1,(0: K-1));%跳频序列 FH_sin=zeros(signal_len,1);%本地跳频信号载波 phase=2*pi*rand; fori=1: ceil(signal_len/fsample/Tc) f2=fh+(FH_seq(i)*2-(K-1))*Bs/2;%跳频频点中心频率 FH_sin((i-1)*fsample*Tc+1: i*fsample*Tc)=cos(2*pi*f2*(0: fsample*Tc-1)/fsample+phase); phase=2*pi*rand;%随机相位(非相干慢跳频) %phase=phase+2*pi*f2*(fsample*Tc)/fsample;%连续相位(相干慢跳频) end FH_sin(signal_len+1: end)=[]; %%%%%%%%%%%%%%%%%%%跳频信号产生%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% St_mix_fh=FH_sin.*St_baseband;%跳频调制 N0=48;%宽带带通滤波器阶数 tr_fir_coff=fir1(N0,[2*fh/fsample,2*(fh+2*fm)/fsample]);%[0.25,0.5]);%发射宽带带通滤波器系数 %%%%%%%%%%%%%%%%%%%接收信号通过宽带带通滤波器%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% St=zeros(signal_len,1);%通过宽带滤波器后的发射信号 fori=1: N0/2 St(i)=tr_fir_coff*[zeros(N0/2-i+1,1);St_mix_fh(1: N0/2+i)]; end fori=(N0/2+1): (signal_len-N0/2) St(i)=tr_fir_coff*St_mix_fh(i-N0/2: N0/2+i); end fori=(signal_len-N0/2+1): signal_len St(i)=tr_fir_coff*[St_mix_fh(i-N0/2: signal_len);zeros(i+N0/2-signal_len,1)]; end St=(St-mean(St))/std(St);%发射信号幅度归一化 figure subplot(311),plot((0: signal_len-1)/(signal_len)*fsample,abs(fft(St_baseband))),gridon,title([num2str(M),'FSK基带信号频谱']); subplot(312),plot((0: signal_len-1)/(signal_len)*fsample,abs(fft(St_mix_fh))),gridon,title('跳频混频后信号频谱'); subplot(313),plot((0: signal_len-1)/(signal_len)*fsample,abs(fft(St))),gridon,title('发射信号频谱'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%信道,噪声及干扰设置%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %信道为自由空间传播信道,噪声为加性高斯白噪声 SNR=0;%加性高斯白噪声信噪比dB SJR=-10;%信干比: 接收信号功率/干扰信号功率 snr=SNR-10*log10(fsample/2/Bt);%折算为带内白噪声强度 Jam=zeros(signal_len,1);%干扰信号 %%%%%%%%%%%%%%%%%%%干扰信号产生%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Jam_type=4;%1: 单音干扰 %2: 多音干扰 %3: 噪声调频干扰 %4: MFSK干扰 %其它: 仅高斯白噪声干扰 %%%网控信道干扰率设置%%%%%%%%% Jam_percent=1/1;%干扰网控信道数比例 %1/1: 干扰全部网控信道 %1/2: 干扰1/2网控信道 %1/3: 干扰1/3网控信道 Jam_ch_num=ceil(K*Jam_percent);%干扰网控信道数 channel=randperm(K); channel(Jam_ch_num+1: end)=[]; multi_sin_num=4;%多音干扰每信道干扰正弦波数 Jam_M=4;%MFSK干扰进制数 switchJam_type case1%%%%%%%%%%%单音干扰%%%%%%%%%%%%%% f_jam=fh+fm+(channel'-K/2-1/2)*Bs+randsrc(Jam_ch_num,1,(1-M/2: M/2))*fc-fc/2; Jam=(cos(2*pi*f_jam*(1: signal_len)/fsample+2*pi*rand))'; Jam=mean(Jam,2); Jam=(Jam-mean(Jam))/std(Jam); figure,plot((0: signal_len-1)/(signal_len)*fsample,abs(fft(Jam))),gridon,title('单音干扰信号频谱'); case2%%%%%%%%%%%多音干扰%%%%%%%%%%%%%% Jam=zeros(signal_len,multi_sin_num); fori=1: Jam_ch_num f_jam=fh+fm+(channel(i)-K/2)*Bs-rand(multi_sin_num,1)*Bs; Jam=Jam+(cos(2*pi*f_jam*(1: signal_len)/fsample+2*pi*rand))'; end Jam=mean(Jam,2); Jam=(Jam-mean(Jam))/std(Jam); figure,plot((0: signal_len-1)/(signal_len)*fsample,abs(fft(Jam))),gridon,title([num2str(multi_sin_num),'音干扰信号频谱']); case3%%%%%%%%%%%噪声调频干扰%%%%%%%%%% fori=1: Jam_ch_num f_jam=rand(signal_len,1)*Bs-Bs/2; Jam=Jam+amod(f_jam,fh+fm+(channel(i)-K/2-1/2)*Bs,fsample,'fm'); end Jam=(Jam-mean(Jam))/std(Jam); figure,plot((0: signal_len-1)/(signal_len)*fsample,abs(fft(Jam))),gridon,title('噪声调频干扰信号频谱'); case4%%%%%%%%%%%MFSK干扰%%%%%%%%%% fori=1: Jam_ch_num Jam=Jam+DMOD(randsrc(Data_len,1,(0: Jam_M-1)),fm+fh+(channel(i)-K/2-1/2)*Bs,fs,fsample,'fsk',Jam_M,Bs/Jam_M); end Jam=(Jam-mean(Jam))/std(Jam); figure,plot((0: signal_len-1)/(signal_len)*fsample,abs(fft(Jam))),gridon,title([num2str(Jam_M),'FSK干扰信号频谱']); otherwise%%%%%%%%%%%无人为干扰%%%%%%%%%% end Jam=Jam*10^(-SJR/20); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%跳频信号接收%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%设接收系统与接收信号严格同步%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rt=awgn(St,snr)+Jam;%接收信号 figure plot((0: signal_len-1)/(signal_len)*fsample,abs(fft(Rt))),gridon,title('接收信号频谱'); %%%接收参数设置 N1=48;%宽带带通滤波器阶数 wide_fir_coff=fir1(N1,[2*fh/fsample,2*(fh+2*fm)/fsample]);%接收机宽带带通滤波器系数 N2=48;%宽带低通滤波器阶数 lowpass_fir_coff=fir1(N2,4*fm/fsample);%解跳后宽带低通滤波器系数 N3=96;%窄带带通滤波器阶数 bandpass_fir_coff=fir1(N3,[0.22,0.28]);%降采样后窄带带通滤波器系数 %%%%%%%%%%%%%%%%%%%接收信号通过宽带带通滤波器%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rt_passband=zeros(signal_len,1);%通过宽带滤波器后的信号 fori=1: N1/2 Rt_passband(i)=wide_fir_coff*[zeros(N1/2-i+1,1);Rt(1: N1/2+i)]; end fori=(N1/2+1): (signal_len-N1/2) Rt_passband(i)=wide_fir_coff*Rt(i-N1/2: N1/2+i); end fori=(signal_len-N1/2+1): signal_len Rt_passband(i)=wide_fir_coff*[Rt(i-N1/2: signal_len);zeros(i+N1/2-signal_len,1)]; end %figure %plot((0: signal_len-1)/(signal_len)*fsample,abs(fft(Rt_passband))),gridon,title('接收信号宽带滤波后频谱'); %%%%%%%%%%%%%%%%%%%本地跳频载波产生%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FH_sin=zeros(signal_len,1);%本地跳频信号载波 phase=2*pi*rand; fori=1: ceil(signal_len/fsample/Tc) f2=fh+(FH_seq(i)*2-(K-1))*Bs/2;%跳频频点中心频率 FH_sin((i-1)*fsample*Tc+1: i*fsample*Tc)=cos(2*pi*f2*(0: fsample*Tc-1)/fsample+phase); phase=2*pi*rand;%随机相位(非相干慢跳频) %phase=phase+2*pi*f*(fsample*Tc)/fsample;%连续相位(相干慢跳频) end FH_sin(signal_len+1: end)=[]; %%%%%%%%%%%%%%%%%%%解跳%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rt_mix_fh=Rt_passband.*FH_sin;%接收信号与本地跳频信号混频 figure plot((0: signal_len-1)/(signal_len)*fsample,abs(fft(Rt_mix_fh))),gridon,title('解跳混频后信号频谱'); %%%%%%%%%%%%%%%%%%%解跳信号通过宽带低通滤波器%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rt_lowpass=zeros(signal_len,1);%通过宽带低通滤波器后的信号 fori=1: N2/2 Rt_lowpass(i)=lowpass_fir_coff*[zeros(N2/2-i+1,1);Rt_mix_fh(1: N2/2+i)]; end fori=(N2/2+1): (signal_len-N2/2) Rt_lowpass(i)=lowpass_fir_coff*Rt_mix_fh(i-N2/2: N2/2+i); end fori=(signal_len-N2/2+1): signal_len Rt_lowpass(i)=lowpass_fir_coff*[Rt_mix_fh(i-N2/2: signal_len);zeros(i+N2/2-signal_len,1)]; end figure plot((0: signal_len-1)/(signal_len)*fsample,abs(fft(Rt_lowpass))),gridon,title('解跳混频去除倍频信号频谱'); %%%%%%%%%%%%%%%%%%%采样%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sample_rate=fm*8;%8倍载波采样速率 Rt_bassband=Rt_lowpass(1: fsample/sample_rate: end);%基带MFSK信号(降采样) sample_len=length(Rt_bassband); figure plot((0: sample_len-1)/(sample_len)*sample_rate,abs(fft(Rt_bassband))),gridon,title('基带采样信号频谱'); %%%%%%%%%%%%%%%%%%%窄带滤波%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rt_baseband=zeros(sample_len,1); fori=1: N3/2 Rt_baseband(i)=bandpass_fir_coff*[zeros(N3/2-i+1,1);Rt_bassband(1: N3/2+i)]; end fori=(N3/2+1): (sample_len-N3/2) Rt_baseband(i)=bandpass_fir_coff*Rt_bassband(i-N3/2: N3/2+i); end fori=(signal_len-N3/2+1): sample_len Rt_baseband(i)=bandpass_fir_coff*[Rt_bassband(i-N3/2: sample_len);zeros(i+N3/2-sample_len,1)]; end figure plot((0: sample_len-1)/(sample_len)*sample_rate,abs(fft(Rt_baseband))),gridon,title('窄带滤波后基带信号频谱'); %%%%%%%%%%%%%%%%%%MFSK信号解调%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rdata=DDEMOD(Rt_baseband,fm,fs,sample_rate,'fsk/noncoherence',M,fc); error=length(find(Data~=Rdata))/length(Data)*100;%误码率 figure subplot(311),plot(Data),gridon,title('发送数据'); subplot(312),plot(Rdata),gridon,title('接收数据'); subplot(313),plot(Data-Rdata),gridon,title(['误码率=',num2str(error),'%']); Fsk解调 functionFSK Fc=10;%载频 Fs=40;%系统采样频率 Fd=1;%码速率 N=Fs/Fd; df=10; numSymb=25;%进行仿真的信息代码个数 M=2;%进制数 SNRpBit=60;%信噪比 SNR=SNRpBit/log2(M); seed=[1234554321]; numPlot=25; %产生25个二进制随机码 x=randsrc(numSymb,1,[0: M-1]);%产生25个二进制随机码 figure (1) stem([0: numPlot-1],x(1: numPlot),'bx'); title('二进制随机序列') xlabel('Time'); ylabel('Amplitude'); %调制 y=dmod(x,Fc,Fd,Fs,'fsk',M,df); numModPlot=numPlot*Fs; t=[0: numModPlot-1]./Fs; figure (2) plot(t,y(1: length(t)),'b-'); axis([min(t)max(t)-1.51.5]); title('调制后的信号') xlabel('Time'); ylabel('Amplitude'); %在已调信号中加入高斯白噪声 randn('state',seed (2)); y=awgn(y,SNR-10*log1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FH 程序