声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1335|回复: 1

[编程技巧] 陈怀琛《数字信号处理教程 MATLAB释义与实现》里的问题

[复制链接]
发表于 2008-5-28 03:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
书上7.2.3节里面介绍了一个字程序amplres.m
代码:
function [A,w,type,tao]=amplres(h)
%给定FIR滤波器系数求滤波器符幅特性
%h=FIR滤波器的脉冲响应或分子系数向量
%A=滤波器符幅特性
%w=取的频率向量。在0到pi之间分成500份,501个点
%type=线性相位滤波器的类型
%tap=符幅特性的群延迟
%
N=length(h);tao=(N-1)/2;
L=floor((N-1)/2);%求滤波器阶次及符幅特性的阶次
n=1:L+1;w=[0:500]*pi/500;%去滤波器频率向量
if all(abs(h(n))-h(N-n+1)<le-10)%判断滤波器系数若为对称
    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);%判断并给出类型
else if all(abs(h(n)+h(N-n+1))<le-10)&(h(L+1)*mod(N,2)==0)%系数若为反对称
    %在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
end


调用子程序会出现:
??? Error using ==> amplres
Error using ==> le
Not enough input arguments.

abs(h(n))-h(N-n+1)<le-10 有问题?我是完整按照书上写的,高手指点
回复
分享到:

使用道具 举报

发表于 2008-5-28 07:17 | 显示全部楼层
原帖由 rr307307 于 2008-5-28 03:43 发表
书上7.2.3节里面介绍了一个字程序amplres.m
代码:
function [A,w,type,tao]=amplres(h)
%给定FIR滤波器系数求滤波器符幅特性
%h=FIR滤波器的脉冲响应或分子系数向量
%A=滤波器符幅特性
%w=取的频率向量。在0到 ...


试试把le改为1e
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-4 14:38 , Processed in 0.090941 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表