📄 prepoznavanjefsk.m
字号:
function prepoznavanje_FSK;
clear all;
clc;
close
disp('Nalazite se u komandnom prozoru. ');
disp('Molim Vas procitajte uputstvo za rad u programu!');
disp('-----------------------------------------------');
disp('Radi tacnosti rada morate proveriti da se vas');
disp('txt fajl nalazi u Matlab/work folderu');
disp('sto mozete proveriti u Current directory')
disp('prozoru Matlaba. ');
disp(' ');
disp('===============================================');
disp('')
disp('-----------------------------------------------');
disp('Za nastavak rada pritisnite taster SPACE');
pause
disp('-----------------------------------------------');
clear all;
clc;
load signal -ascii
s=signal(:,2);
fosa=signal(:,1);
Fs=fosa(length(fosa))*2;
W=s';
figure(2)
plot(fosa,W)
xlabel('Predjite u komandni prozor')
disp('Dobro pogledajte sliku kako bi ste utvrdili ')
disp('koliko usrednjavanja treba izvrsiti!!!')
disp('')
disp(' ')
disp('Za nastavak pritisnite dirku SPACE')
pause
Br_filt=input('Unesite broj filtriranja: ');
close
if Br_filt==1
N_filt=input('Unesite nivo filtriranja u prikazanom obliku [1] :');
elseif Br_filt==0
N_filt=1;
else
N_filt=input('Unesite nivoe filtriranja u prikazanom obliku [1 2 3 ...] :');
end
for kkk=1:Br_filt
W=smooth(W,N_filt(kkk));
figure(3)
plot(fosa,W)
pause(1.5)
end
close
figure(4)
plot(fosa,W);
xlabel('Predjite u komandni prozor')
broj=input('Unesite broj izrazitih vrhova u spektru sa slike:');
[xk,yk]=ginput(broj);
Xk=xk/10; % vrednost frekvencije u kHz
disp('----------------------------------------------------------------------------------');
disp('Maksimumi su na [kHz] :');
Xk
Cf1=sum(Xk); % vrednost centralne frekvencije
Cf=Cf1/broj;
disp('----------------------------------------------------------------------------------');
disp('Centralna frekvencija je [kHz] :');
Cf
rast=diff(Xk); % rastojanje pikova u kHz
Bo=sum(rast)/length(rast)*1000;
disp('**********************************************************************************');
disp(['Devijacija [Hz]: ' num2str(Bo)]);
Srednja=mean(rast);
opseg=[0.8*Srednja 1.2*Srednja];
proba=zeros(1,length(rast));
for jj=1:length(rast)
if (rast(jj)>opseg(1)) & (rast(jj)<opseg(2))
proba(1,jj)=1;
end
end
disp('==================================================================================');
if sum(proba)==length(proba)
fprintf('Ovo je : %2.0f FSK !',broj);
if (Xk(1)<0.78) & (Xk(1)>0.72) & (rast<0.280) & (rast>0.230) & broj==8
disp(' ')
disp('Ovo je ALE protokol MIl STD 188-141 appendix A!)')
elseif (Xk(1)<1.08) & (Xk(1)>1.04) & (rast<0.870) & (rast>0.830) & broj==2
disp(' ')
disp('Ovo je modem France Navy ac21 !)')
elseif (Xk(1)<2.08) & (Xk(1)>2.00) & (rast<0.360) & (rast>0.320) & broj==2
disp(' ')
disp('Ovo je Royal navy FSK 15Bd !)')
elseif (Xk(1)<1.53) & (Xk(1)>1.49) & (rast<0.530) & (rast>0.490) & broj==2
disp(' ')
disp('Ovo je modem Bugarske diplomatije BugDiplo2 !)')
elseif (Xk(1)<0.75) & (Xk(1)>0.70) & (rast<0.260) & (rast>0.220) & broj==8
disp(' ')
disp('Ovo je modem Bugarske diplomatije BugDiplo8 !)')
elseif (Xk(1)<0.67) & (Xk(1)>0.61) & (rast<0.270) & (rast>0.230) & broj==8
disp(' ')
disp('Ovo je modem Clover 2000 !)')
elseif (Xk(1)<0.69) & (Xk(1)>0.63) & (rast<0.130) & (rast>0.090) & broj==16
disp(' ')
disp('Ovo je modem Codan2 !)')
elseif (Xk(1)<0.98) & (Xk(1)>0.92) & (rast<0.033) & (rast>0.027) & broj==13
disp(' ')
disp('Ovo je multitonska emisija Coquelet 13 !)')
elseif (Xk(1)<0.68) & (Xk(1)>0.62) & (rast<0.120) & (rast>0.080) & broj==16
disp(' ')
disp('Ovo je modem J Mil 16 T !)')
elseif (Xk(1)<1.13) & (Xk(1)>1.07) & (rast<0.800) & (rast>0.750) & broj==2
disp(' ')
disp('Ovo je Nokia modem !)')
elseif (Xk(1)<1.68) & (Xk(1)>1.58) & (rast<0.220) & (rast>0.180) & broj==2
disp(' ')
disp('Ovo je Pactor 200 !)')
elseif (Xk(1)<1.00) & (Xk(1)>0.90) & (rast<0.320) & (rast>0.280) & broj==4
disp(' ')
disp('Ovo je UK MFSK 125 !)')
elseif (Xk(1)<0.82) & (Xk(1)>0.78) & (rast<0.012) & (rast>0.008) & broj==5
disp(' ')
disp('Ovo je multitonska emisija Piccolo MKVI u mirnom stanju !)')
elseif (Xk(1)<1.1) & (Xk(1)>0.9) & (rast<0.520) & (rast>0.480) & broj==2
disp(' ')
disp('Ovo je modem Bugarske diplomatije !)')
elseif (Xk(1)<1.10) & (Xk(1)>1.00) & (rast<0.420) & (rast>0.380) & broj==2
disp(' ')
disp('Ovo je ARQ M2 200 8 CRC !)')
elseif (Xk(1)<1.10) & (Xk(1)>1.00) & (rast<0.072) & (rast>0.068) & broj==8
disp(' ')
disp('Ovo je ARQ M2 200 8 CRC izmeren u polovini spektra!)')
elseif (Xk(1)<1.05) & (Xk(1)>0.98) & (rast<0.032) & (rast>0.028) & broj==24
disp(' ')
disp('Ovo je ARQ E3 u stanju mirovanja !)')
elseif (Xk(1)<1.28) & (Xk(1)>1.21) & (rast<0.200) & (rast>0.188) & broj==4
disp(' ')
disp('Ovo je NATO F7B 195.3Bd 4-tonski pri slanju kriptovanog telegrama !)')
elseif (Xk(1)<2.08) & (Xk(1)>2.00) & (rast<0.320) & (rast>0.280) & broj==4
disp(' ')
disp('Ovo je Tadiran Data modem !)')
elseif (Xk(1)<0.980) & (Xk(1)>0.900) & (rast<0.470) & (rast>0.430) & broj==4
disp(' ')
disp('Ovo je TE 204 FSK modemski prenos !)')
elseif (Xk(1)<0.780) & (Xk(1)>0.700) & (rast<0.700) & (rast>0.660) & broj==4
disp(' ')
disp('Ovo je US mil FSK modem 16-39 !)')
elseif (Xk(1)<1.65) & (Xk(1)>1.59) & (rast<0.890) & (rast>0.850) & broj==2
disp(' ')
disp('Ovo je USAF FSK teleprinter 150Bd pri predaji saopstenja !)')
else
disp(' ')
disp('Nema takve emisije u bazi podataka !')
end
else
fprintf('Prema dobijenim podacima moze se zakljuciti da ovo nije FSK radio emisija!');
end
disp(' ');
disp('=================================================================================');
disp('Hvala sto ste koristili ovaj program !')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -