运用傅里叶变换对信号进行简单的滤波
原理:将信号进行傅里叶变换可以信号中有哪些频率成分,将需要滤除的频率成分的幅值置零,然后进行傅里叶逆变换就可以达到滤波的目的。
注意点:运行FFT进行变换时需要考虑奈奎斯特之后的振幅和相位,进行傅里叶逆变换的时候是取N个点进行变换,而不是取一半。
下面以一个实例进行说明:
信号:x=0.5*sin(2*pi*3*t)+cos(2*pi*10*t),滤除8Hz-15Hz的信号,程序运行的结果如下:
图1是原始时域信号,图2是原始频域信号,图3是滤波后的频域信号,图4是经过IFFT之后得到的滤波后的时域信号
源代码如下:
clc,clear
dt=0.02;%采样间隔
N=512;%采样点数
t=0:dt:(N-1)*dt;%采样时刻
fs=1/dt;%采样频率,与才采样间隔互为倒数
n=0:1:N-1;
f=(fs/N).*n;%X轴每个点对应的频率
x=0.5*sin(2*pi*3*t)+cos(2*pi*10*t);%信号
figure(1)
plot(t,x) %显示原始信号的时域图
y=fft(x);%傅里叶变换得到一个复数
Ay=abs(y);%取模
Ayy=Ay*2/N;%转换成实际的幅值
figure(2)
plot(f(1:N/2),Ayy(1:N/2)) %显示原始信号的频域图
f1=8;
f2=15;
yy=zeros(1,length(y));
for m=0:N-1if(m*(fs/N)>f1&m*(fs/N)<f2|m*(fs/N)>(fs-f2)&m*(fs/N)<(fs-f1));%将奈奎斯特之后的频率也滤除点掉yy(m+1)=0; %将【f1,f2】频率段信号的幅值置0elseyy(m+1)=y(m+1); %其它频率段保持原样end
end
yyi=abs(yy)*2/N; %滤波后频域的幅值
figure(3)
plot(f(1:N/2),yyi(1:N/2)) %显示滤波后的频域图
yi=ifft(yy); %对滤波后的信号进行傅里叶反变换
figure(4)
plot(t,real(yi)) %显示滤波后的时域图
运用傅里叶变换对信号进行简单的滤波相关推荐
- MATLAB--运用傅里叶变换对信号进行简单的滤波
运用傅里叶变换对信号进行简单的滤波 原理 将信号进行傅里叶变换可以信号中有哪些频率成分,将需要滤除的频率成分的幅值置零,然后进行傅里叶逆变换就可以达到滤波的目的. 注意点 运行FFT进行变换时需要考虑 ...
- matlab对图像信号进行频谱分析及滤波,数字信号处理课程设计---应用 Matlab对信号进行频谱分析及滤波...
数字信号处理课程设计---应用 Matlab对信号进行频谱分析及滤波 课课 程程 设设 计 (论文) 报计 (论文) 报 告告 书书 课程名称课程名称 数字信号处理 题题 目目 应用Matlab 对信 ...
- [Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- 信号与系统——傅里叶变换☞一维信号
信号与系统--傅里叶变换☞一维信号 0. 引言 1. 广义傅里叶级数 1.1 矢量的正交分解 1.1.1 二维空间的矢量正交分解 1.1.2 n维空间的矢量正交分解 1.2 信号的正交分解 2. 周期 ...
- python低通滤波器_[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波
[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波 发布时间:2019-04-28 20:35, 浏览次数:2739 , 标签: Python 该系列文章是讲解Python OpenCV ...
- matlab - 信号平滑、移动平均滤波
matlab - 信号平滑.移动平均滤波 对信号进行平滑操作的重要性不言而喻 1.信号提取 matlab内置了一个这样的数据:某个地方一个月内的温度变化数据,1小时测量一次,所以总数据量是24*31. ...
- 弱小目标检测跟踪算法研究(7) 基于简单平滑滤波算法的红外弱小目标检测之背景抑制
基于简单平滑滤波算法的红外弱小目标检测之背景抑制 1. 前言 2. 平滑滤波算法 3. Matlab仿真 4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵"弱"和&quo ...
- 一维离散傅里叶变换,信号分解
傅里叶变换的应用涵盖了概率与统计.信号处理.量子力学和图像处理等学科. 离散傅里叶变换的公式如下: 在MATLAB中,可以直接使用函数库fft(X)对一维向量X做傅里叶变换,分析信号的组成.如下例子处 ...
- 跟我学Python图像处理丨傅里叶变换之高通滤波和低通滤波
摘要:本文讲解基于傅里叶变换的高通滤波和低通滤波. 本文分享自华为云社区<[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波>,作者:eastmount . 一.高通滤波 傅 ...
最新文章
- python时间处理模块datetime+dateutil、numpy时间处理模块datetime64以及pandas时间处理模块Timestamp的演化路径及常用处理接口
- PHP菜刀工具WebHandler
- 利用Python实现简单的相似图片搜索的教程
- 攻防世界第四题Reverse re1
- antd如何获取表单的值_antd 父组件获取子组件中form表单的值
- r语言合并多个csv文件_PDF合并怎么做?分享多个PDF文件合并的方法
- C语言20790内所有因子的和,长春市水污染控制指标的因子和聚类分析.pdf
- mysql 启动_mysql安装、启动
- android unity hid,Unity5.X与Arduino交互
- selenium API
- Linux基础-1.Linux命令及获取帮助
- 煤矿调度计算机使用管理制度,煤矿调度文档管理制度(参考).doc
- 智课雅思词汇---十八、前缀peri是什么意思
- PhysX3.4文档(4) --Rigid Body Overview
- 红米手机开启开发者模式方法
- 2020SCTF——PWN snake
- 获取电信天邑TEWA-700E光猫超级密码相近系列通用方法
- VGG16 VGG19
- 免费主机 虚拟主机 香港虚拟主机
- 机器学习 --- 逻辑回归
热门文章
- c语言中input函数输入,在第3题的基础上,编写一个函数input,用来输入5个学生的数据记录...
- iMeta | 中大李文均组描绘不同极端环境原核微生物培养策略
- R(八): R分词统计-老九门
- c语言的实验报告 实验4,C语言实验四实验报告
- C++中的虚析构函数的作用
- 2021年美容师(高级)考试内容及美容师(高级)找解析
- 十款优质企业级Java微服务开源项目(开源框架,用于学习、毕设、公司项目、私活等,减少开发工作,让您只关注业务!)
- 命令行执行C语言程序时清屏命令
- G8期刊《全体育》期刊简介及投稿要求
- Eclipse(STS)中查看源代码出现乱码问题