• 数字信号处理实验三(IIR数字滤波器设计)


    •  IIR数字滤波器设计(2学时)
      1. 要求:
        1. 产生一复合信号序列,该序列包含幅度相同的28Hz、50Hz、100Hz、150Hz的单音(单频)信号;其中,50Hz及其谐波为工频干扰(注:采样率要满足要求)。
        2. 试设计一椭圆低通滤波器,将干扰信号滤除。
      2. 目的:
        1. 利用学习到的数字信号处理知识解决实际问题,学会将实际问题的数据转化为相应模型指标;
        2. 熟悉IIR数字滤波器的设计方法。

    实验报告:

    一、实验内容

    i.产生一复合信号序列,该序列包含幅度相同的28Hz、50Hz、100Hz、150Hz的单音(单频)信号;其中,50Hz及其谐波为工频干扰(注:采样率要满足要求)。

    ii.试设计一椭圆低通滤波器,将干扰信号滤除。

    二、实验目的

    i.利用学习到的数字信号处理知识解决实际问题,学会将实际问题的数据转化为相应模型指标;

    ii.熟悉IIR数字滤波器的设计方法。

    三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况)

    Windows系统 Matlab 2022b

    四、实验记录

    1.原理基础

    本实验旨在通过数字信号处理的方法,设计一个椭圆低通滤波器来滤除复合信号中的特定频率干扰(此处为50Hz及其谐波)。复合信号由四个不同频率的单音信号组成:28Hz、50Hz、100Hz和150Hz,其中50Hz及其谐波(如100Hz、150Hz等)被视为工频干扰。

    椭圆低通滤波器是一种数字滤波器,其设计目标是在通带和阻带内都具有最小的波纹(即平坦的幅度响应),并且具有陡峭的过渡带。这使得椭圆滤波器在给定滤波器阶数的情况下,能够提供最窄的过渡带。

    采样率的选择需要满足采样定理,即采样率应大于信号中最高频率的两倍,以确保信号在采样过程中不会发生混叠。

    2 实验流程

    1. 信号生成:使用编程工具(如MATLAB)生成包含28Hz、50Hz、100Hz和150Hz的复合信号,所有单音信号的幅度相同。
    2. 设计椭圆低通滤波器:使用MATLAB的滤波器设计工具(如ellipord和ellip函数)设计一个椭圆低通滤波器,滤除50Hz及其谐波。滤波器的设计参数(如通带截止频率、阻带截止频率、通带最大衰减和阻带最小衰减)需要根据实际需求进行设定。
    3. 滤波器应用:将设计的椭圆低通滤波器应用于复合信号,得到滤波后的信号。
    4. 结果分析:对比原始信号和滤波后信号的时域和频域特性,评估滤波器的性能。

    3源程序代码

    1. %IIR 低通滤波器:1.设置参数 +生成复合信号+绘制时域和频域 2.设计低通滤波器 3.应用滤波器并绘制时域频域
    2. %编辑人:贾雯爽
    3. %目的:掌握模拟低通滤波器设计流程及影响参数
    4. %最后更新时间:2024/06/05
    5. clear;
    6. clc;
    7. close all
    8. %1.1 参数设置
    9. Fs = 1000; % 采样率
    10. t = 0:1/Fs:1-1/Fs; % 时间向量
    11. f1 = 28; % 频率1
    12. f2 = 50; % 频率2(及其谐波将被滤除)
    13. f3 = 100; % 频率3(50Hz的谐波)
    14. f4 = 150; % 频率4(50Hz的谐波)
    15. A = 1; % 所有信号的幅度
    16. % 1.2生成复合信号
    17. x = A * (sin(2*pi*f1*t) + sin(2*pi*f2*t) + sin(2*pi*f3*t) + sin(2*pi*f4*t));
    18. % 1.3绘制原始复合信号
    19. figure;
    20. subplot(2,1,1);
    21. plot(t, x);
    22. title('原始复合信号');
    23. xlabel('时间 (s)');
    24. ylabel('幅度');
    25. subplot(2,1,2);
    26. y = fft(x);
    27. plot(t, y);
    28. title('原始复合信号');
    29. xlabel('频率 (Hz)');
    30. ylabel('幅度');
    31. %1.4绘制复合信号频域
    32. % 2设计椭圆低通滤波器
    33. % 2,1选择截止频率和滤波器阶数
    34. fc = 45; % 截止频率,小于50Hz
    35. N = 8; % 滤波器阶数
    36. Rp = 0.5; % 通带波纹(单位dB)
    37. Rs = 30; % 阻带衰减(单位dB)
    38. % 2.2设计椭圆滤波器
    39. [b, a] = ellip(N, Rp, Rs, fc/(Fs/2));
    40. % 2.3绘制滤波器频率响应
    41. [H, w] = freqz(b, a, 1024, Fs);
    42. figure;
    43. plot(w/pi*Fs, abs(H));
    44. title('椭圆低通滤波器频率响应');
    45. xlabel('频率 (Hz)');
    46. ylabel('|H(f)|');
    47. grid on;
    48. % 3应用滤波器到复合信号
    49. y = filter(b, a, x);
    50. % 3.1绘制滤波后的信号
    51. figure;
    52. subplot(2,1,1);
    53. plot(t, x);
    54. title('原始复合信号');
    55. xlabel('时间 (s)');
    56. ylabel('幅度');
    57. subplot(2,1,2);
    58. plot(t, y);
    59. title('滤波后的信号');
    60. xlabel('时间 (s)');
    61. ylabel('幅度');

    4 实验结果

    5 实验结果分析

    通过对滤波后信号的频谱图进行分析,可以评估椭圆低通滤波器的性能。如果滤波后信号的频谱中50Hz及其谐波的幅度显著减小,且28Hz信号的幅度变化不大,则说明滤波器设计成功,达到了预期的效果。

    五、实验总结

    通过本次实验,我成功地将所学的数字信号处理知识应用于实际问题中,即设计一个椭圆低通滤波器来滤除复合信号中的特定频率干扰。在实验过程中,我首先根据实验要求生成了一个包含28Hz、50Hz、100Hz和150Hz单音信号的复合信号。接着,我利用MATLAB的滤

    在设计滤波器时,我根据滤波器的性能指标(如通带截止频率、阻带截止频率、通带最大衰减和阻带最小衰减)进行了参数设置。通过ellipord函数确定了滤波器的阶数和归一化的截止频率,然后使用ellip函数计算了滤波器的系数。

    将设计好的椭圆低通滤波器应用于复合信号后,我得到了滤波后的信号。通过对比原始信号和滤波后信号的时域和频域特性,我观察到50Hz及其谐波在滤波后信号的频谱中被显著抑制,而28Hz信号则得以保留。这证明了椭圆低通滤波器在滤除特定频率干扰方面的有效性。

    在实验过程中,我也遇到了一些挑战。例如,在选择滤波器参数时需要权衡通带和阻带的性能,以及滤波器的阶数对过渡带陡峭程度的影响。通过不断尝试和调整参数,我最终找到了一个满足实验要求的滤波器设计方案。

    通过本次实验,我不仅加深了对数字信号处理知识的理解,还学会了将实际问题的数据转化为相应模型指标的方法。同时,我也熟悉了IIR数字滤波器的设计流程和方法,为今后的学习和研究打下了坚实的基础。


    原创文章内容,学术不精恐有错漏之处,恳请各位批评指正。如有Matlab代码源文件或其他沟通需要,可通过邮箱(2642610289@qq.com)联系我,特情注意,学业繁忙难以及时回复,敬请理解。

  • 相关阅读:
    只需这个下毒小工具,让Stable Diffusion彻底崩溃!狗变猫,车变牛,AI侵权打响反击战
    BeanUtils.copyProperties使用分析
    看了 4K 经典中视频,我才知道 30 多年前的艺术家有多牛
    智能电网中需求响应研究(Matlab代码实现)
    【Java Web】Servlet规范讲解
    多个扇形元素绕圆旋转
    2024年最新 CKA 试题题库及答案详解 导航页
    第一百五十二回 自定义组件综合实例:游戏摇杆三
    在做题中学习(56):二维前缀和模板
    CNN特征可视化相关论文
  • 原文地址:https://blog.csdn.net/Janice01/article/details/140049253