频率滤波(2)

本文深入探讨了傅里叶变换在信号处理中的应用,详细阐述了如何利用MATLAB进行频率滤波操作,包括滤波器的设计与实现,以及不同类型的滤波效果分析。通过对滤波原理的解析,帮助读者更好地理解和掌握信号处理的关键技术。
摘要由CSDN通过智能技术生成
function [f_filt]=freq_filter(f,h)
f=mat2gray(f); % 归一化 转化为double 
h=double(h);
pad_h=zeros(size(f)+size(h)-1);  % 在频率域滤波 空域的图像和滤波器都要填充,如果不填充会产生缠绕误差,填充后的大小
pad_f=pad_h; % 填充后滤波器的大小与填充后图像的大小是相同的
%但是填充零的话,相当于在空域乘以了一个距函数 即f(x,y)*rect(x,y),那么在频域等价于
%conv2(F(u,v),F(rect(x,y))[卷积定理]  众所周知 F(rect(x,y))  是一个sinc(x,y) 函数
%sinc(x,y) 函数是向两边无限延伸的函数,造成有sinc 函数的高频分量导致的频率泄漏,泄漏会在图像上产生块效应
%填充零是一种急剧过渡,后来人们就使用各种窗,来平滑过渡
n=size(pad_h,1); %
m=size(pad_h,2);
nf1=fix((n-size(f,1))/2);
mf1=fix((m-size(f,2))/2);
nf2=fix((n+size(f,1))/2);
mf2=fix((m+size(f,2))/2);
np1=fix((n-size(h,1))/2);
mp1=fix((m-size(h,2))/2);
np2=fix((n+size(h,1))/2);
mp2=fix((m+size(h,2))/2);
pad_h(np1:np2-1,mp1:mp2-1)=pad_h(np1:np2-1,mp1:mp2-1)+h; % 填充算符(滤波器)
pad_f(nf1:nf2-1,mf1:mf2-1)=pad_f(nf1:nf2-1,mf1:mf2-1)+f;% 图像填充
f_filt=if
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值