MATLAB跳频通信系统仿真研究

1.软件版本

matlab2015a

2.系统程序

clc;clear;close all;warning off;addpath 'func\'addpath 'func\mfiles\'load data.matfs                  = 100e6;Nfft                = 4096;fc                  = 5.8e9;% [x1,t1,ssf1,yy1]    = plotspec(x,1/fs);% figure;% plot(ssf1,yy1)         % plot magnitude spectrum% xlabel('frequency'); % ylabel('magnitude')   % label the axes frameNumber = floor(length(x)/Nfft);txBlockFFT  = zeros(frameNumber,Nfft);%对信号进行短时傅里叶变换,得到跳频图案for i = 0:frameNumber-1    start                         = i*Nfft;    txBlockFFT(i+1,:)             = fftshift(fft(x(start+1:start+Nfft)));    %找出跳频图案中横轴上每个时间上对应的最大峰值,从时间开始到结束写个循环就行,    [maxValue(i+1),maxIndex(i+1)] = max(abs(txBlockFFT(i+1,:)));end%计算峰值均值Level = 10*mean(maxValue);delta_f     = fs/Nfft;f           = delta_f: delta_f: fs;f           = f - fs/2;%detect vaalid signalvalidIndexCount             = 1;validIndex                  = zeros(1,1);validIndex(validIndexCount) = 0;validFrameCount             = 0;figure;for i = 1:frameNumber-1    i    %峰值搜索    if(max(abs(txBlockFFT(i+1,:))> Level))                validFrameCount             = validFrameCount + 1;        validFrame(validFrameCount) = i+1;        if(abs(maxIndex(i+1) - validIndex(validIndexCount)) > 40)           validIndexCount             = validIndexCount +1;           validIndex(validIndexCount) = maxIndex(i+1) ;           detectFHFc                  = validIndex(2:end)*fs/Nfft- fs/2;        end                detectFHResult(i+1) = maxIndex(i+1)*fs/Nfft- fs/2+fc;        t                   = (0:length(detectFHResult)-1)*Nfft/fs;        plot(t,detectFHResult,'c*');        hold on    end    axis([0,0.1983,5.74e9,5.86e9]);    pause(0.001);endhold on;y_label = fc*ones(1,length(detectFHResult));plot(t,y_label,'r');ylim([fc-50e6 fc+50e6]);xlabel('时间s')ylabel('频率Hz');grid on;FT = zeros(1000,length(t));%归一化频率indx=find(detectFHResult==0);detectFHResult1=detectFHResult;detectFHResult1(indx)=[];detectFHResult2 = detectFHResult-min(detectFHResult1);indx=find(detectFHResult2<0);detectFHResult2(indx)=0;detectFHResult3 = floor(1000*detectFHResult2/max(detectFHResult2));for i = 1:length(t)    if detectFHResult3(i)>0       FT(detectFHResult3(i),i) = 1;    endendSE   = strel('disk',24);FT1  = imdilate(FT,SE);SE1  = strel('disk',4);FT1a = imerode(FT1,SE1);SE1  = strel('disk',8);FT2a = imerode(FT1,SE1);SE1  = strel('disk',12);FT3a = imerode(FT1,SE1); SE1  = strel('disk',16);FT4a = imerode(FT1,SE1); SE1  = strel('disk',20);FT5a = imerode(FT1,SE1); SE1  = strel('disk',23);FT6a = imerode(FT1,SE1);  FTf  = FT1a+FT2a+FT3a+FT4a+FT5a+FT6a;[X,Y]=meshgrid(t,0.001:0.001:1); %横坐标为1953~2006,纵坐标1~54 figure;contour(X,Y,FTf);xlabel('time/s');ylabel('归一化频率f/s');1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.95.96.97.98.99.100.101.102.103.104.105.106.107.108.109.110.111.112.113.





clc;clear;close all;warning off;addpath 'func\'addpath 'func\mfiles\'load data.matfs                  = 100e6;Nfft                = 4096;fc                  = 5.8e9;[x1,t1,ssf1,yy1,yy2]= plotspec(x,1/fs);figure;plot(ssf1(1:1:end)+fc,yy1(1:1:end))         % plot magnitude spectrumxlabel('frequency(Hz)'); ylabel('magnitude')   % label the axesfs          = 100e6;Nfft        = 4096;frameNumber = floor(length(x)/Nfft);txBlockFFT  = zeros(frameNumber,Nfft);for i = 0:frameNumber-1    i    start                   = i*Nfft;    txBlockFFT(i+1,:)       = fftshift(fft(x(start+1:start+Nfft)));   [maxValue maxIndex(i+1)] = max(abs(txBlockFFT(i+1,:)));endfc          = 5.8e9;delta_f     = fs/Nfft;f           = delta_f: delta_f: fs;f           = f - fs/2;%detect vaalid signalvalidIndexCount             = 1;validIndex                  = zeros(1,1);validIndex(validIndexCount) = 0;validFrameCount = 0;for i = 1:frameNumber-1    i    if(max(abs(txBlockFFT(i+1,:))> 280))        validFrameCount = validFrameCount + 1;        validFrame(validFrameCount) = i+1;        if(abs(maxIndex(i+1) - validIndex(validIndexCount)) > 40)           validIndexCount             = validIndexCount +1;           validIndex(validIndexCount) = maxIndex(i+1) ;           detectFHFc                  = validIndex(2:end)*fs/Nfft- fs/2;        end        detectFHResult(i+1) = maxIndex(i+1)*fs/Nfft- fs/2+fc;        t = (0:length(detectFHResult)-1)*Nfft/fs;        hold on    endend ind1 = find(abs(detectFHResult)>0) ;ind2 = find(detectFHResult==0) ;detectFHResult(ind2)=[];flag = [];for i = 1:length(ind1)-1    if ind1(i+1)-ind1(i) > 20       flag = [flag,i];     endend%跳频周期for i = 1:length(flag)    if i == 1       ind12(i) = ind1(flag(i)+1)-ind1(1);     else       ind12(i) = ind1(flag(i)+1)-ind1(flag(i-1)+1);     endendcycle = floor(mean(ind12))+1;for i = 1:length(t)-cycle    cyclss(i) = 1000*(t(cycle+i)-t(i));endmean(cyclss) 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.

3.仿真效果

【跳频通信】基于MATLAB的跳频通信系统仿真_matlab

【跳频通信】基于MATLAB的跳频通信系统仿真_跳频通信_02

【跳频通信】基于MATLAB的跳频通信系统仿真_跳频通信_03

【跳频通信】基于MATLAB的跳频通信系统仿真_归一化_04




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空