📄 iir_dirfreq.m
字号:
function [A,para]=IIR_dirFreq(Hd,k)
u=0.001;N=5000;E=zeros(1,N+1);
M=length(Hd);
w=0:pi/(M-1):pi;
z1=exp(-j.*w);z2=z1.*z1;
fai=zeros(1,4*k);diff_fai=zeros(1,4*k);
E(2)=-0.5;n=3;
while(abs(E(n-1)-E(n-2))>0.001&(n<=N))
P=abs(IIR(fai,M));
A0=abs((P*Hd')/(P*P'));
E(n)=sum((A0*P-abs(Hd)).^2);
for n1=1:k;
m1=4*(n1-1);
c=2*A0*(A0.*P-abs(Hd));
diff_fai(m1+1)=c*(P.*real(z1./(1+fai(m1+1)*z1+fai(m1+2)*z2)))';
diff_fai(m1+2)=c*(P.*real(z2./(1+fai(m1+1)*z1+fai(m1+2)*z2)))';
diff_fai(m1+3)=c*(-P.*real(z1./(1+fai(m1+3)*z1+fai(m1+4)*z2)))';
diff_fai(m1+4)=c*(-P.*real(z2./(1+fai(m1+3)*z1+fai(m1+4)*z2)))';
end
fai=fai-u.*diff_fai;
n=n+1;
end
para=fai;
A=A0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -