?? kuopinqpsk.m
字號:
function [jielun]=kuopinQPSK(SNR)
% % %基于循環(huán)統(tǒng)計(jì)量的直擴(kuò)信號檢測
% clear all;
% close all;
% clc
% whj
%-----------產(chǎn)生直擴(kuò)BPSK信號---------------------------
fcarr = 25e3; % Carrier frequency
fs = 200e3; % Sampling frequency
Ts = 1/fs; % Sampling time = 1/fs
fm = 2.5e3; % 信息碼速率(波特率)
Tm = 1/fm; % Symbol time 碼元周期
M_mm=2;%BPSK調(diào)制
B_length=100;%符號個數(shù)
N_mm=fs/fm;%一個碼元周期內(nèi)含有的采樣點(diǎn)數(shù)
sigma_A=1;%信號幅度
n_mm=B_length*N_mm;%信號的總長度
symbols_mm=randint(1,B_length,[0,1]);%產(chǎn)生基帶碼元/
symbolsmm=symbols_mm;
x1_B = ones(N_mm,1)*symbolsmm;
x1_BB = x1_B(:)';
% subplot(511)
% plot(x1_BB)
% axis([0 length(x1_BB) -0.2 3.2])
x1_qpsk=sigma_A*dmod(symbolsmm,fcarr,fm,fs,'psk',M_mm);%BPSK調(diào)制信號
% subplot(512)
% plot(x1_qpsk)
% axis([0 length(x1_qpsk) -1.2 1.2])
fs_mm=200e3;%m序列采樣率
fm_mm=12.5e3;%波特率 Rc表示
n=length(x1_qpsk);
mm=30;
symbols_rand=idinput(mm,'prbs',[0,1],[-1,1]);
nn=ceil(fs/fm*B_length/mm);
symbols_rand=repmat(symbols_rand,1,nn);
s_rand=symbols_rand(:);
s_rand=repmat(s_rand,1,fs_mm/fm_mm);
s_rand=s_rand';
s_rand=s_rand(:)';%PN碼
% subplot(513)
% plot(s_rand)
% axis([0 length(x1_qpsk) -1.2 1.2])
xx_rand=x1_qpsk.*s_rand(1:length(x1_qpsk)); %BPSK調(diào)制后擴(kuò)頻
T=1024;
xx_rand=xx_rand(1:T);
% % subplot(514);plot(xx_rand)
% % axis([0 length(x1_qpsk) -1.2 1.2])
% plot(xx_rand)
% %----------高斯白噪聲----------------------------------------
% % SNR=2; %與正常信號的信噪比
% noise=sqrt(1/(10^(SNR/10))); %信號幅度取1
% noise=noise*randn(1,length(xx_rand));
% xx_rand=xx_rand+noise;
%-----------alpha低階穩(wěn)定分布噪聲------------------------------------------
% SNR =2 ;
% ne1 = randn(1,len);
ne1 = mystable(length(xx_rand),0.9,0)';%設(shè)定低階穩(wěn)定分布噪聲階數(shù),注意不要和循環(huán)頻率混了
na = (mse(xx_rand)/10^(SNR/10))*ne1;
xx_rand = xx_rand+na;
%-----------構(gòu)造檢驗(yàn)序列---------------------------
m=40;
df=100; %間隔步長因子
alpha=[-3*fcarr:fcarr/df:3*fcarr];%循環(huán)頻率范圍
% %%%%%%%%%%%%%%
% xx_rand =(abs(xx_rand).^(-0.5)).*conj(xx_rand); %低階化
% %%%%%%%%%%%%%%%
Ruv=csdr(xx_rand,xx_rand,alpha,fs,m);
% plot(abs(Ruv))
Ruv=Ruv';
% gama=0.01;
for k=1:length(alpha)
Ruv2=[real(Ruv(:,k)),imag(Ruv(:,k))];
%-----------求協(xié)方差矩陣-----------
X=Ruv2;
[n,p]=size(X);
X=X-ones(n,1)*mean(X);
Y=X'*X/(n-1);
%------------------------
Yr=(T*Ruv2*pinv(Y))'; %構(gòu)造檢驗(yàn)統(tǒng)計(jì)量(此處可能有錯誤,可按照文獻(xiàn)重新修改運(yùn)行看結(jié)果)
Prb=0;
Prs=0;
Pfa=0.01; %設(shè)置虛警概率
gama=9.210;
% Pfa=0.001; %設(shè)置虛警概率
% gama=13.815;
for l=1:length(Yr)
if(Yr(:,l)>gama)Prb=Prb+1;
else Prs=Prs+1;
end
end
end
Prb=Prb/length(Yr);
Prs=Prs/length(Yr);
if(Prb>Pfa)
if((k-((length(alpha))-1)/2)~=0)
% jielun='有直擴(kuò)信號'
jielun=1;
% xunhuanf=(k-((length(alpha))-1)/2)*fcarr/df;%通過估計(jì)循環(huán)頻率來估計(jì)載頻
end
else jielun=0;%jielun='無直擴(kuò)信號'
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -