窗函数法设计FIR数字滤波器

这篇具有很好参考价值的文章主要介绍了窗函数法设计FIR数字滤波器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、   实验目的

1.1.1掌握用窗函数法设计FIR数字滤波器的原理和方法。

1.1.2熟悉线性相位FIR数字滤波器特性。

1.1.3了解各种窗函数对滤波特性的影响。

  • 实验原理

窗函数设计法的基本原理是用有限长单位脉冲序列逼近与。由于往往是无限长序列,且是非因果的,所以用窗函数将截断,并进行加权处理:

用窗函数设计的滤波器性能取决于窗函数的类型及窗口长度N的取值。设计过程中,要根据阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N

  • 实验设备与器件

计算机、matlab软件。

  • 实验内容与步骤

(1)复习用窗函数法设计FIR数字滤波器一节内容。

(2)编写程序

①编写能产生矩形窗、升余弦窗、改进升余弦窗和二阶升余弦窗的窗函数程序。

②编写主程序。

(3)上机实验内容。

①用升余弦窗设计一线性相位低通FIR数字滤波器,截止频率pi/4。窗口长度N=15,33。要求在两种窗口长度情况下,分别求出(n),打印出相应的幅频特性和相频特性曲线,观察3dB带宽和20dB带宽。总结窗口长度N对滤波特性的影响。

 ②,用四种窗函数设计线性相位低通滤波器。绘制相应的幅频特性曲线,观察3dB和20 dB带宽以及阻带最小衰减,比较四种窗函数对滤波器特性的影响。

  • 数据记录

用升余弦窗设计一个FIR数字滤波器,把窗口长度分别设置为N=15,N=33,打印出来的脉冲响应如图1所示,幅频特性曲线和相频特性曲线如下图所示

窗函数法设计FIR数字滤波器

我们可以清楚地看出,对于同一类窗函数来说,窗口长度越大,过渡带越窄,而阻带的衰减不受窗函数长度N的影响。即过渡带的宽度(近似等于主瓣宽度)随窗宽增加而减少。

窗函数法设计FIR数字滤波器

                                                图 窗口长度不同时的频率特性曲线

窗口长度为N=33,截止频率为pi/4时的四种窗函数的线性相位低通滤波器的比较如图所示,我们可以看出,矩形窗的过渡带最窄,二阶升余弦窗的过渡带最宽。而阻带的衰减则是矩形窗最小,二阶升余弦窗最大,升余弦窗和改进的升余弦窗在他们两个之间,因此可以得出,过渡带的宽度与阻带的衰减时不可以兼具的,必须要实现一个折中。

窗函数法设计FIR数字滤波器

                                                    图 不同窗函数的频率响应曲线文章来源地址https://www.toymoban.com/news/detail-448083.html

%%
clc
close all
%升余弦窗函数N=15/33滤波
wc=pi/4; N1=15;N2=33;
hd1= ideallp1(wc,N1); % 用wc=0.2*pi的理想低通作为逼近滤波器
hd2= ideallp2(wc,N2); % 用wc=0.2*pi的理想低通作为逼近滤波器

wd1=hanning(N1)'; b1=hd1.*wd1; % 用升余弦窗设计:
wd2=hanning(N2)'; b2=hd2.*wd2; % 用升余弦窗设计:

[H1,w1]=freqz(b1,1);
[H2,w2]=freqz(b2,1);
figure(1)
subplot(211),stem(b1);
title('窗宽度为15的脉冲响应')
subplot(212),stem(b2);
title('窗宽度为33的脉冲响应')
figure(2)
subplot(2,1,1), plot(w1,20*log10(abs(H1)),w2,20*log10(abs(H2)),'-.');% 绘幅特性
xlabel('\omega'),ylabel('|H(\omega)|'),title('幅频特性曲线')
legend('N=15','N=33')
subplot(2,1,2), plot(w1,angle(H1),w2,angle(H2),'-.');
xlabel('\omega'),ylabel('rad'),title('相频特性曲线')
legend('N=15','N=33')
figure
%%


%%
%四种窗函数
wc=pi/4;N1=33;
hd1=ideallp1(wc,N1);
wd1=boxcar(N1)' ; b1=hd1.*wd1; % 用矩形窗设计:
wd2=hanning(N1)'; b2=hd1.*wd2; % 用升余弦窗设计:
wd3=hamming(N1)'; b3=hd1.*wd3; %用改进的升余弦窗设计
wd4=blackman(N1)';b4=hd1.*wd4; % 用二阶升余弦窗设计:
[H1,w]=freqz(b1,1); % 用矩形窗设计的频率特性
[H2,w]=freqz(b2,1); % 用升余弦窗设计的频率特性
[H3,w]=freqz(b3,1); % 用改进的升余弦窗设计的频率特性
[H4,w]=freqz(b4,1); % 用二阶升余弦窗设计的频率特性
figure(3)
%幅频特性
subplot(2,1,1),plot(w,20*log10(abs(H1)),w,20*log10(abs(H2)),':',w,20*log10(abs(H3)),'-.',w,20*log10(abs(H4)),'-.');
legend('矩形窗','升余弦窗','改进的升余弦窗','二阶升余弦窗')
xlabel('\omega'),ylabel('|H(\omega)|'),title('幅频特性曲线')
 % 相频特性
subplot(2,1,2),plot(w,angle(H1),w,angle(H2),':',w,angle(H3),'-.',w,angle(H4),'-.');
legend('矩形窗','汉宁窗','布莱克曼窗')
legend('矩形窗','升余弦窗','改进的升余弦窗','二阶升余弦窗')
xlabel('\omega'),ylabel('rad'),title('相频特性曲线')
%%
%理想滤波器频率响应
function hd1=ideallp1(wc,N1)
tao=(N1-1)/2;
n=[0:(N1-1)];
m=n-tao+eps;
hd1=sin(wc*m)./(pi*m);
end
function hd2=ideallp2(wc,N2)
tao=(N2-1)/2;
n=[0:(N2-1)];
m=n-tao+eps;
hd2=sin(wc*m)./(pi*m);
end

到了这里,关于窗函数法设计FIR数字滤波器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 FIR实时数字滤波器实现

    首先是生成不同周期的正弦波:         由于定时器设置为250us进入一次中断,每秒可进入中断4000次,为了生成25HZ的正弦信号,一个周期内生成160个数据;为了生成200HZ的正弦信号,一个周期内生成20个数据,故代码如下:     sin_1=arm_sin_f32(3.141592654*i/80)+1;//25HZ 信号   

    2024年02月14日
    浏览(45)
  • 信号处理之FIR数字滤波器(Matlab仿真)

            数字滤波器的作用是滤除不感兴趣的信号,留下想要的信号。数字滤波器可分为无限脉冲响应(IIR)数字滤波器、有限脉冲响应(FIR)数字滤波器两种,两者各有优缺点,其中FIR数字滤波器因其具有良好的线性相位特性受到广泛应用,线性相位是指信号中各频率成分的相对

    2024年02月03日
    浏览(52)
  • 数字信号处理实验:数字滤波器的设计与应用

    一. 实验目的         1.掌握模拟滤波器的设计方法,以及脉冲响应不变法和双线性变换法设计IIR数字滤波 器的方法,针对实际信号能设计相应的 IIR 数字滤波器,并按要求进行滤波。         2.掌握用窗函数法设计FIR数字滤波器的方法,并通过实验了解各种窗函数对滤

    2024年02月03日
    浏览(52)
  • 数字信号处理实验:IIR数字滤波器设计及软件实现

    目录 一、实验目的 二、实验原理 三、实验设备 四、实验内容及步骤 五、实验结果及分析 六、实验主程序框图及程序清单 七、实验总结 熟悉用双线性变换法设计IIR数字滤波器的原理与方法; 学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具FDATool)设

    2024年02月12日
    浏览(43)
  • FPGA设计FIR滤波器低通滤波器,代码及视频

    名称:FIR滤波器低通滤波器 软件:Quartus 语言:Verilog/VHDL 本资源含有verilog及VHDL两种语言设计的工程,每个工程均可实现以下FIR滤波器的功能。 代码功能: 设计一个8阶FIR滤波器(低通滤波器),要求截止频率为20KHz,使用线性相位结构。 参数设计方法: 使用matlab软件设计滤

    2024年02月08日
    浏览(53)
  • FPGA 的数字信号处理:Verilog 实现简单的 FIR 滤波器

    该项目介绍了如何使用 Verilog 实现具有预生成系数的简单 FIR 滤波器。 不起眼的 FIR 滤波器是 FPGA 数字信号处理中最基本的模块之一,因此了解如何将具有给定抽头数及其相应系数值的基本模块组合在一起非常重要。因此,在这个关于 FPGA 上 DSP 基础实用入门的教程中,将从一

    2024年02月09日
    浏览(50)
  • 数字信号处理-10-并行FIR滤波器MATLAB与FPGA实现

    本文介绍了设计滤波器的FPGA实现步骤,并结合杜勇老师的书籍中的并行FIR滤波器部分进行一步步实现硬件设计,对书中的架构做了复现以及解读,并进行了仿真验证。 FIR滤波器的结构形式时,介绍了直接型、级联型、频率取样型和快速卷积型4种。在FPGA实现时,最常用的是最

    2023年04月09日
    浏览(49)
  • Xilinx FIR IP核设计滤波器

    使用matlab工具,根据具体需求设计出滤波器系数; 打开fir ip导入滤波器系数即可; 打开matlab使用fdatool工具,填入相应的参数生成系数; Fs=250; Fpass=50; Fstop=70; Apass=0.01; Astop=80; 将滤波器系数设置为定点数输出; 导出滤波器系数,生成coe文件; Select source:选择为coe文件

    2024年02月05日
    浏览(45)
  • 数字信号处理音频FIR去噪滤波器(基于MATLAB GUI的开发)

    利用MATLAB GUI设计平台,用窗函数法设计FIR数字滤波器,对所给出的含有噪声的声音信号进行数字滤波处理,得到降噪的声音信号,进行时域频域分析,同时分析不同窗函数的效果。将文件解压至一个目录下,运行m文件即可使用。 读取.wav音频文件函数 :audioread();(老版

    2024年02月08日
    浏览(56)
  • 滤波器设计:FIR和IIR高、低、带通滤波器的实现及Matlab代码

    滤波器设计:FIR和IIR高、低、带通滤波器的实现及Matlab代码 引言: 滤波器作为信号处理中非常重要的一部分,广泛应用于数字信号处理、音频处理、图像处理等领域。本文主要讨论FIR(有限长冲激响应)和IIR(无限长冲激响应)两种常见滤波器的设计及其实现。 FIR滤波器

    2024年02月09日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包