低通滤波器

Resample_1

試著忘記壹切 提交于 2019-12-02 05:23:32
resample 功能:对时间序列进行重采样。 格式: 1.y = resample(x, p, q) 采用多相滤波器对时间序列进行重采样,得到的序列y的长度为原来的序列x的长度的p/q倍,p和q都为正整数。此时,默认地采用使用 FIR方法 设计的抗混叠的低通滤波器。 2.y = resample(x, p, q, n) 采用chebyshevIIR型低通滤波器对时间序列进行重采样,滤波器的长度与n成比例,n缺省值为10. 3.y = resample(x, p, q, n, beta) beta为设置低通滤波器时使用Kaiser窗的参数,缺省值为5. 4.y = resample(x, p, q, b) b为重采样过程中滤波器的系数向量。 5.[y, b] = resample(x, p, q) 输出参数b为所使用的滤波器的系数向量。 说明: x--时间序列 p、q--正整数,指定重采样的长度的倍数。 n--指定所采用的chebyshevIIR型低通滤波器的阶数,滤波器的长度与n成比列。 beta--设计低通滤波器时使用Kaiser窗的参数,缺省值为5. 来源: https://www.cnblogs.com/blog-of-cm/p/11731690.html

在频率域中直接生成滤波器

人走茶凉 提交于 2019-11-29 02:41:49
除了之前说的从空间滤波器中获得频率域滤波器,还可以从频率域中直接生成滤波器,这些滤波器被规定为距滤波器中心点的距离不同的函数。可以创建一个用于实现频率滤波器的网格数组,最主要的是需要计算任何点到频率矩形中一个指定点的距离函数,FFT(快速傅里叶)算法是假设变换的原点位于频率矩形的左上角,因此需要将原点平移到频率矩形的中心,用fftshift。网格数组如下: %(频域滤波函数) 提供了距离计算及其所需的网格数组 function [U,V] = dftuv(M,N) u=0:(M-1); v=0:(N-1); idx = find(u>M/2); u(idx) = u(idx)-M; idy=find(v>N/2); v(idy)=v(idy)- N; [V,U] = meshgrid(v,u); end 一、低通(平滑)频率域滤波器 常见的频率域低通滤波器有三个,理想低通滤波器(ILPF),巴特沃斯低通滤波器(BLPF),高斯低通滤波器(GLPF)。 1)理想低通滤波器的传递函数如下: 其中,D0为正数,D(u,v)为点(u,v)到滤波器中心的距离,满足D(u,v)=D0的点的轨迹为一个圆。如果用滤波器乘以一幅图像的傅里叶变换,我们会看到一个理想滤波器会切断(乘以0)该圆之外的所有F(u,v)分量,而保留圆上和圆内的所有分量不变(乘以1)。 可以用之前的mesh将滤波器显示出来:

OpenCV 低通滤波

拥有回忆 提交于 2019-11-28 05:48:35
#include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> using namespace std; using namespace cv; Mat I;//输入的图像矩阵 Mat F;//图像的快速傅里叶变换 Point maxLoc;//傅里叶谱的最大值的坐标 int radius = 20;//截断频率 const int Max_RADIUS = 100;//设置最大的截断频率 Mat lpFilter;//低通滤波器 int lpType = 0;//低通滤波器的类型 const int MAX_LPTYPE = 2; Mat F_lpFilter;//低通傅里叶变换 Mat FlpSpectrum;//低通傅里叶变换的傅里叶谱灰度级 Mat result;//低通滤波后的效果 string lpFilterspectrum = "低通傅里叶谱";//显示窗口的名称 //快速傅里叶变换 void fft2Image(InputArray _src, OutputArray _dst); //幅度谱 void amplitudeSpectrum(InputArray _srcFFT, OutputArray