首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chebyshev型低通滤波器在matlab中的应用

Chebyshev型低通滤波器在matlab中的应用
EN

Stack Overflow用户
提问于 2017-08-25 23:30:37
回答 1查看 1.4K关注 0票数 1

为了设计1型Chebyshev低通滤波器,我尝试使用matlab中的设计文件,但是,我不断地收到以下错误:

使用设计文件时出错(第411行) 筛选器响应无效。

我的代码比较简单:

代码语言:javascript
复制
filt = designfilt('cheby1','FilterOrder',3,'CutoffFrequency', 20, 'PassbandRipple', 10);

filtered_signal = filter(filt, signal);

这应该做的是,创建一个切比雪夫1型滤波器,3阶,截止频率为20赫兹和通带波纹10赫兹。最后,但同样重要的是,它应该在我的信号上调用它,并带有名称信号。

在matlab中实现低通切比雪夫1型滤波器还有什么别的吗?还是我只是简单地混淆了designfilt的输入。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-25 23:53:54

关于你在这里的问题,有几个是:

  1. 'cheby1'不是designfilt的第一个参数(MATLAB,2014年)允许的字符串之一。如果键入help designfilt,它将给出允许的不同选项的列表。我看到的最接近的字符串是:'lowpassiir'。查看示例3,特别是使用带命名过滤器的参数'designmethod' (例如'cheby1')。
  2. 'PassbandRipple‘不是以Hz指定的,而是在dB中指定的。它不是一个频率范围,而是在指定的频率范围内你的纹波的期望幅度响应的规范。
  3. 在本例中使用'PassbandFrequency'而不是'CutoffFrequency'。Chebyshev滤波器有一个通带,允许在该频带内产生指定的最大纹波。在低通滤波器中,从概念上讲,它是在频率的末尾截止,但在这里,它理解将频率从0传递到您指定的截止频率。
  4. 您正在指定您的频率单位的赫兹(即没有标准化的0到1),但没有指定您的采样频率。您可以将您的频率指定为标准化单位,而不包括采样频率,否则需要包括它。

下面是一个100赫兹采样率的情况。

代码语言:javascript
复制
filt = designfilt('lowpassiir', 'FilterOrder', 3, 'PassbandFrequency', 20,...
                  'PassbandRipple', 10, 'SampleRate', 100, 'DesignMethod', 'cheby1');

您最好直接使用cheby1 (该方法)来设计滤波器系数,然后将其传递给filter。这是文档。这样,就没有那么多的选项可以混合和匹配,这些选项和引用可能有助于更早地解决任何差异。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45890561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档