数字信号处理实验四(FIR数字滤波器设计)

  •  FIR数字滤波器设计(2学时)
    1. 要求:
      1. 设计一个最小阶次的低通FIR数字滤波器,性能指标为:通带0Hz~1500Hz,阻带截止频率2000Hz,通带波动不大于1%,阻带波动不大于1%,采样频率为8000Hz;
      2. 用一个仿真信号来验证滤波器的正确性(注意:要满足幅度要求和线性相位特性)。
    2. 目的:
      1. 利用学习到的数字信号处理知识解决实际问题;
      2. 了解线性相位滤波器的特殊结构;

实验报告:

一、实验内容

i.设计一个最小阶次的低通FIR数字滤波器,性能指标为:通带0Hz~1500Hz,阻带截止频率2000Hz,通带波动不大于1%,阻带波动不大于1%,采样频率为8000Hz;

ii.用一个仿真信号来验证滤波器的正确性(注意:要满足幅度要求和线性相位特性)。

二、实验目的

i.利用学习到的数字信号处理知识解决实际问题;

ii.了解线性相位滤波器的特殊结构;

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

Windows系统 Matlab 2022b

四、实验记录

1.原理基础

FIR(有限脉冲响应)滤波器是一种数字滤波器,其脉冲响应在有限的时间内衰减为零。FIR滤波器通过一系列加权系数的线性组合对输入信号进行卷积,以产生输出信号。对于低通FIR滤波器,它允许低频信号通过并抑制高频信号。

线性相位FIR滤波器具有对称或反对称的系数,这保证了滤波器在所有频率上具有相同的相位延迟,这对于避免信号失真非常重要。

设计FIR滤波器时,常用的方法有窗函数法、最小二乘法(如firls函数)和等波纹

法(如remez函数)。这些方法通过最小化通带和阻带内的误差来优化滤波器的性能。

2 实验流程

确定滤波器参数:

包括采样频率、通带和阻带截止频率、通带和阻带波动等。

设计FIR滤波器:

使用MATLAB的firls或remez函数设计满足性能要求的FIR滤波器。

生成仿真信号:

创建一个包含通带和阻带频率分量的仿真信号。

应用滤波器:

使用MATLAB的filter函数将设计的FIR滤波器应用于仿真信号。

分析滤波结果

绘制原始信号和滤波后信号的频谱图,检查通带和阻带的波动是否满足要求,并验证滤波器的线性相位特性。

3 源程序代码

%FIR 低通滤波器:1.设计低通滤波器并绘制图像 2.生成复合信号并绘制时域和频域 3.应用滤波器并绘制时域频域
%编辑人:贾雯爽
%目的:掌握模拟低通滤波器设计流程及影响参数
%最后更新时间:2024/06/05 


%%1.设计低通滤波器并绘制图像
%%参数设置

fs = 8000;        %设置采样频率 8k
Fp = 1500;       %通带截止频率
Fs = 2000;       %阻带截止频率
Rs = 0.01;       %阻带衰减
Rp = 0.01;       %通带波纹

figure
[n, fo, mo, w]  = remezord([1500 2000], [1 0], [0.01 0.01], 8000);
b = remez(n, fo, mo, w);

%[h w] = freqz(b, 1, 128);

%plot(w/pi, abs(h));

freqz(b, 1, 128);



N=1024;                %采样点数      
n=0:N-1;          
t=0:1/fs:1-1/fs;          %时间序列
f=n*fs/N;               %频率序列



%%2.生成复合信号并绘制时域和频域
Signal_Original=sin(2*pi*25*t);      %信号25Hz正弦波
Signal_Noise1=sin(2*pi*2000*t);      %噪声50Hz正弦波
Signal_Noise2=sin(2*pi*3000*t);      %噪声100Hz正弦波
Signal_Noise3=sin(2*pi*4500*t);      %噪声150Hz正弦波


Mix_Signal=Signal_Original+Signal_Noise1+Signal_Noise2+Signal_Noise3;  %将信号Signal_Original和Signal_Original合成一个信号进行采样               

figure
subplot(211);
plot(t, Mix_Signal);   %绘制信号Mix_Signal的波形                                                 
xlabel('时间');
ylabel('幅值');
title('原始信号');
grid on;
  

f1 = Fs/N*(0:(N/2));
subplot(212);
y=fft(Mix_Signal, N);     %对信号 Mix_Signal做FFT 
P2 = abs(y/N);%取模值 根FFT公式
P1 = P2(1:N/2+1);%自变量只取前半部分
P1(2:end-1) = 2*P1(2:end-1);%单边频谱值为双边频谱值的两倍(除原点外,原点值不变)
plot(f1,P1);
xlabel('频率/Hz');
ylabel('振幅');
title('原始信号FFT');
grid on;

%%3.应用滤波器并绘制时域频域

% 绘制原始信号时域图
figure;  
subplot(3,1,1);  
plot(t, Mix_Signal);  
title('原始信号');  
xlabel('时间 (s)');  
ylabel('幅度');  
grid on;  

%绘制滤波后时域图
Y =filter(b, 1, Mix_Signal);
subplot(3,1,2);  
plot(t, Y);  
title('滤波后的信号');  
xlabel('时间 (s)');  
ylabel('幅度');  
grid on;

%绘制滤波后频域分布图
f1 = Fs/N*(0:(N/2));
subplot(313);
y=fft(Y, N); 
P2_2 = abs(y/N);%取模值 根FFT公式
P1_2 = P2_2(1:N/2+1);%自变量只取前半部分
P1_2(2:end-1) = 2*P1_2(2:end-1);%单边频谱值为双边频谱值的两倍(除原点外,原点值不变)
plot(f1,P1_2,"LineWidth",1) 
title("滤波后的频域分布图")
xlabel("f (Hz)")
ylabel("|P1_1(f)|")


4 实验结果

5实验结果分析

在分析实验结果时,滤波器的频率响应满足设计要求,特别是通带波动和阻带波动是否在给定的阈值内。同时,我们也验证了滤波后信号的波形或频谱如预期那样,通带内的信号得以保留,而阻带内的信号被抑制。此外,我们还验证了滤波器的线性相位特性,确保在所有频率上相位响应保持一致。

五、实验总结

通过本次实验,我们成功设计了一个满足性能指标的低通FIR数字滤波器,并通过仿真信号验证了其性能。实验结果表明,我们设计的滤波器能够有效地保留通带内的信号并抑制阻带内的信号,同时保持线性相位特性。这对于处理实际信号中的噪声和干扰具有重要意义。

然而,在实验过程中我们也发现了一些可以改进的地方。例如,滤波器的阶数对滤波性能有很大影响,我们需要通过尝试不同的阶数来找到最优解。此外,我们还可以尝试使用不同的设计方法或优化算法来进一步提高滤波器的性能。这些改进措施将为我们未来的实验和研究提供有价值的参考。


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/753767.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

杂谈咋说-事业编与公务员建议收藏!

杂谈咋说-事业编与公务员建议收藏! 什么是铁饭碗 在中国,「铁饭碗」这个词常常被用来形容那些稳定、有保障的工作。 当我们谈论"铁饭碗"时,人们往往会将公务员和事业编制人员进行比较。 尽管这两者都是相对稳定的工作&#xff…

Cesium 在加载 3dTiles 如何如何获取ID

文章目录 问题分析问题 加载的 3dTiles 打印content.getFeature(i)出来后如图所示,想获取到id值 分析 var tileset = mapLayer.init3dTileLayer({url:it.url,maximumMemoryUsage: it.maximumMemoryUsage,

golang使用RSA加密和解密

目录 前提 生成RSA公钥和密钥 读取文件 加密 解密 前提 本文章我们是先读取的RSA文件,所以需要先生成RSA,并且保存在文件中,再进行加密 生成RSA公钥和密钥 如果没有公钥和密钥,可以先看看我上一篇文章 生成RSA公钥和密钥h…

一个AI图片生成工具导航网站

上周末上线了一个AI图片生成工具导航网站,主要是面向AI图片工具这个垂直领域。 https://chatgpt-image-generator.com/ 目标是通过收集当下的一些工具,然后进行分类管理,一方面方便大家发现新的工具,另一方面能够更加有针对性、…

Kotlin vs Java:深入解析两者之间的最新差异与优劣(全面指南)

文章目录 1. 概述2. 语法简洁性3. 空安全4. 扩展函数5. 协程6. 数据类7. 智能类型转换8. 默认参数与命名参数9. 无 checked exceptions10. 单例模式总结 🎉欢迎来到Java学习路线专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨…

python CSSE7030

1 Introduction In this assignment, you will implement a (heavily) simplified version of the video game ”Into The Breach”. In this game players defend a set of civilian buildings from giant monsters. In order to achieve this goal, the player commands a s…

上位机图像处理和嵌入式模块部署(mcu之静态库生成和使用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 很多同学做了很长时间的mcu和keil开发,都认为keil工程中必须包含所有的源代码,其实这是不对的。如果有一些代码我们不希望别…

游戏AI的创造思路-技术基础-深度学习(7)TF

重头戏TF,汽车人,变形~~~~ 现在广泛应用的GPT中,数据处理的关键点就是Transformer算法,多次多层的映射“变形”造就了其对自然语言处理能力的提升,但本篇介绍的内容中,Transformer算法是用来构建游戏AI的“…

深度学习经典检测方法概述

一、深度学习经典检测方法 two-stage(两阶段):Faster-rcnn Mask-Rcnn系列 one-stage(单阶段):YOLO系列 1. one-stage 最核心的优势:速度非常快,适合做实时检测任务! 但是…

【知识图谱系列】(实例)python操作neo4j构建企业间的业务往来的知识图谱

本章节通过聚焦于"金额"这一核心属性,构建了一幅知识图谱,旨在揭示"销售方"与"购买方"间的商业互动网。在这张图谱中,绿色节点象征着购买方,而红色节点则代表了销售方。这两类节点间的紧密连线,不仅映射了双方在市场活动中的合作桥梁,还特…

8个成功的原型设计案例分享

原型设计在整个产品设计过程中非常的重要,定下了整个产品的基调,想要做好原型设计,需要不断的经验的积累,新手入门最快的方式就是学习一些优秀的原型设计案例,今天就为大家分享一些可以直接使用源文件进行编辑和修改的…

Linux高级编程——线程

pthread 线程 概念 :线程是轻量级进程,一般是一个进程中的多个任务。 进程是系统中最小的资源分配单位. 线程是系统中最小的执行单位。 优点: 比多进程节省资源,可以共享变量 进程会占用&am…

SpringBoot(二)SpringBoot多环境配置

Spring框架常用注解简单介绍 SpringMVC常用注解简单介绍 SpringBoot(一)创建一个简单的SpringBoot工程 SpringBoot(二)SpringBoot多环境配置 SpringBoot(三)SpringBoot整合MyBatis SpringBoot(四…

MySQL高级-SQL优化- limit优化(覆盖索引加子查询)

文章目录 0、limit 优化0.1、从表 tb_sku 中按照 id 列进行排序,然后跳过前 9000000 条记录0.2、通过子查询获取按照 id 排序后的第 9000000 条开始的 10 条记录的 id 值,然后在原表中根据这些 id 值获取对应的完整记录 1、上传5个sql文件到 /root2、查看…

AI与学术的交响:ChatGPT辅助下的实验设计新篇章

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 在学术研究中,实验设计是确保研究质量和结果可信度的关键环节。这篇文章我们将为大家介绍如何利用ChatGPT辅助完成学术论文的实验设计,通过提供灵感、优化实验步…

有什么好用的ai自动绘画软件?6个软件帮助你快速进行智能绘画

有什么好用的ai自动绘画软件?6个软件帮助你快速进行智能绘画 寻找好用的AI自动绘画软件可以帮助用户快速进行智能绘画,以下是几款推荐的软件,它们能够提供不同风格和功能的绘画体验: 聪明灵犀:这是一款知名的AI艺术应…

【pytorch10】统计属性

常见统计属性 norm(范数)mean,sumprodmax,min,argmin,argmaxkthvalue,topk kthvalue求第几个的位置和第几个的值 topk求top几的这样的一个数值 norm范数 这里的norm表达的是范数的意思,norma…

多地高温持续“热力”爆表 约克VRF中央空调带你清凉舒爽一夏

“出门5分钟,流汗2小时”,夏季高温天气,怎一个“热”字了得?6月以来,我国多地迎来高温“炙烤”,全国出现40℃以上高温的范围持续增加,随着中央气象台高温预警持续拉响,人们都很纳闷:…

主流电商平台API接口(天猫获得淘宝商品详情,获得淘宝app商品详情原数据 ,获得淘口令真实url API,按图搜索淘宝商品(拍立淘) API )

主流电商平台商品接口在电商企业中具有重要应用价值。通过商品接口,电商企业可以实现商品同步功能: 商品信息同步:通过接口可以实时同步主流电商平台上的商品信息,包括商品标题、价格、库存、销量等数据,确保企业在自…

[leetcode]search-insert-position 搜索插入位置

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int searchInsert(vector<int>& nums, int target) {int left 0, right nums.size()-1;while(left <right) {int mid left (right-left)/2;if(nums[mid] target){return mid;} else if(nu…