📄 dir2fs.m
字号:
function [C,B,A] = dir2fs(h)% Direct form to Frequency Sampling form conversion% -------------------------------------------------% [C,B,A] = dir2fs(h)% C = Row vector containing gains for parallel sections% B = Matrix containing numerator coefficients arranged in rows% A = Matrix containing denominator coefficients arranged in rows% h = impulse response vector of an FIR filter%M = length(h);H = fft(h,M);magH = abs(H); phaH = angle(H)';% check even or odd Mif (M == 2*floor(M/2)) L = M/2-1; % M is even A1 = [1,-1,0;1,1,0]; C1 = [real(H(1)),real(H(L+2))];else L = (M-1)/2; % M is odd A1 = [1,-1,0]; C1 = [real(H(1))];endk = [1:L]';% initialize B and A arraysB = zeros(L,2); A = ones(L,3);% compute denominator coefficientsA(1:L,2) = -2*cos(2*pi*k/M); A = [A;A1];% compute numerator coefficientsB(1:L,1) = cos(phaH(2:L+1));B(1:L,2) = -cos(phaH(2:L+1)-(2*pi*k/M));% compute gain coefficientsC = [2*magH(2:L+1),C1]';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -