Questions tagged «filter-design»

拟合器设计是设计过滤器的过程。

6
检测音频包络开始和停止位置的最简单方法
以下是代表某人讲话记录的信号。我想基于此创建一系列较小的音频信号。想法是检测“重要”声音的开始和结束时间,并将其用作标记,以制作新的音频片段。换句话说,我想将静音用作指示音频“块”何时开始或停止的指标,并以此为基础创建新的音频缓冲区。 例如,如果某人记录自己说 Hi [some silence] My name is Bob [some silence] How are you? 那么我想从中制作三个音频片段。一个说Hi,一个说My name is Bob,一个说How are you?。 我最初的想法是通过音频缓冲区不断检查是否存在低振幅区域。也许我可以通过获取前十个样本来进行此操作,取平均值,如果结果很低,则将其标记为无声。我将通过检查接下来的十个样本来继续处理缓冲区。通过这种方式递增,我可以检测到信封的开始和停止位置。 如果有人对好的,简单的方法有任何建议,那就太好了。就我的目的而言,解决方案可能是非常基本的。 我不是DSP的专业人士,但了解一些基本概念。另外,我将以编程方式进行此操作,因此最好讨论算法和数字样本。 感谢您的所有帮助! 编辑1 到目前为止反应良好!只是想澄清一下,这不是实时音频,我将自己用C或Objective-C编写算法,因此使用库的任何解决方案都不是真正的选择。

4
最小相位系统的真正含义是什么?
最小相位系统的真正含义是什么?阅读Wikipedia文章和Oppenheim会有所帮助,因为我们了解到,对于LTI系统,最小相位意味着逆是因果关系和稳定的。(这意味着零和极在单位圆内),但是“相位”和“最小”与它有什么关系?我们可以通过某种方式查看DFT的相位响应来告诉系统最小相位吗?

2
滤波器阶数与抽头数对系数的关系
我正在慢慢学习DSP,并试图将某些术语笼罩在脑海中: 问题1:假设我有以下滤波器差分方程: y[n]=2x[n]+4x[n−2]+6x[n−3]+8x[n−4]y[n]=2x[n]+4x[n−2]+6x[n−3]+8x[n−4]y[n] = 2 x[n] + 4 x[n-2] + 6 x[n-3] + 8 x[n-4] 右侧有4个系数。“抽头数”也是4吗?“过滤器命令”也是4吗? 问题2:我正在尝试使用MATLAB fir1(n, Wn)函数。如果我想创建一个10抽头的滤波器,我会设置吗?n=10n=10n=10 问题3:假设我有以下递归(大概是IIR)滤波器差分方程: y[n]+2y[n−1]=2x[n]+4x[n−2]+6x[n−3]+8x[n−4]y[n]+2y[n−1]=2x[n]+4x[n−2]+6x[n−3]+8x[n−4]y[n] + 2 y[n-1] = 2 x[n] + 4 x[n-2] + 6 x[n-3] + 8 x[n-4] 由于系数的数量在左侧和右侧不同,我该如何确定“抽头数”和“滤波器阶数”? 问题4:以下逻辑if-and-if-if语句是否正确? 过滤器是递归的 ⟺⟺\iff 过滤器是IIR。 过滤器是非递归的 ⟺⟺\iff 过滤器是FIR。

5
移动平均滤波器(FIR滤波器)的最佳一阶IIR(AR滤波器)近似值是多少?
假定以下一阶IIR滤波器: y[n]=αx[n]+(1−α)y[n−1]y[n]=αx[n]+(1−α)y[n−1] y[n] = \alpha x[n] + (1 - \alpha) y[n - 1] 我如何选择参数 st IIR尽可能接近FIR,FIR是最后样本的算术平均值:αα \alpha kk k z[n]=1kx[n]+1kx[n−1]+…+1kx[n−k+1]z[n]=1kx[n]+1kx[n−1]+…+1kx[n−k+1] z[n] = \frac{1}{k}x[n] + \frac{1}{k}x[n-1] + \ldots + \frac{1}{k}x[n-k+1] 其中,表示IIR的输入可能比,但我想对最后输入的平均值进行最佳近似。n∈[k,∞)n∈[k,∞) n \in [k, \infty) kk k kk k 我知道IIR具有无限的脉冲响应,因此我正在寻找最佳近似值。无论是还是成本函数的分析解决方案,我都很高兴。L2L2 {L}_{2} L1L1 {L}_{1} 仅给出一阶IIR,如何解决此优化问题。 谢谢。

3
FIR滤波器设计:Window vs Parks McClellan和最小二乘
在低通滤波器的FIR滤波器设计中,使用窗方法相对于Parks-McClellan(此处进一步缩写为PMcC)或最小二乘算法有什么优势吗?以当今的计算能力为前提,算法本身的复杂性不是一个因素。 这个问题不是在将PMcC与最小二乘进行比较,而是特别是是否有任何理由使用任何窗口FIR设计技术来代替那些算法,还是窗口技术来过滤设计而被这些算法所淘汰并被归于教学目的? 下面是一个比较,在该比较中,我使用相同数量的水龙头将汉明窗与我偏爱的最小二乘设计方法进行了比较。我以最小二乘方法加宽了通带,使其与汉明窗的通带紧密匹配,在这种情况下,很明显,最小二乘的性能优于(提供更大的阻带抑制性能)。我还没有在所有窗口上执行此操作,这使我想到了一个问题,即您是否可以胜过PMcC和最小二乘,或者是否还有其他使用FIR低通滤波器的应用,而该方法更适合使用开窗方法?


4
FIR滤波器需要多少抽头?
我正在设计一套FIR滤波器,以实现一个低通滤波器。我还试图减少通过滤波器的信号延迟,因此我想知道我可以使用的最小抽头数量是多少。 我知道更多的抽头可以导致更陡峭的频率截止和更好的阻带抑制等。但是,我感兴趣的是更基本的-如果我想在表示这是否意味着我至少需要100次抽头才能衰减低频信号?还是我可以用更少的水龙头逃脱,如果可以,那么理论上的下限有没有?Fs100fs100\frac{f_s}{100}

3
Windows最初是如何构想的?
我知道窗户的常见类型(Hamming,Hanning,Kaiser,Tukey等)。但是,尽管有许多书描述了它们-几乎没有人告诉我它们的确切来源。 汉明窗到底有什么神圣之处?那汉宁呢?我知道它们全都在主瓣宽度与旁瓣衰减之比上发挥作用,但是它们是如何精确推导的呢? 我提出这个问题的动机是因为我试图弄清楚一个人是否可以设计自己的窗户,这些窗户还可以发挥主瓣宽度和旁瓣能量。

3
级联双二阶部分以实现高阶滤波器的工作原理?
我正在尝试实现8阶IIR滤波器,并且我阅读的每个应用笔记和教科书都说,最好将2阶以上的任何滤波器实现为二阶部分。我tf2sos在MATLAB中使用了二阶部分的系数,这与我预期的4个二阶部分的6x4系数有关。在实施为SOS之前,八阶滤波器需要存储7个先前的采样值(以及输出值)。现在,当实现为二阶部分时,流程如何从输入到输出工作,我是否仅需要存储2个先前的样本值?还是第一个滤波器的输出馈x_in入第二个滤波器,依此类推?
20 filters  filter-design  infinite-impulse-response  biquad  audio  image-processing  distance-metrics  algorithms  interpolation  audio  hardware  performance  sampling  computer-vision  dsp-core  music  frequency-spectrum  matlab  power-spectral-density  filter-design  ica  source-separation  fourier-transform  fourier-transform  sampling  bandpass  audio  algorithms  edge-detection  filters  computer-vision  stereo-vision  filters  finite-impulse-response  infinite-impulse-response  image-processing  blur  impulse-response  state-space  linear-systems  dft  floating-point  software-implementation  oscillator  matched-filter  digital-communications  digital-communications  deconvolution  continuous-signals  discrete-signals  transfer-function  image-processing  computer-vision  3d 

7
在哪里可以获得Parks-McClellan最佳FIR滤波器设计算法的开源实现?
背景:通常,我在执行某种信号处理任务,需要一个唯一的滤波器。通常在这一点上,我进入MATLAB并使用生成一个新的唯一过滤器。MATLAB 函数实现了该Parks-McClellan算法。现在,我有了一个过滤器,并将该过滤器放入一个硬编码的数组中。但是,这里的问题是我现在有一个仅适用于一种情况的硬编码过滤器。˚F 我- [R p 米()firpm()\tt firpm()firpm() 问题:我现在可以解决信号处理问题,但仅适用于非常特殊的单采样率或特殊情况。 目标:我希望能够调用˚F 我- [R p 米()firpm()\tt firpm()从C代码或其他某种语言并使我的信号处理代码更通用。我找不到的开源实现firpm()! 在哪里可以获得Parks-McClellan最佳FIR滤波器设计算法(在MATLAB中又称为开源实现?˚F 我- [R p 米()firpm()\tt firpm() PS我知道我可以使用开窗或其他方式设计不同的过滤器...请在评论中随意提及。但是,这个问题的重点不是要问“还有什么其他的滤波器设计技术?” 关键是找到非常有用的开源实现˚F 我- [R p 米()firpm()\tt firpm() ...或类似的东西。 PPS这个问题的目标之一是通过首先查看代码来学习Parks-McClellan算法的工作原理,然后计划阅读一些背景知识。

3
设计信号滤波器的好教科书
从几个月前开始,我就开始积极参与动力系统的控制领域。 在大多数情况下,为给定的动态系统设计控制器将需要采用数字信号处理技术,尤其是在信号滤波器领域。 由于我没有控制工程专业背景,所以我想知道你们中的任何人是否可以向我提供有关声音信号教科书的建议,这些教科书涉及信号滤波器的某些细节。 理想情况下,教科书应包括: 介绍DSP领域最常见的滤波器; 解释其在频域和时域的主要特征; 它们通常在哪些情况下使用(角色或过滤器功能)。 尽管是一个幼稚的问题,但我希望您可以建议一些教科书。

6
通过在参数曲线上分布极点和零点来进行滤波器设计
一个NNN阶巴特沃斯低通滤波器的截止频率的ωcωc\omega_c可以通过分发被设计NNN相对于参数均匀磁极0&lt;α&lt;10&lt;α&lt;10 < \alpha <1上的s平面参数曲线f(α)=ωcei(π/2+πα)f(α)=ωcei(π/2+πα)f(\alpha) = \omega_c e^{i(\pi/2+\pi\alpha)},这是一个半圆: 图1. 6阶巴特沃兹滤波器的极点(CC BY-SA 3.0 Fcorthay) 值得注意的是,相同的参数曲线可用于任何给出非归一化传递函数的滤波器度NNN: H(s)=∏k=1N1s−f(2k−12N),(1)(1)H(s)=∏k=1N1s−f(2k−12N),H(s)=\prod_{k=1}^N\frac{1}{s-f\left(\frac{2k-1}{2N}\right)},\tag{1} 并且所得的过滤器始终是Butterworth过滤器。也就是说,没有其他具有相同极点和零点数量的滤波器在频率ω=0ω=0\omega = 0和,幅度频率响应的消失导数更高ω=∞ω=∞\omega = \infty。的一组具有相同的截止频率巴特沃斯滤波器的ωcωc\omega_c形成巴特沃斯的一个子集来过滤该参数曲线f(α)f(α)f(\alpha)是唯一的。子集是无限的,因为NNN没有上限。 更一般地,除非它们源自参数曲线,否则不对无穷大的极点和零点进行计数,任何具有NNpNNpNN_p极点和NNzNNzNN_z零点,NNN个整数和Nz/NpNz/NpN_z/N_p个整数的非负分数的滤波器都具有未归一化的传递函数形式: H(s)=∏NNzk=1(s−fz(2k−12NNz))∏NNpk=1(s−fp(2k−12NNp)),(2)(2)H(s)=∏k=1NNz(s−fz(2k−12NNz))∏k=1NNp(s−fp(2k−12NNp)),H(s)=\frac{\prod_{k=1}^{NN_z}\left(s-f_z\left(\frac{2k-1}{2NN_z}\right)\right)}{\prod_{k=1}^{NN_p}\left(s-f_p\left(\frac{2k-1}{2NN_p}\right)\right)},\tag{2} 其中fp(α)fp(α)f_p(\alpha)和fz(α)fz(α)f_z(\alpha)是参数曲线,可以描述极点中极点和零点的分布N→∞N→∞N\to\infty。 问题1:除了由最佳准则定义的Butterworth以外,还有哪些其他类型的滤波器具有无限的子集,每个子​​集分别由分数Nz/NpNz/NpN_z/N_p和每方程式的一对参数曲线fp(α)fp(α)f_p(\alpha)和fz(α)fz(α)f_z(\alpha)。2,滤波器仅相差NNN?类型I Chebyshev过滤器,是的;通过它们,极点位于参数角为的椭圆的一半上αα\alpha。Butterworth和I型和II型Chebyshev滤波器都是椭圆滤波器的特例。需要明确的是,“无限子集”并不是指无限数量的子集,而是无限大小的子集。 问题2:非Butterworth-非Chebyshev椭圆滤波器是否具有这样的无限子集? 问题3:难道每个椭圆滤波器都是这样的无限子集吗? 如果所有椭圆滤波器的无穷集是椭圆滤波器的互斥和穷举无穷子集的并集,则每个子集由用于放置极点的单个参数曲线和用于放置零的单个参数曲线以及不可逆部分的数量定义零到极点,然后可以通过优化参数曲线而不是针对任何特定顺序的滤波器来进行数值优化以获得椭圆滤波器。最优曲线可以重复用于多个滤波器阶数,从而保持最优性。上面的“ if”是为什么我问问题2和3。问题1是关于将方法扩展到其他最优标准的。 椭圆滤波器的零极点图肯定看起来像有一些基本曲线: 图2. s平面上的椭圆低通滤波器的对数幅度。白点是极点,黑点是零。 一个线索是每等式。如图1所示,多个滤波器之间必须共享某些值,αα\alpha因此某些极点和零位置必须共享: 图5.通过曲线参数αα\alpha获得的不同滤光度NNN。请注意,对于几个滤波器阶数,我们有例如α=0.5α=0.5\alpha = 0.5或α=0.25α=0.25\alpha = 0.25和α=0.75.α=0.75.\alpha = 0.75. 特别是,对于具有NNN极点或零个的滤波器,它们也都出现在具有3nN3nN3nN相同的滤波器中,其中nnn是任何正整数。 根据用户A_A的要求,展示了极其干燥的幽默,我看了一下Bernoulli的切线作为s平面参数曲线的示例: 图4.伯努利刑法 下面的参数曲线给出了伯努利双引理线的左半部分,参数0&lt;a&lt;10&lt;a&lt;10 < a < 1,并且在处开始和结束s=0s=0s=0: f(α)=−2–√sin(πα)cos2(πα)+1+i2–√sin(πα)cos(πα)cos2(πα)+1f(α)=−2sin⁡(πα)cos2⁡(πα)+1+i2sin⁡(πα)cos⁡(πα)cos2⁡(πα)+1f(\alpha) = -\frac{\sqrt{2}\sin(\pi\alpha)}{\cos^2(\pi\alpha) …

3
线性相位FIR滤波器4种
我知道有4种具有线性相位的FIR滤波器,即恒定的群延迟:(M =脉冲响应的长度) 脉冲响应对称,M =奇数 曝光 分别 对称,M =偶数 曝光 分别 反对称的,M =奇数 曝光 分别 反对称,M =偶数 每个都有其特点。具有线性相位设计的FIR滤波器最常使用这些类型中的哪一种?为什么?:)

9
为什么我们在时域中使用窗口而不是FFT修改频谱和进行逆FFT
我以为DSP可以通过对信号的一部分进行FFT来完成,修改FFT产生的样本(因为它们代表了我们信号的频谱+噪声),并去除了任何不想要的信号,然后进行逆FFT来获取时间滤波信号的域表示(噪声已被移除)。但是,此操作尚未完成,而是使用窗口函数在时域中完成所有工作。为什么? 如果我们在时域中乘以窗函数,而不是在频域中将窗函数的频率响应与信号频谱进行卷积,那该如何计算呢?我的意思是,如果我们只是通过将信号乘以滤波器的频率响应来完成频域中的所有工作,那就像滤波对吗?但是在这里,我们使用时域来完成时域中的所有工作。 -&gt;让我们看看我的困惑来自何处。对于模拟滤波器,例如低通滤波器,我们具有类似频率响应的脉冲。当我们对信号进行滤波时,我们实际上是将信号的频谱乘以类似于滤波器的频率响应的脉冲。这将使信号中的所有频率都超过一个截止值而降至0。这就是低通滤波器的工作原理。为什么不对数字滤波器也一样?

5
如何在Python中为采样信号编写低通滤波器?
我有一些信号每1 ns(1e-9 sec)采样一次,并且有1e4点。我需要从该信号中滤除高频。假设我需要过滤高于10 MHz的频率。我希望对于低于截止频率的频率,信号将保持不变。这意味着对于低于截止频率的频率,滤波器的增益将为1。我希望能够指定过滤器顺序。我的意思是,一阶滤波器在截止频率后具有20 db / dec的斜率(功率下降),二阶滤波器在截止频率后具有40 db / dec的斜率,依此类推。代码的高性能很重要。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.