当前位置: 首页 > news >正文

直接打开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图形界面调参,自动生成代码抄作业不香么?不过考试时别指望能用这招。

http://www.cnnetsun.cn/news/69259.html

相关文章:

  • 大模型应用开发核心:构建高效准确的提示词指南
  • OpenAI发布GPT-5.2:是王者归来还是强弩之末?
  • HTTPS DDoS 排查 异常流量到抓包分析
  • 12、Docker与Kubernetes使用指南
  • 行为树优化全攻略(性能翻倍的4个秘密武器)
  • 直流电机双闭环调速系统仿真模型:转速外环与电流内环PI参数整定指南,无静差跟踪实现功能介绍
  • 滑膜控制下的差动制动防侧翻稳定系统设计与仿真验证:横摆力矩分配策略及其实车测试分析
  • 模型压缩技术详解:剪枝、量化与知识蒸馏,让你的大模型轻量化部署
  • Iridescent:Day23
  • Laravel 13多模态权限实现技巧(99%的开发者忽略的关键细节)
  • 测试数据自动生成方法:策略、实施与最佳实践
  • 【医疗数据安全防线】:如何用PHP构建自动备份体系
  • 【R-Python模型融合实战】:揭秘跨平台建模结果验证的5大核心步骤
  • 从田间到R控制台,方差分析如何改变传统农业决策?
  • 基于comsol的多层冻土地基冻涨模型研究:低温热流固三场耦合效应的固体力学模拟
  • 2025年最新阿勒泰地区道路矢量数据
  • 设计模式[10]——外观模式一分钟彻底说清楚
  • Temu 分销重塑跨境生态:轻资产时代的新增长法则
  • Hello World的深度演进:一个Ascend C标量算子的性能剖析之旅
  • [Python桌面开发] 本地多服务启动神器:Python + Tkinter 构建“进程批量启动与监控工具”(跨平台 GUI + 源码开放)
  • 量子算法的实现路径解析(工业级应用稀缺技术曝光)
  • 揭秘Python最被低估的8个标准库,第6个能省下你一半代码量
  • GraphQL + PHP错误处理全解析,构建高可用API的必备技能
  • 当AI接管代码:哈佛调查显示53%年轻开发者每天用AI,却59%担心被取代,这届程序员太难了!
  • 16、编程中的颜色与图形绘制及HTML基础入门
  • PHP 8.6的JIT缓存机制揭秘:5大策略提升应用执行效率300%
  • 基于微信小程序的动漫社区交流小程序的设计与实现(源码+lw+部署文档+讲解等)
  • 响应格式化踩坑实录:Symfony 8开发者必须避开的5个陷阱
  • PHP 8.6性能监控面板实战(专家级配置全公开)
  • 性能监控在DevOps中的角色