⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pswf.m

📁 认知无线电波形设计
💻 M
字号:
clear all;
tmin=-1e-9;
tmax=1e-9;
Ts=8e-9;
smp=128;
dt=(tmax-tmin)/smp;
fs=1/dt;
frequencysmoothingfactor=8;
NN=frequencysmoothingfactor*smp;
df=1/(NN*dt);
positivefrequency=linspace(0,(fs/2),NN/2);
%-------------------
%PSWF信号产生
%-------------
fu1=6e9;  %单位Hz
fl1=3e9;   %单位Hz
 N=64;  %采样点数
 t=tmin:1/N*tmax:tmax;
 h=2*fu1*sinc(2*fu1*t)-2*fl1*sinc(2*fl1*t);
 for i=1:N+1,
     for j=1:N+1,
         H(i,j)=h(i-j+N+1);
     end
 end
[v,d]=eig(H);
i=1:N+1;
pulse1=v(i,65);
pulse2=v(i,64);
pulse3=v(i,63);
pulse4=v(i,62);
 %------------------------
%pswf信号频谱
%-------------------
pulse1=pulse1/max(abs(pulse1(:)));
X1=fft(pulse1,NN);
X1=X1/NN;
E1=fftshift(abs(X1).^2/(df^2));
Ess1=2.*E1((NN/2+1):NN);
singlederivativePSD1=10*log10((1/Ts)*Ess1/377)+90;
%----------------------------------
%另一个频段的pSWF脉冲波形
%-----------------
fu2=10e9;  %单位Hz
fl2=7e9;   %单位Hz
 N=64;  %采样点数
 t=tmin:1/N*tmax:tmax;
 h=2*fu2*sinc(2*fu2*t)-2*fl2*sinc(2*fl2*t);
 for i=1:N+1,
     for j=1:N+1,
         H(i,j)=h(i-j+N+1);
     end
 end
[v,d]=eig(H);
i=1:N+1;
pulse21=v(i,65);%一阶PSWF
pulse22=v(i,64);%二阶PSWF
pulse23=v(i,63);%三阶PSWF
pulse24=v(i,62);%四阶PSWF
grid on;
% t1=tmin:2/N*tmax:tmax;
 %plot(t1,pulse21);%画图,一阶PSWF
% plot(t1,pulse22);%画图,二阶PSWF
% plot(t1,pulse23);%画图,三阶PSWF
% plot(t1,pulse24);%画图,四阶PSWF


%--------------
%另一个PSWF函数的功率谱密度
%---------------
pulse21=pulse21/max(abs(pulse21(:)));
X2=fft(pulse21,NN);
X2=X2/NN;
E2=fftshift(abs(X2).^2/(df^2));
Ess2=2.*E2((NN/2+1):NN);
singlederivativePSD2=10*log10((1/Ts)*Ess2/377)+90;
%--------------
%功率谱模板
%-------------
%loading the emission mask on NN points
emissionmask=cp0703_generate_mask(NN,fs);
%----------------
%画图,组合PSWF函数的功率谱密度
%--------------
figure(1);
plot(positivefrequency/1e6,emissionmask,'r','LineWidth',[3]);
hold on;
PF=plot(positivefrequency/1e6,singlederivativePSD1,'*-');
hold on;
plot(positivefrequency/1e6,singlederivativePSD2,'+-g');

set(PF,'LineWidth',[2]);
AX=gca;
set(AX,'FontSize',14);
T=title('组合PSWF函数的功率谱密度');
set(T,'FontSize',14);
X=xlabel('Frequency [MHz]');
set(X,'FontSize',14);
Y=ylabel('PSD [dBm/MHz]');
set(Y,'FontSize',14);
 axis([0 15e3 -80 -40]);





 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -