dir2fs.m
来自「原名:数字信号处理基础及MATLAB实现,解压缩密码:lfjk2002@163.」· M 代码 · 共 23 行
M
23 行
function [C,B,A]=dir2fs(h)
%用传输函数求频率取样型结构的系数
%h为FIR滤波器的脉冲响应
%C为包含各并联部分增益的行向量;B为按行排列的分子矩阵;A为按行排列的分母矩阵
M=length(h);
H=fft(h,M); %h的FFT
magH=abs(H);phaH=angle(H)'; %H的幅度与相位
%检查M的奇偶性
if (M==2*floor(M/2))
L=M/2-1; %M为偶数
A1=[1,-1,0;1,1,0];
C1=[real(H(1)),real(H(L+2))];
else
L=(M-1)/2; %M为奇数
A1=[1,-1,0];
C1=[real(H(1))];
end
k=[1:L]';
B=zeros(L,2);A=ones(L,2); %B与A的初始化
%A(1:L,2)=-2*cos(2*pi*k/M);A=[A;A1];%计算分母系数
B(1:L,1)=cos(phaH(2:L+1)); %计算分子系数
B(1:L,2)=-cos(phaH(2:L+1)-(2*pi*k/M));
C=[2*magH(2:L+1),C1]';
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?