FFT 和matlab 采样点数和傅里叶变换所需点数关系? 下面程序中的两个为什么

clear;closeall;T=10e-6;B=30e6;Rmin=8500;Rmax=11500;R=[9000,10000,10200];RCS=[111];C=3... clear;
close all;
T=10e-6;
B=30e6;
Rmin=8500;Rmax=11500;
R=[9000,10000,10200];
RCS=[1 1 1 ];
C=3e8;
K=B/T;
Rwid=Rmax-Rmin;
Twid=2*Rwid/C;
Fs=5*B;Ts=1/Fs;
Nwid=ceil(Twid/Ts);
t=linspace(2*Rmin/C,2*Rmax/C,Nwid);
M=length(R);
td=ones(M,1)*t-2*R'/C*ones(1,Nwid);
SNR=[1,0.1,0.01,0.001,10,100,1000];
for i=1:1:7
Srt1=RCS*(exp(1i*pi*K*td.^2).*(abs(td)<T/2));
n=sqrt(0.5*SNR(i))*(randn(size(Srt1))+1i*randn(size(Srt1)));
Srt=Srt1+n
Nchirp=ceil(T/Ts);
Nfft=2^nextpow2(Nwid+Nwid-1); ????为什么???
Srw=fft(Srt,Nfft);
Srw1=fft(Srt1,Nfft);
t0=linspace(-T/2,T/2,Nchirp);
St=exp(1i*pi*K*t0.^2);
Sw=fft(St,Nfft);
Sot=fftshift(ifft(Srw.*conj(Sw)));
Sot1=fftshift(ifft(Srw1.*conj(Sw)));
N0=Nfft/2-Nchirp/2; ???为什么????
Z=abs(Sot(N0:N0+Nwid-1));
figure
subplot(211)
plot(t*1e6,real(Srt));
subplot(212)
plot(t*C/2,Z)

end
采样点数N0与计算FFT所需点数N关系?
N是为大于N0的2的幂次方数吗?
另外,N/2-N0/2 代表什么意思?
展开
jimtien
2014-09-12 · TA获得超过7656个赞
知道大有可为答主
回答量:2146
采纳率:88%
帮助的人:1175万
展开全部
采样点数越多,fft计算精度越高,但计算量增大,故要选择合适的采样点数.当采样点数等于2次幂数时,可用快速傅里叶变换法,极大提高运算速度,所以一般设定采样点数为2次幂数,实际采样数量不够时,自动以0填补.
因为fft变换结果是对称的,故画图时,去掉了一般数据(第二个算式).

不过我认为上述程序有问题.....
更多追问追答
追问
程序应该没问题。 不过还是没理解了。。。

突然又想起来了Nfft=2^nextpow2(Nwid+Nwid-1);是不是应该该做Nfft=2^nextpow2(Nwid+Nchirp-1);
追答
Srw=fft(Srt,Nfft);                               
Srw1=fft(Srt1,Nfft);

运行到上面两句时可以暂停一下,看看 Srt中的样本数

K>> size(Srt)
ans =

1 3000

而fft长度设置:
K>> Nfft
Nfft =

8192

样本只有3000个,没必要做8192点的fft

而应该用4096比较合适....
K>> Nfft=2^nextpow2(3000)
Nfft =

4096

这一句不知为何?
Nfft=2^nextpow2(Nwid+Nwid-1);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式