给定一个过滤器我想找到使得它是稳定的、因果的和最小的相位,并且它实现了
在哪里. 当然,然后将是反因果和最大相位。过滤器有复系数。
我试图在 MATLAB 中实现这一点,但我发现它比我想象的要困难。
% This is my filter x[n]. You can try with any coefficients, it doesn't matter
x = dfilt.dffir(q_k + 1/(10^(SNR_MFB/10)));
% Here I find its zeros
zeros_x = zpk(x);
% And now I identify those who are inside and outside the unit circle
zeros_min = zeros_x(abs(zeros_x) < 1);
zeros_max = zeros_x(abs(zeros_x) > 1);
% Now I wanted to build the filter g[n] using this information but don't know how
我尝试使用spectralfact(),但它不支持具有复杂系数的输入。
有谁知道如何获得系数?