【滤波器设计】FIR滤波器和IIR滤波器的高通、低通、带通滤波器的设计,以及频率响应附Matlab代码和报告

简介: 【滤波器设计】FIR滤波器和IIR滤波器的高通、低通、带通滤波器的设计,以及频率响应附Matlab代码和报告

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机

⛄ 内容介绍

一、设计题目

应用Matlab对语音信号进行频谱分析及滤波。

二、设计目的

数字信号处理是一门以算法为核心,理论和实践性较强的学科。是电子信息工程、通信工程专业、电子信息科学与技术专业的一门重要的专业技术基础课。数字信号处理课程是在学习完数字信号处理的相关理论后,进行的综合性训练课程,其目的是:使学生进一步巩固数字信号处理的基本概念、理论、分析方法和实现方法;增强学生应用Matlab语言编写数字信号处理的应用程序及分析、解决实际问题的能力。

三、设计内容

1语音信号的采集

利用Windows下的录音机,录制一段自己的话音,时间在1 s内。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,学生很快理解了采样频率、采样位数等概念。

2语音信号的频谱分析

首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性,从而加深学生对频谱特性的理解。

3设计数字滤波器和画出其频率响应

给出各滤波器的性能指标:

(1)低通滤波器性能指标fb1 000 Hzfc1 200 HzAs100 dBAp1 dB

(2)高通滤波器性能指标fc4 800 Hzfb5 000 Hz As100 dBAp1 dB

(3)带通滤波器性能指标fb11 200 Hzfb23 000 Hzfc11 000 Hzfc23 200 HzAs100 dBAp1 dB

用窗函数法和双线性变换法设计上面要求的3种滤波器。在Matlab中,可以利用函数fir1设计FIR滤波器,可以利用函数buttecheby1ellip设计IIR滤波器;利用Matlab中的函数freqz画出各滤波器的频率响应。

4用滤波器对信号进行滤波

用自己设计的各滤波器分别对采集的信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。

5比较滤波前后语音信号的波形及频谱

在一个窗口同时画出滤波前后的波形及频谱。

6回放语音信号

Matlab中,函数sound可以对声音进行回放。其调用格式:sound(xfsbits);可以感觉滤波前后的声音有变化。

7设计系统界面

为了使编制的程序操作方便,要求设计处理系统的用户界面。在所设计的系统界面上可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号等。

⛄ 部分代码

fb=1000;fc=1200;As=100;Ap=1;fs=22050;

[x1,Fs]=audioread('D:\matlab\sound.wav');

wc=2*pi*fc/fs;                         %通带截止频率

wn=2*pi*(fc-fb)/fs;                    %过渡带宽

N=ceil((As-7.95)/(2.286*wn));          %所需滤波器的长度

beta=0.1102*(As-8.7);                  %β的求值

Win=kaiser(N+1,beta);                  %使用kaise窗设计低通滤波器

b=fir1(N,wc/pi,'low',Win);

freqz(b,1,512);

title('FIR低通滤波器');

f2=filter(b,1,x1);

figure(2)

subplot(2,1,1)

plot(x1)

title('FIR低通滤波器滤波前的时域波形');

subplot(2,1,2)

plot(f2);

title('FIR低通滤波器滤波后的时域波形');

sound(f2,44100);                    %播放滤波后的语音信号

F0=fft(f2,1024);

f=fs*(0:511)/1024;

figure(3)

y2=fft(x1,1024);

subplot(2,1,1);

plot(f,abs(y2(1:512)));

title('FIR低通滤波器滤波前的频谱')

xlabel('频率/Hz');

ylabel('幅值');

subplot(2,1,2)

F2=plot(f,abs(F0(1:512)));

title('FIR低通滤波器滤波后的频谱')

xlabel('频率/Hz');

ylabel('幅值');

⛄ 运行结果

⛄ 参考文献

1、程佩青.数字信号处理教程. 北京:清华大学出版社出版,2001

2、MATLAB与科学设计 电子工业出版社

3、数字信号处理——使用matlab 西安交通大学出版社

4、数字信号处理基础及MATLAB实现 中国林业出版社

5Matlab信号处理与应用 电子工业出版社

6、基于MATLAB的系统分析与设计 西安电子科技大学出版社

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除


相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
9月前
|
机器学习/深度学习 编解码 并行计算
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
404 8
|
9月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
268 6
|
9月前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
538 1
|
9月前
|
传感器 机器学习/深度学习 数据采集
【数据驱动】【航空航天结构的高效损伤检测技术】一种数据驱动的结构健康监测(SHM)方法,用于进行原位评估结构健康状态,即损伤位置和程度,在其中利用了选定位置的引导式兰姆波响应(Matlab代码实现)
【数据驱动】【航空航天结构的高效损伤检测技术】一种数据驱动的结构健康监测(SHM)方法,用于进行原位评估结构健康状态,即损伤位置和程度,在其中利用了选定位置的引导式兰姆波响应(Matlab代码实现)
261 1
|
9月前
|
人工智能 运维 供应链
碳交易机制下考虑需求响应的综合能源系统优化运行(Matlab代码实现)
碳交易机制下考虑需求响应的综合能源系统优化运行(Matlab代码实现)
123 6
|
9月前
|
机器学习/深度学习 编解码 数据可视化
【能量算子】评估 EEG 中的瞬时能量:非负、频率加权能量算子(Python&Matlab代码实现)
【能量算子】评估 EEG 中的瞬时能量:非负、频率加权能量算子(Python&Matlab代码实现)
147 6
|
9月前
|
机器学习/深度学习 算法 语音技术
【语音分离】通过分析信号的FFT,根据音频使用合适的滤波器进行语音信号分离(Matlab代码实现)
【语音分离】通过分析信号的FFT,根据音频使用合适的滤波器进行语音信号分离(Matlab代码实现)
274 4
|
9月前
|
调度
【发】促进可再生能源发电消纳的用户侧典型资源需求响应策略(Matlab代码实现)
【发】促进可再生能源发电消纳的用户侧典型资源需求响应策略(Matlab代码实现)
123 1
|
9月前
|
机器学习/深度学习 存储 算法
【微电网调度】考虑需求响应的基于改进多目标灰狼算法的微电网优化调度研究(Matlab代码实现)
【微电网调度】考虑需求响应的基于改进多目标灰狼算法的微电网优化调度研究(Matlab代码实现)
380 0

热门文章

最新文章