news 2026/4/3 8:07:48

直接打开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/4/2 22:23:40

收敛性和稳定性的一些结论

收敛,稳定的定义欧拉法的稳定绝对稳定域研究的是hλ的范围数值方法稳定不明所以

作者头像 李华
网站建设 2026/3/29 18:37:58

让汽车乖乖走直线的秘密武器——手把手玩转MPC轨迹跟踪

基于模型预测mpc汽车轨迹跟踪算法。 matlab和carsim联合仿真。 支持matlab2018和carsim2019。 理论pdf源码 想让汽车在弯道里丝滑过弯?传统PID控制就像拿着遥控玩具车——方向盘打大了容易画龙,打小了又跟不上。这时候就得搬出模型预测控制(…

作者头像 李华
网站建设 2026/3/28 9:08:40

Python快速获取用户信息的完整方案

基于您之前对前后端数据交互的关注,我为您整理了一套完整的Python用户信息获取方案,涵盖多种应用场景和实现方式。 一、核心方法详解 1. Flask框架中的用户信息获取 请求上下文用户信息: from flask import Flask, request, session, gapp …

作者头像 李华
网站建设 2026/3/31 0:41:29

32、Unix系统用户数据库合并与拼写检查实践

Unix系统用户数据库合并与拼写检查实践 在Unix系统管理中,合并用户数据库以及进行拼写检查是常见的任务。下面我们详细探讨这两个方面的具体操作和相关注意事项。 用户数据库合并 在合并两个独立计算机的密码文件,以便通过NFS共享文件时,需要确保每个用户在两个系统上都有…

作者头像 李华
网站建设 2026/3/26 6:19:45

2026年SEVC SCI2区,面向空地跨域无人集群的目标引导自适应路径规划方法,深度解析+性能实测

目录 1.摘要2.路径规划模型4.算法框架5.结果展示6.参考文献7.代码获取8.算法辅导应用定制读者交流 1.摘要 空地跨域无人集群在军事侦察、灾害救援等应用中具有重要价值,但其在复杂动态环境下面临异构协同与动态避障等路径规划难题。针对上述问题,本文提…

作者头像 李华
网站建设 2026/3/29 8:14:14

39、Shell扩展特性详解

Shell扩展特性详解 在shell编程中,有许多实用的扩展特性可以提高我们的工作效率和编程灵活性。下面将详细介绍一些常见的shell扩展特性。 1. TMOUT对select语句的影响 变量 TMOUT (超时时间)可以影响 select 语句。在 select 循环之前,将 TMOUT 设置为某个秒数 …

作者头像 李华