我是靠谱客的博主 幽默冬天,这篇文章主要介绍合成孔径雷达成像——算法与实现图【2.3】仿真——rect函数、sinc函数的傅里叶变换matlab仿真,现在分享给大家,希望可以做个参考。

sinc函数傅里叶变换后得到rect函数
首先先进行初始条件的设定:

复制代码
1
2
3
4
5
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的时候有定义。
这里还可以写为:

复制代码
1
2
dt = -100:0.01:00-0.01;

若起始结束为100,即样本点为10000个,则在dt=0处matlab会将dt自动加上一个极小值,即不用加上面代码的第三行。

复制代码
1
2
3
4
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函数的完整代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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函数的傅里叶变换

复制代码
1
2
3
4
5
6
7
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,这样便可以构造一个矩形函数。
后面对其进行傅里叶变换

复制代码
1
2
3
4
N = 2^14; Af = fft(fftshift(A),N); f=-fs/2:fs/N:(fs/2-fs/N);

这里因为以矩阵的左上角为原点建立坐标系是偏离原点的,所以利用fftshift将矩阵移动至中央,然后进行傅里叶变换。
最后附上完整代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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函数内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(88)

评论列表共有 0 条评论

立即
投稿
返回
顶部