本文为对钱晓凡老师编著的《信息光学数字实验室》代码内容复现的一些思考整理。更多理论详细内容,请查阅相关书籍。
实验内容
(1)利用Matalb中自带的peaks函数创建一个二维带限函数,通过傅里叶变换观察其频谱,并测量其带宽,理解“带限”的含义;
(2)构建二维梳状函数,并显示其空间分布及频谱,观察改变梳状函数的空间间隔——抽样间隔后频谱的变化;
(3)利用梳状函数对连续函数抽样,得到该函数的抽样函数,在空域观察抽样函数;
(4)观察抽样函数的频谱,并与原连续函数的频谱做比较,体会抽样函数的频谱、梳状函数的频谱,以及连续函数的频谱之间的卷积关系;
(5)改变抽样间隔,或调整原连续函数的带宽,观察抽样函数频谱的混叠和分离现象,总结其规律;
(6)根据抽样间隔构建二维矩形函数滤波器,并对抽样函数的频谱完成滤波和逆傅里叶变换,观察原连续函数的带宽改变,或抽样间隔改变后,利用抽样函数重构原函数的效果,体会欠采样,继而理解抽样定理。
1 构建一个带限函数并显示
%% (1) 带限函数
fxy=cos(peaks(256).*2+pi)+1; %构建连续带限函数,只在频率空间的有限区域R上不为0
[rr,cc]=size(fxy); %计算连续函数的大小
figure,imshow(fxy,[]) %显示连续函数
F=fftshift(fft2(fxy)); %计算连续函数的频谱
figure,plot(abs(F(round(rr/2)+1,:))), %观察带宽 行 x方向
figure,plot(abs(F(:,round(cc/2)+1))), %观察带宽 列 y方向
figure,surfl(abs(F)),shading interp,colormap(gray); %频谱3D图
原函数图像
x方向频谱
y方向频谱
频谱三维显示