SuperAPI AI 工具集

matlab-design-digital-filter

设计与创作

查看项目

更新于 10-16 09:31

技能介绍

用途:在 MATLAB 中设计、实现并验证数字滤波器,结合 Signal Processing Toolbox 和 DSP System Toolbox,完成架构选型、代码生成与图形化/数值化验证。

适用场景:低通、高通、带通、带阻、陷波滤波器设计;噪声信号清理与干扰去除;FIR 与 IIR 架构比较;用 Filter Analyzer 对比设计方案;构建流式(实时)或离线(批处理)滤波管线;窄过渡带的多速率或 IFIR 处理。

不适用:自适应滤波(LMS、RLS)、音频专用处理(均衡、房间校正)、图像滤波(二维卷积、形态学操作)、无滤波意图的通用频谱分析。

主要能力与关键规则:写代码前先读 references/INDEX.md;代码写入 .m 文件后用 run_matlab_file 运行,不把多行代码直接放进 evaluate_matlab_code;调用前置函数前需读取 quick-ref 并在回复开头标注 Preflight;不猜测关键需求,Mode(流式/离线)或 Phase 要求未说明时应询问;涉及 Hz 必须明确 Fs,否则停止并询问,且用 designfilt(..., SampleRate=Fs) 与 freqz(d, [], Fs) 固定采样率;IIR 优先 SOS/CTF 形式。

工作流:先做信号分析(频谱、长度、干扰位置,计算 trans_pct),再澄清 Mode 与 Phase,然后进行架构选择;计算 trans_bw、trans_pct、M_max,按 trans_pct > 5%、2%–5%、< 2% 的规则决定单级或窄过渡带方案。设计阶段做可行性检查、候选设计、用 filterAnalyzer() 视觉对比、数值验证并交付规格回顾与代码。

关键函数:designfilt()、filterAnalyzer()、freqz()、grpdelay()、filtfilt()、dsp.SOSFilter、designMultirateFIR()、ifir()、cost()、kaiserord()、firpmord()。约定:始终指定 SampleRate=Fs,多滤波器对比用 filterAnalyzer(),IIR 用 SOS 形式,多面板图用 tiledlayout/nexttile。

限制:资料未提供具体的 MATLAB 版本要求、依赖安装方式、收费或许可信息、性能基准与效果数据。