Matlab:二维卷积定理验证

本文基于光学理论,用Matlab实现二维卷积定理验证的仿真。


Project Code
% 作者:ZQJ
% 日期:2021.2.10 星期三

%***********************卷积定理的验证**************************
clear,clc,close all;
% 水平和竖直光栅mask及其fft *************************
Mask_column = zeros(200);
Mask_row = zeros(200);
for n = 1:10
    Mask_column(:,20*n-9:20*n) = 1;
    Mask_row(20*n-9:20*n,:) = 1;
end
F_Mask_column = abs(fftshift(fft2(Mask_column)));
F_Mask_row = abs(fftshift(fft2(Mask_row)));
% figure显示 ***************************************
subplot(2,2,1);imagesc(Mask_column); colormap gray;
axis square; title('竖直光栅');
subplot(2,2,2);imagesc(Mask_row); colormap gray;
axis square;title('水平光栅');
subplot(2,2,3);imagesc(F_Mask_column); colormap gray;
axis square; title('竖直光栅FFT');
subplot(2,2,4);imagesc(F_Mask_row); colormap gray;
axis square; title('水平光栅FFT');

% 卷积定理验证 **************************************
F_Mask_column_row = abs(fftshift(fft2(Mask_column.*Mask_row)));
F_Convolution = conv2(F_Mask_column,F_Mask_row);
% figure显示 ***************************************
figure;
subplot(1,2,1);imagesc(F_Mask_column_row); colormap gray;
axis square; title('时域相乘后FFT');
subplot(1,2,2);imagesc(F_Convolution); colormap gray;
axis square; title('FFT频域卷积');
仿真结果图:

在这里插入图片描述
在这里插入图片描述


专栏内容供作者本人或大家学习使用,多多指教 ~

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值