📄 amplres.m
字号:
function [A,w,type,tao]=amplres(h)
%《数字信号处理教程——MATLAB释义与实现》子程序
% 给定FIR滤波器系数求滤波器符幅特性
% 电子工业出版社出版 陈怀琛编著 2004年9月
%
% [A,w,type,tao]=amplres(h)
% -------------------------------------------------------------
% h=FIR滤波器的脉冲响应或分子系数向量
% A=滤波器的符幅特性
% w=取的频率向量,在0到pi之间分成500份,501个点
% type=线性相位滤波器的类型
% tao=符幅特性的群迟延
%
N=length(h);tao=(N-1)/2; L=floor(tao); %求滤波器阶次及符幅特性的阶次
n=1:L+1;w=[0:511]*pi/512; % 取滤波器频率向量
if all(abs(h(n)-h(N-n+1))<1e-8) % 判断滤波器系数若为对称
A=2*h(n)*cos(((N+1)/2-n)'*w)-mod(N,2)*h(L+1); % 对称条件下计算A(两种类型)
% 在N=奇数时h(L+1)项存在,N为偶数时,要取消这项,故乘以mod(N,2)
type =2-mod(N,2); % 判断并给出类型
elseif all(abs(h(n)+h(N-n+1))<1e-8)&(h(L+1)*mod(N,2)<=1e-8) % 系数若为反对称
% 在N=奇数时要求h(L+1)项必须为零,在N=偶数时不要这条件,故乘以mod(N,2)。
A=2*h(n)*sin(((N+1)/2-n)'*w); % 反对称条件下计算A的公式(两种类型相同)
type =4-mod(N,2); % 判断并给出类型
else error('错误:这不是线性相位滤波器!') % 滤波器系数非对称,报告错误
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -