MATLAB实现汉宁窗I型高通与带通滤波器设计与分析

4星 · 超过85%的资源 需积分: 46 18 下载量 196 浏览量 更新于2024-09-13 收藏 51KB DOC 举报
这段MATLAB代码展示了如何使用汉宁窗设计一种I型数字滤波器,具体是高通滤波器。首先,代码定义了滤波器的通带频率(Wp)和阻带频率(Ws),以及过渡带宽度(tr_width)。然后,通过计算确定滤波器的适当长度(N),确保在满足设计要求的前提下,滤波器具有良好的频率响应特性。 滤波器的核心部分是理想高通滤波器的单位冲激响应(hd),这里使用了`ideal_hp1`函数。接着,汉宁窗(hanning函数)被应用到理想单位脉冲响应上,通过窗口函数减少滤波器的副作用,如频谱泄露。窗口函数的作用是将信号与一个特定形状的窗函数进行点乘,从而改善频率响应的平坦度。 `freqz_m2`函数被用来计算实际滤波器的幅度响应(mag)、相位响应(pha)和频率响应(w)。这个函数返回的是滤波器在不同频率下的幅度响应,通常以分贝(dB)为单位,以便于可视化和分析滤波效果。 代码中还定义了两个关键指标:实际通带纹波(Ap)和实际阻带纹波(As)。前者衡量滤波器在通带内的频率响应变化,后者表示滤波器在阻带抑制性能的强度。通过计算这两个值,可以评估滤波器在设计目标上的性能。 最后,代码使用`subplot`函数创建四个子图,分别展示理想单位脉冲响应、汉宁窗、实际单位脉冲响应以及幅度响应随频率的变化。这有助于工程师直观地了解滤波器的设计和性能,以便进行调整或优化。 这段代码提供了一个实用的示例,展示了如何在MATLAB中使用汉宁窗设计高通滤波器,并通过实际滤波器响应来评估其性能。这对于理解数字信号处理中的滤波理论和实践应用非常有价值。