- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试制作 IIR 滤波器。我做了FIR滤波器,但是我觉得IIR比FIR难。
我认为 IIR 与 FIR 类似,但它让我感到困惑。
我觉得过滤器是这样的
FIR : y(n) = b0(x[n]) + ... +bM-1(x[n-M+1])
IIR : y(n) = {b0(x[n]) + ... +bM-1(x[n-M+1])} - {a1(y[n-1]) + ... +aN(y[n-N}
在这种情况下,a0 怎么样?是只有1吗?
y[n-1]..... 的部分是问题所在。我不知道怎么做。
这是我的代码。
for (n = 0; n < length; n++) {
coeffa = coeffs_A;
coeffb = coeffs_B;
inputp = &insamp[filterLength - 1 + n];
acc = 0;
bcc = 0;
for (k = 0; k < filterLength; k++) {
bcc += (*coeffb++) * (*inputp--);
}
for (k = 0; k < filterLength; k++) {
acc += (*coeffa++) * (////////);
}
output[n] = bcc-acc;
}
在这种情况下,filterLength 为 7,n 为 80
//////是我想知道的。
我想错了吗?
最佳答案
通常 IIR 滤波器是使用直接 form I 实现的或直接form II拓扑。每种形式都需要内存状态。这些内存状态将输出和输入的历史记录保存在其中。这使得 IIR 滤波器的实现变得更加简单。 gtkiostream implements a direct form II approach并且可能是有用的引用。
在解决您的问题时,我喜欢直接从输入和输出估计过滤器的方法,使用输入和输出缓冲区作为内存状态。由于系数总是对输出进行操作,因此使用输出作为缺失变量,如下所示:
acc += (*coeffa++) * output[n-k];
关于c - 如何制作 IIR 滤波器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50585322/
混响.m #define D 1000 OSStatus MusicPlayerCallback( void* inRefCon, AudioU
这与 this post 有关但它本身就是一个问题:在 40MHz 采样,我创建了一个窄带 IIR 滤波器,它的中心频率为 1MHz,带宽为 20kHz。这给出了以下系数 - Fc = 1e6 /40
我想在每个 1024 个样本的连续 block /时间帧上应用 FIR 或 IIR 滤波器(例如:低通滤波器)。 可能的应用: 实时音频处理,例如均衡器。在精确的时间,缓冲区中只有接下来的 1024
我正在尝试设计一个包含 IIR 滤波器功能的信号类。以下是我的代码: void signal::IIRFilter(vector coefA, vector coefB){ double ** tem
我实现了“IEEE 会刊”中的以下代码,N. Jeremy Kasdin(第 825 页)pdf .但我不明白这些行,因为我没有数字食谱书: /* perform the discrete Fouri
我正在尝试制作 IIR 滤波器。我做了FIR滤波器,但是我觉得IIR比FIR难。 我认为 IIR 与 FIR 类似,但它让我感到困惑。 我觉得过滤器是这样的 FIR : y(n) = b0(x[n])
对于图像处理算法,我通常使用相对较大的内核 fir 过滤器。使用简单的 IIR 滤波器进行低通滤波等是否有任何缺点?实现它们所需的资源较少,这看起来很有吸引力吗? 更新 1:我通常处理 10 或 12
我正尝试在 C 中为 FRDMKL25Z 实现 IIR 滤波器木板。我当前的代码如下所示: #include "Cpu.h" #include "Events.h" #include "ADC_1.h
我正在将当前使用 Apple 特定(加速)vDSP 函数 vDSP_deq22 的滤波器组移植到 Android(其中 Accelerate 不可用)。滤波器组是一组带通滤波器,每个带通滤波器返回各自
我有一个与 this post 直接相关的新问题- 在 Python 中构建,我有一个具有给定特性的二阶 IIR 带通滤波器 [以下代码是故意惯用的]: fs = 40e6 # 4
我是 DSP 的新手,我有一个关于信号过滤的问题。正如我在 Internet 上看到的,IIR 和 FIR 滤波器通常用于过滤信号。此外,我还看到了另一种过滤信号的方法,即:频域滤波器(如在 Aqui
我正在尝试实现 IIR 滤波器。 我试图实现以下过滤器,但 FIR : y(n) = b0(x[n]) + ... +bM-1(x[n-M+1]) IIR : y(n) = {b0(x[n]) + .
这个问题类似于https://dsp.stackexchange.com/questions/60694但我将其重新定义为 Python 实现问题,以便与我正在寻求的解决方案更加一致。 我想要实现一个
如何在我当前的 android 代码中实现 IIR 带通滤波器?我有一个 Android 应用程序可以记录音频(实际上是频率)并将其保存在 .wav 文件中。 我设法在网上找到了一个 IIR 滤波器库
您知道一些实现 IIR 滤波器的 C++ 库吗?我需要类似于 Matlab 的 filter(B,A,X) 函数的东西。虽然没有必要,但我更喜欢 IIR 直接形式 2 的实现。 最佳答案 有 Octa
我正在尝试使用 FFT 和逆 FFT (IFFT) 在 Matlab 中过滤(真实)信号。我有一个 IIR 滤波器(系数“b”和“a”)。我期待(大约?)与我简单执行此操作相同的结果: filtere
我正在尝试使用 FFT 和逆 FFT (IFFT) 在 Matlab 中过滤(真实)信号。我有一个 IIR 滤波器(系数“b”和“a”)。我期待(大约?)与我只是这样做的结果相同: filteredS
假设我们依次应用了 3 个过滤器: b, a = iirfilter(...) # or bilinear(...) or anything else producing b, a y = lfil
我正在尝试在 C# 中使用 IIR LP 滤波器。它是一个 5 阶巴特沃斯滤波器。该代码在 64 位模式下工作,但在 32 位模式下中断。调试显示,参数略有不同,输出增加到无穷大/NAN。我正在使用
给定一些数据x: from pandas_datareader.data import DataReader as dr x = np.squeeze(dr('DTWEXB', 'fred').dro
我是一名优秀的程序员,十分优秀!