matlab画模糊函数,正弦信号的模糊度函数怎么画?

我现在有一个网上找到的 LFM的模糊度函数程序,但是这个画模糊度函数时,用到了带宽B  而正弦信号是没有B的啊,那怎么改这个程序啊?

%近程模式下的单脉冲信号产生,频谱图,模糊函数图,模糊度等高线图,自相关函数图和多普勒敏感度:

clear all;close all;

%定义参数

B=10e6;       % B ——带宽

Fc=10e9;      % Fc——载频

Fs=10*B;      % Fs——采样率

T2=10e-6;     % T2——脉冲宽度

Tr=375e-6;    % Tr——探测周期

C=2.997e8;

%产生线性调频脉冲信号

mu=B/T2;

NT2=[Fs*T2];

t=[-NT2/2:NT2/2-1]*T2/NT2;

f=Fc+mu*t.*t/2;

sig=exp(2*pi*j*f);

figure(1);

plot(t*1e6,real(sig));

title('近程模式下线性调频脉冲信号');

xlabel('延时(一个脉宽时间内)/us');

ylabel('归一化幅度');

grid on;

%线性调频脉冲信号频谱

sigfft=fftshift(fft(sig));

Nf=length(sigfft);

f=[-Nf/2:Nf/2-1]*Fs/Nf;

figure(2);

plot(f*1e-6,abs(sigfft)/max(abs(sigfft)));

% plot(f,abs(sigfft)/max(abs(sigfft)));

title('近程模式下的信号频谱图');

xlabel('频率/MHz');

ylabel('归一化幅度');

grid on;

%模糊函数

Naw=80; %??????????、

Fdmax=B; %%????????????????????

i=0;

for t=[-Naw:Naw-1]*T2/Naw

i=i+1;

j=0;

for Fd=[-Naw:Naw-1]*Fdmax/Naw;

j=j+1;

vala=(T2-abs(t))/T2;

valb=T2-abs(t);

valc=pi*(Fd+mu.*t);

vald=valb*valc+eps;

ambg(j,i)=abs(vala*(sin(vald)/(vald))).^2;

end

end

Td=[-Naw:Naw-1]*T2/Naw;

Fd=[-Naw:Naw-1]*Fdmax/Naw;

figure;

mesh(Td*1e6,Fd*1e-6,ambg);

% mesh(Td,Fd,ambg);

title('信号的模糊函数图');

xlabel('延时/us');

ylabel('多普普勒频移/MHz');

zlabel('归一化幅度');

grid on;

%模糊度等高线图

figure;

contour(Td*1e6,Fd*1e-3,ambg);

title('回波模糊度等高线图');

xlabel('延时/us');

ylabel('多普普勒频移/KHz');

grid on;

%模块功能:自相关函数

figure;

plot(Td*1e6,abs(ambg(:,Naw+1)));

title('回波自相关函数');

xlabel('延时/us');

ylabel('归一化幅度');

grid on;

%多普勒敏感度

figure;

plot(Fd*1e-3,abs(ambg(Naw+1,:)));

title('回波多普勒敏感度');

xlabel('多普勒频移/KHz');

ylabel('归一化幅度');

grid on;

你可能感兴趣的:(matlab画模糊函数)