news 2026/6/10 6:39:32

直接打开MATLAB,先来点刺激的——搞个巴特沃斯低通滤波器。别被名字吓到,其实就是个能让低频信号通过,高频滚犊子的电路模型。看这段

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
直接打开MATLAB,先来点刺激的——搞个巴特沃斯低通滤波器。别被名字吓到,其实就是个能让低频信号通过,高频滚犊子的电路模型。看这段

基于matlab的模拟滤波器和数字滤波器设计, 基于matlab的模拟滤波器和数字滤波器设计,其中数字滤波器包扩IIR和FIR的低通、高通、带通、带阻四大类型,模拟滤波器包括巴特沃斯( Butterworth)和切比雪夫( Chebyshev)算法下的低通、高通、带通、带阻四种类型。

% 巴特沃斯低通设计 order = 4; % 四阶就够用 cutoff = 1000; % 截止频率1kHz [z,p,k] = butter(order, 2*pi*cutoff, 's'); % 注意's'表示模拟滤波器 [sos,g] = zp2sos(z,p,k); % 转成二阶节 freqs(sos, logspace(2,5,2000)); % 画幅频特性

butter函数里那个2π看着别扭?模拟滤波器设计默认用角频率(rad/s),所以要手动把Hz转成rad/s。freqs画图时横坐标自动用rad/s显示,想看Hz的话得自己改坐标轴标签。

切比雪夫来点波纹才带劲。下面这段搞个带通,通带波纹1dB:

% 切比雪夫I型带通 wp = [900 1100]*2*pi; % 通带900-1100Hz ws = [800 1200]*2*pi; % 阻带800-1200Hz Rp = 1; Rs = 40; % 通带1dB波纹,阻带衰减40dB [n, wn] = cheb1ord(wp, ws, Rp, Rs, 's'); [b,a] = cheby1(n, Rp, wn, 's'); bode(tf(b,a)); % 波特图更直观

切比雪夫的阶数计算比巴特沃斯复杂,直接交给cheb1ord算。注意比较下切比雪夫和巴特沃斯的过渡带陡峭程度,带波纹的就是更陡——这波属于用波纹换性能。

切到数字滤波器战场,IIR用双线性变换法最常见。整个高通玩玩:

% IIR数字高通 Fs = 8000; % 采样率8kHz fc = 2000; % 截止2kHz digital_cutoff = fc/(Fs/2); % 归一化到0-1 [b,a] = butter(5, digital_cutoff, 'high'); % 五阶 freqz(b,a,1024,Fs); % 数字频率响应

注意归一化频率的处理,数字截止频率要除以奈奎斯特频率(Fs/2)。freqz的参数里给采样率能让横轴显示实际频率值。

FIR设计必须上窗函数法。整一个带阻,用汉明窗:

% FIR带阻设计 Fs = 10e3; frange = [1800 2200]; % 阻带范围 n = 50; % 50阶 b = fir1(n, [frange(1)/(Fs/2), frange(2)/(Fs/2)], 'stop', hamming(n+1)); % 零极点图观察稳定性 zplane(b,1); % FIR只有零点

FIR的阶数明显比IIR高,但线性相位优势摆在那。fir1的参数顺序有点反直觉——先给归一化截止频率数组,再指定类型。用zplane画图会看到所有零点都在单位圆内或圆上,这就是FIR绝对稳定的证据。

调试滤波器时老司机都爱用fvtool,比自带的freqz更强大:

fvtool(b,a,'Fs',Fs) % 同时显示幅频、相频、群延迟

遇到设计指标不达标时,先检查通带波纹和阻带衰减是否满足要求。实在搞不定就用fdatool图形界面调参,自动生成代码抄作业不香么?不过考试时别指望能用这招。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 7:31:42

35、拼写检查器与进程管理相关技术解析

拼写检查器与进程管理相关技术解析 1. 拼写检查器的发展与特性 拼写检查器在计算机领域有着重要的作用,其发展历程丰富多样。早期的Unix拼写检查器版本以管道形式呈现,后续出现了用C语言编写的程序。例如,1975年的Version 6 Unix中的typo命令约有350行C代码,1979年Versio…

作者头像 李华
网站建设 2026/6/9 18:09:44

44、Unix文件系统深度解析

Unix文件系统深度解析 1. Unix文件系统简介 Unix文件系统是一种层次化的文件管理结构,它通过将文件分组到不同的目录中,有效地解决了大量文件管理的难题,避免了文件名冲突,并为文件提供默认属性。 在Unix中,目录可以任意嵌套,形成树状结构。根目录用斜杠(/)表示,它…

作者头像 李华
网站建设 2026/6/10 0:08:08

9、Docker网络配置全解析

Docker网络配置全解析 1. 使用pipework理解容器网络 在容器网络配置中, pipework 是一个强大的工具。当执行如下路由信息命令后: default 192.168.1.254 0.0.0.0 UG 0 0 0 eth1 192.168.1.0 * 255.255.255.0 U …

作者头像 李华
网站建设 2026/6/10 12:26:47

【R语言统计分析进阶】:农业产量差异显著性检验全解析

第一章:农业产量差异显著性检验概述在现代农业数据分析中,评估不同耕作条件、品种或管理策略对作物产量的影响至关重要。农业产量差异显著性检验是一种统计方法,用于判断两组或多组产量数据之间的差异是否具有统计学意义,而非由随…

作者头像 李华
网站建设 2026/6/9 19:55:13

7岁孩子弱视恢复,亲测有效的三大方法分享!

不知道有多少姐妹,和我们一样,才7岁就查出来弱视了!而我在这之前甚至连弱视是什么都不知道!然后医生给我说,可以恢复,但是要做好长期战的准备!然后我们就开始了漫长的弱视恢复之路,这…

作者头像 李华