信号的傅里叶变换,matlab程序

信号的傅里叶变换,matlab程序,第1张

什么样的信号,频率范围是多少?是要隐春芹用FFT滤波,还是用其他的方式?补充一下,如果是用FFT滤波的话:

对于给定的序列x(n),和采样频率fs等信息,先求其FFT频谱

y=abs(fft(x))

plot((1:length(x))*fs/length(x),y)title('信号的频谱')xlabel('频率')

然后你大概确定一下,你需要滤除的频带,上面的图形中可以看出噪声的频带。

比如说,你想要滤除森棚从f1~f2的噪声,最简单的方灶毕法就是在频域将这一段置零,

y(200:300)=0;

%这里我假设的是200到300这一段就是频率f1~f2的。这就是频率域滤波了,然后再反变换回去就行了

x=ifft(y)

%

信号滤波后重建

具体的如果设置参数,就要看你的信号的特征了。

用MATLAB 实现傅里叶变换: 用户任意输入一个函数,然后,输出函数的傅里叶厅衡仔变换函数,然后输出振幅频率 。拦高 x=sin(2*pi*t)%任意输入一个函数。 y=fft(x)%傅里叶变换函数。 plot(abs(y))%振幅频率。 函数(function)表示每个输入值扮汪对应唯一

这一篇文章中说明了用"二维卷积"的方法进行滤波/降噪( 二维卷积滤波 )。本文主要介绍另一种滤波的方法:在二维傅里叶变换后的" 频振谱 "中,用" 滤波器 "进行滤波,并对比这两种滤波方法的优劣。

滤波器没那么复杂,就是一个函数式而已,只不过这个函数式有一些特别的功能。本文选用的是" 巴特沃斯滤波器 ";图像的噪声还是" 高斯噪声 "和" 椒盐噪声 "。巴特沃斯滤波器的函数式为:

其中 是截止频率(高于这个频率值,就被滤掉了), 是阶次, 是" 中心化频振图( 中心化参考这里 ) "中各点" 距中心点的距离 "。非常简单的一个函数。而且注意到: 说明这就是在频域内的一个函数,所以它的用法就是直接和" F(u,v) F频域参看这里 "做" 矩阵点乘 "即可达到滤波~

下面我们就实 *** 一下,对一个原始图像做一下低神段通滤波看看(把图像" 变模糊 ",因为一些信号被滤掉了),对应的Matlab程序如下:

效果如下,图1是原始图像埋胡,图2是低通滤波后图像(记得ifft2回到原始xy空间):

利用这篇文章中 同样的噪声 (高斯随机噪声、椒盐噪声),看看用频域滤波效果如何。这里我就设定截止频率 ,阶次 进行" 巴特沃斯弯瞎拦低通滤波 ",加噪声后图像如下:

二维傅里叶变换后频域做低通滤波,效果说明:

最后,再补充一个" 加噪声-fft2-滤波-ifft2 "的完整流程的Matlab程序:

本文用到的" zxc.jpg "原图像, 在这里 。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12534004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存