概述
sinc函数傅里叶变换后得到rect函数
首先先进行初始条件的设定:
dt = -200:0.01:200-0.01;
fs = 1/dt;
dt = dt+(dt==0)*eps;%若有0则选取一个极小值
sincx = sin(pi*dt)./(pi*dt);
这里确定函数取值范围,取样间隔,取样频率。这里说明一下第三行,它的意义在于若dt=0,则sincx函数没有定义,算出来在矩阵中得出的值是NAN,即计算错误了,所以若dt=0,这行的作用是若值为0,则我们给他加上一个相对于其他值为无穷小量的一个值,这样就可以让sincx函数在dt=0的时候有定义。
这里还可以写为:
dt = -100:0.01:00-0.01;
若起始结束为100,即样本点为10000个,则在dt=0处matlab会将dt自动加上一个极小值,即不用加上面代码的第三行。
N=2^20;
sincf = fft(sincx,N);
df=-fs/2:fs/N:(fs/2-fs/N);
然后进行傅里叶变换,用fft函数可以解决,这里的N为N点傅里叶变换,N的取值,要大于样本点数目两倍,并且最好取2的n次幂作为N值,这样便于计算。
附上sinc函数傅里叶变换为rect函数的完整代码:
dt = -200:0.01:200-0.01;
fs = 1/dt;
dt = dt+(dt==0)*eps;
sincx = sin(pi*dt)./(pi*dt);
figure
plot(dt,sincx);
xlim([-8,8])
N=2^20;
sincf = fft(sincx,N);
df=-fs/2:fs/N:(fs/2-fs/N);
figure
plot(df,fftshift(abs(sincf))/max(max(abs(sincf))))
axis([-10 10,0,1]);
运行结果如下
转换前的sincx函数:
傅里叶变换后的图形:
下面仿真rect函数的傅里叶变换
t = -100:0.01:100-0.01;
fs = 100;
A = zeros(1,20000);
for i = 9500:1:10499
A(i) = 1;
end
还是先建立矩阵,这里选取一个1行20000列的零矩阵,让最中间的1000个值取1,这样便可以构造一个矩形函数。
后面对其进行傅里叶变换
N = 2^14;
Af = fft(fftshift(A),N);
f=-fs/2:fs/N:(fs/2-fs/N);
这里因为以矩阵的左上角为原点建立坐标系是偏离原点的,所以利用fftshift将矩阵移动至中央,然后进行傅里叶变换。
最后附上完整代码:
t = -100:0.01:100-0.01;
fs = 100;
A = zeros(1,20000);
for i = 9500:1:10499
A(i) = 1;
end
plot(t,A)
N = 2^14;
Af = fft(fftshift(A),N);
f=-fs/2:fs/N:(fs/2-fs/N);
figure
plot(f,fftshift(real(Af))/max(real(Af)))
axis([-4 4,-inf inf]);
这里范围的选择是在整个图出来后,认为在-4~4之间可以将函数的趋势表示出来故取得。
这里绘图时还利用了归一化,且傅里叶变换后是复数,所以对其取了real()实部部分。
最终结果如下:
rect函数变换前:
rect函数变换后:
代码参考来源:
https://blog.csdn.net/weixin_43861730/article/details/88078530?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160586462619724836703601%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160586462619724836703601&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-2-88078530.pc_search_result_cache&utm_term=sinc%E5%87%BD%E6%95%B0%E7%9A%84%E5%82%85%E9%87%8C%E5%8F%B6%E5%8F%98%E6%8D%A2&spm=1018.2118.3001.4449
最后
以上就是幽默冬天为你收集整理的合成孔径雷达成像——算法与实现图【2.3】仿真——rect函数、sinc函数的傅里叶变换matlab仿真的全部内容,希望文章能够帮你解决合成孔径雷达成像——算法与实现图【2.3】仿真——rect函数、sinc函数的傅里叶变换matlab仿真所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复