LZ程序产生错误结果是用错了函数filter,原因如下。

FIR一类滤波器按定义有(N-1)/2个样点的延迟,其中N是滤波器的阶数(即程序中的n)。对于FIR滤波器的滤波方法应该用conv函数,滤波器的输出应该为y21=conv(y,hh)。信号输入y长为FS,即为1000,滤波器系数hh长3627,则滤波器输出y21=conv(y,hh)长为1000+3627-1=4626。其中只有1000个样点才是滤波器的输出,它为y22=y21(n/2+1:n/2+FS);,该数值前面是过渡数值,后面是不完全的滤波,所以通过样的处理就能得到FIR滤波器的输出。

而函数filter只取了输出4627个样点中的前1000个样点,所以只取到输出的过渡数值,而不是滤波器的真正输出,得到的结果当然就产生错误。

以下是我修正的程序:N=2048;

FS=1000;%采样频率

%凯撒窗的带阻滤波器,通带频率[58 62],阻带频率[59 61]

[n,Wn,beta,ftype]=kaiserord([58 59 61 62],[1 0 1],[0.1 0.001 0.1],FS);

hh=fir1(n,Wn,ftype,kaiser(n+1,beta));

[h,w0]=freqz(hh,1,N,FS);

figure(1);    %滤波器频率响应

plot(w0,20*log10(abs(h)));

title('滤波器的频率响应');xlabel('频率Hz');ylabel('分贝dB');

axis([50 70 -70 2]);

grid on;

x=(0:FS-1)/FS;

y=sin(2*pi*x*50)+sin(2*pi*x*100)+sin(2*pi*x*70);%测试信号

y1=fft(y,N);

w=(0:N-1)/N*FS;

y2=filter(hh,1,y);      %滤波

%y3=fft(y2,N);           %滤波后的频谱

y21=conv(y,hh);

y22=y21(n/2+1:n/2+FS);

figure(2)

subplot 311; plot(y)

title('测试信号波形图')

subplot 312; plot(y2)

title('filter滤波后信号波形图')

subplot 313; plot(y22)

title('conv滤波后信号波形图')

figure(3)

Y3=fft(y22,N);

subplot 211; plot(w(1:N/2),abs(y1(1:N/2)));

title('测试信号滤波前的频谱图');xlabel('频率Hz');ylabel('幅度');

axis([40 110 0 550]); grid on

subplot 212; plot(w(1:N/2),abs(Y3(1:N/2)));

title('测试信号conv滤波后的频谱图');xlabel('频率Hz');ylabel('幅度');

axis([40 110 0 550]); grid on

得图如下

dl21b.jpg

(50.1 KB, 下载次数: 0)

2019-12-20 20:30 上传

Fig2

dl21c.jpg

(37 KB, 下载次数: 0)

2019-12-20 20:32 上传

Fig3

滤波器频率响应 matlab,滤波器频率响应与实际滤波情况不符合相关推荐

  1. PLC信号处理系列之滤波器设计(MATLAB滤波器设计工具箱介绍)

    在学习和应用滤波器解决工程问题之前,需要了解一定的信号处理相关基础知识,有关信号和系统的学习笔记可以参看下面的专栏: https://blog.csdn.net/m0_46143730/article ...

  2. 基于Matlab App Designer的语音信号分析与处理(二):IIR和FIR滤波器的设计,语音信号的滤波

    接上文:https://blog.csdn.net/weixin_53877178/article/details/122470759 目录 一.课题的任务 二.内容.步骤和要求 (1)语音信号的采集 ...

  3. 零相位滤波matlab,什么叫零相位滤波器(最小相位滤波器)

    本文主要介绍什么是阶段,阶段给了我们什么启示?什么是相位滤波,相位滤波在整个声音系统中起着什么重要的作用.在本文的最后,我们将通过一个典型的相位滤波调试案例,与朋友们分享分频系统中相位均衡调试的重要性 ...

  4. CIC滤波器的Matlab仿真与FPGA实现

    CIC滤波器 1.单级CIC滤波器: CIC滤波器的冲激响应为: h(n)=1,[0,M-1] h(n)=0,其他 可见CIC滤波器在时域上是一个矩形窗,是一个累加器(积分器). 用MATLAB仿真不 ...

  5. matlab中fir1中的边界频率,FIR滤波器的MATLAB设计与实现.pdf

    FIR滤波器的MATLAB设计与实现 1.设计任务 1.用MATLAB软件实现FIR滤波器: 2.设计基于DSP 的FIR滤波器硬件框图: 3.了解用DSP实现FIR滤波器的关键问题: 4.完成必要的 ...

  6. Matlab滤波器设计

    滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程. 滤波器的实现包括滤波器结构的选择和滤波器参数的计算.只有完成了滤波器的设计和实现,才能最终完成数据的滤波. 滤波器设计的目标是实现数据序列的频 ...

  7. 实验matlab滤波器心得,数字滤波器实验总结

    1. 数字电路实验心得体会 原发布者:tqgqiaoe7342 数字电子技术实验总结心得数字电子技术是一门理论与实践密切相关的学科,如果光靠理论,我们就会学的头疼,如果借助实验,效果就不一样了,特别是 ...

  8. Matlab滤波器设计示例

    目录 1. 概要 2. 低通滤波器设计例 with designfilt() 2.1 要点一:归一化频率 2.2 要点二:如何使用所生成的滤波器 3. designfilt() 的功能 3.1 能设计 ...

  9. matlab fir1 filter,Matlab滤波器设计

    滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程.滤波器的实现包括滤波器结构的选择和滤波器参数的计算.只有完成了滤波器的设计和实现,才能最终完成数据的滤波. 滤波器设计的目标是实现数据序列的频率 ...

  10. 【DSP教程】第36章 FIR滤波器的Matlab设计(含低通,高通,带通和带阻)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第36章       FIR滤波器的Matlab设计(含低通 ...

最新文章

  1. 如何找到存在Ceph里面的文件
  2. 心得丨在开始第一个机器学习项目之前就了解的那些事儿
  3. [论文笔记] Fast Quality Driven Selection of Composite Web Services (ECOWS, 2006)
  4. 微软私有云分享(R2)7-Linux虚拟机无DNS?
  5. CORS 请求未能成功_CORS 测试 提示错误 Reason: header authorization
  6. 程序基本功之遍历二叉树
  7. python兼容性怎么样_Python与exe的兼容性
  8. 参数binlog_rows_query_log_events和binlog_row_image 与用 binlog恢复数据
  9. mysql 字符编码
  10. BootStrap 组件和样式
  11. 【Python】Python列表基本操作
  12. 【java学习之路】(javaWeb【后端】篇)004.Thymeleaf
  13. InDesign入门教程,如何导入文本?
  14. 随手记_英语_学术写作
  15. K8S学习笔记之借助Minikube完成在windows环境下Kubernetes的单节点搭建-(超级简单)
  16. WRONGTYPE Operation against a key holding the wrong kind of value
  17. CSDN博客新增「评论置顶」、「定时发布」功能,翘首期盼的PC版「每日一练」上线!【第14期*2021.9.22】
  18. 专家看台:盛大架构师周爱民回顾职业历程,分享十项建议
  19. 人工智能python好学吗_人工智能“速成班”Python好学吗 小心别被忽悠了
  20. 五大主流浏览器及四大内核1

热门文章

  1. laydate使用官方使用方法
  2. Jmeter java取样器实现
  3. 漫谈Anchor-based和Anchor-Free
  4. 释放数字生产力 引领数字化转型新纪元——弘玑Cyclone 2022产品发布会圆满落幕
  5. 【npm】伙计,给我来一杯package.json!不加糖
  6. MFC深入浅出--永久保存
  7. i3 10100F和i3 10105F差距大不大
  8. 《5G应用“扬帆”行动计划(2021-2023年)》征求意见稿发布
  9. cocos2d实现画笔功能及常用的绘制函数
  10. Django(十二):django支付(微信支付宝)+项目部署(虚拟机、docker、云服务器)