用MATLAB设计FIR滤波器
用MATLAB设计FIR滤波器
- 滤波器
- 滤波器定义
- 滤波器种类
- 滤波器设计
- 滤波器设计要求
- Matlab程序设计滤波器
- 利用Matlab工具箱设计滤波器
- 总结
滤波器
滤波器定义
“滤波器(filter),是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电。对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就是得到一个特定频率或消除一个特定频率。”
滤波器种类
滤波器按照频率来分类,可分为高通、低通、带通、带阻以及全通滤波器,根据所需选择合适滤波器。
滤波器设计
滤波器的设计方法可分为两大类,一类是IIR,另一类是FIR。对于FIR的设计,一般可以采用等波纹以及窗的方法。
滤波器设计要求
采样频率50khz,带通滤波器,通带15KHz,阻带20KHz,阻带衰减50dB,用凯撒窗设计带通滤波器。
Matlab程序设计滤波器
首先在Matlab中设置所需参数:
fs = 50000;
T = 1/fs;
L = 4000;
t = (0:L-1)*T;
然后从r32文件中读取信号数据:
filename=['文件路径'];
fid=fopen(filename,'r');
Na=4000;
dat=fread(fid,[32,Na],'float');
data=dat(1,:); %data即为所导入信号
绘制信号时域图:
plot(t,data)
得到:
再对其进行FFT:
NFFT = 2^nextpow2(L);
Y = fft(data,NFFT)/L;
f=fs/2*linspace(0,1,NFFT/2+1);
figure
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Single-sided Amplitude Spectrum of y(t)')
xlabel('Frequency(Hz)')
ylabel('|Y(f)|')
得到:
设计滤波器:
fs = 50000;
f = [13000 15000 20000 22000];
dev = [0.01 0.02 0.01];
a = [0 1 0];
[n,wn,beta,ftype] = kaiserord(f,a,dev,fs);
b = fir1(n,wn,'bandpass');
freqz(b)
得到滤波器的幅值相位图:
所设计滤波器的分子系数存于b中,使所给信号通过所设计的滤波器,所用程序如下:
d=filter(b,1,data);
plot(t,d)
得到滤波后的信号时域图:
对其进行FFT:
Y _af= fft(d,NFFT)/L;
f_af=fs/2*linspace(0,1,NFFT/2+1);
figure
plot(f_af,2*abs(Y_af(1:NFFT/2+1)))
xlabel('Frequency(Hz)')
得到:
利用Matlab工具箱设计滤波器
另外,还有一种更加快捷的设计方法,即使用Matlab自带的工具箱filterDesigner来设计滤波器:
在Matlab的命令行窗口中输入filterDesigner,得到如下窗口:
通过选择设置,可以得到滤波器的系数,以本题为例:
其系数如下:
可对其到处头文件,进行数据处理。
总结
本人对于数字信号处理这门课的学习比较冲忙,对于很多知识点都是比较模糊,希望在后续所需时能够进一步的加深理解。
在FIR滤波器设计的过程中,遇到一个比较困惑的点是,根据其他的案例,滤波器系数是包含分子系数以及分母系数,但本例产生的滤波器仅含分母系数,比较困惑,请大佬们指教!
用MATLAB设计FIR滤波器相关推荐
- fir fpga 不同截止频率_用MATLAB设计FIR滤波器的方法
用MATLAB设计FIR滤波器的方法 摘 要 介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法:程序设计法.FDATool设计法和SPTool设计法,给出了详细的设计步骤,并将设计 ...
- 用matlab设计fir高阶滤波器,用matlab设计fir滤波器的三种方法.doc
用matlab设计fir滤波器的三种方法.doc 用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法摘要介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法程序设计法.FDATO ...
- matlab凯塞窗设计,转载:用MATLAB设计FIR滤波器的方法解析
介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法:程序设计法.FDATool设计法和SPTool设计法,给出了详细的设计步骤,并将设计的滤波器应用到一个混和正弦波信号,以验证滤波器的 ...
- matlab 设计出滤波器使用,用MATLAB设计FIR滤波器的方法解析
介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法:程序设计法.FDATool设计法和SPTool设计法,给出了详细的设计步骤,并将设计的滤波器应用到一个混和正弦波信号,以验证滤波器的 ...
- matlab fir滤波器程序,使用MATLAB设计FIR滤波器
1. 采用fir1函数设计,fir1函数可以设计低通.带通.高通.带阻等多种类型的具有严格线性相位特性的FIR滤波器.语法形式: b = fir1(n, wn) b = fir1(n, wn ...
- matlab编程设计fir滤波器,用MATLAB设计FIR滤波器
滤波器 滤波器定义 "滤波器(filter),是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电.对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就 ...
- matlab的FIR滤波器设计
1.matlab设计fir滤波器的方法 matlab可以使用fir1函数设计低通.高通.低通.带通等具有严格线性相位特性的滤波器. fir1函数的几种语法如下: b=fir1(n,wn);b=fir1 ...
- 基于MATLAB的FIR滤波器的设计及应用(图像去噪)
基于MATLAB的FIR滤波器的设计及应用(图像去噪) 一.实现功能 1.学会MATLAB的使用,掌握MATLAB的程序设计方法: 2.掌握数字信号处理的基本概念.基本理论和基本方法: 3. 在MAT ...
- 长时间数据流的信号滤波处理——基于MATLAB的FIR滤波器设计(1)
背景 对于任意一个场景,获取到的信号都是经过噪声污染过的,一些简单的加性噪声可以通过统计的特性进行滤除,而对于一些乘性的噪声,只能通过滤波进行滤除. 在信号处理中,信号滤波会广泛使用.在做研究分析信号 ...
- fir滤波器等纹波matlab,基于Matlab的FIR滤波器设计与实现
基于Matlab的FIR滤波器设计与实现 一.摘要 前面一篇文章介绍了通过FDATool工具箱实现滤波器的设计,见"基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成&quo ...
最新文章
- .9文件,展示后显示黑条问题的解决
- 无线网络会杀死固网? 不可能的事情
- RK3399如何选择系统呢?
- 云服务器+开发板搭建直播系统,自建流媒体服务器开直播
- Windows Mobile中实现统计图形的绘制(C#版,柱状图)
- 你要知道动机何在吗?
- 华为手机EMUI换鸿蒙,华为手机3月全面切换鸿蒙 EMUI 11或为安卓内核绝唱
- 从fragment启动另一个fragment
- 业界分享 | Embedding技术在商业搜索与推荐场景的实践
- SIPp 安装及使用
- 抖音源码有什么奥秘?抖音为什么能推动短视频开发的热度
- 恒讯科技分享:rust服务器搭建教程
- 《IT行业职位介绍-搞懂高级程序员、架构师、技术总监、CTO从薪资到技能的区别》
- pytorch自定义Dataset,torch加载自己的numpy数据集,torch-cnn训练numpy进行回归
- 基于51单片机的波形发生器
- 《诗经·王风·黍离》
- 出版一本书可以赚多少钱_今年出版5本书
- android 钉钉考勤日历,Flutter仿钉钉考勤日历
- Maya 交互式播放
- Java_笛卡尔积计算
热门文章
- 1. C语言的第一个程序
- 史上最全的全国特产一览表,到哪就买当地最正宗的特产!!!
- day2 标识符 字面值 变量 数据类型
- 计算机C盘怎么转到D盘,电脑c盘格式化会怎样_电脑c盘怎么移到d盘
- Attention-Based View Selection Networks for Light-Field Disparity Estimation论文阅读
- 纯字母域名批量注册的详细步骤
- 解决百度推送not_same_site的问题
- 面向对象:只愿得一人心,白首不分离
- ERROR 1449 (HY000)
- 【技术】BootStrapTable 滚动条控制