Matlab学习打卡—13位巴克吗

function [amf] = af_barker(Barker_code,T)

N = length(Barker_code);

tau = N*T;

samp_num = size(Barker_code,2)*10;

n = ceil(log(samp_num)/log(2));

nfft = 2^n;

u(1:nfft) = 0;

u(1:samp_num) = kron(Barker_code,ones(1,10));

delay = linspace(-tau,tau,nfft);

subplot(2,3,1),plot(delay*1e6+N,u),grid on;

sampling_interval = tau/nfft;

freqlimit = tau/nfft;

f = linspace(-freqlimit,freqlimit,nfft);

freq = fft(u,nfft);

vfft = freq;

freq = abs(freq)/max(abs(freq));

subplot(2,3,2),plot(f*1e-6,fftshift(freq));grid on;

freq_del = 12/tau/100;

freql = -6/tau:freq_del: 6/tau;

for k = 1:length(freql)

sp = u.*exp(1j*2*pi*freql(k).*delay);

ufft = fft(sp,nfft);

prod = ufft.*conj(vfft);

amf(k,:) = fftshift(abs(ifft(prod)));

end

amf = amf./max(max(amf));

[m,n] = find(amf == 1.0);

subplot(2,3,3),

%[X,Y] = meshgrid(delay*1e6,freq1*1e-6);

mesh(delay*1e6,freql*1e-6,amf);

subplot(2,3,4),contour(delay*1e6,freql*1e-6,amf,1,'b');grid on;

subplot(2,3,5),plot(delay*1e6,amf(m,:),'k');grid on;

subplot(2,3,6),,plot(freql*1e-6,amf(:,n),'k');


Matlab学习打卡—13位巴克吗

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章