remez算法

来源:百度知道 编辑:UC知道 时间:2024/05/04 06:25:18
我的一个滤波器程序如下
clear all;
f=[0 .6 .7 1];
% 给定频率轴分点;
A=[1 1 0 0];
% 给定在这些频率分点上理想的幅频响应;
weigh=[1 10];
% 给定在这些频率分点上的加权;
b=remez(32,f,A,weigh);
% 设计出切比雪夫最佳一致逼近滤波器;
[h,w]=freqz(b,1,256,1);
h=abs(h);
h=20*log10(h);
figure(1)
stem(b,'.');grid;
figure(2)
plot(w,h);grid;
程序中调用了REMEZ 但是我不想直接调用这个REMEZ 我想把REMEZ的算法加到程序中可是总是改不好 请大哥大姐帮忙啊
REMEZ的源程序见补充
程序传不上来了 太长 其实这个程序在X:\MATLAB6p5\toolbox\signal\signal目录下名字为remez.m
X为matlab的安装盘符

其中可以把各种错误信息提示去掉 因为我有合适的参数不会出错的

那你用MATLAB打开REMEZ.M程序看看remez函数是怎么遍写出来的.不过估计很难能看明白(我没打开,因为MATLAB被我卸了),为了适应这个函数的通用性,肯定在编写过程中加了N多的参量和情况分析,而且也肯定调用了不少其他相关的函数.一般自己写的话会比较困难.
个人建议你不要加这个算法到程序中,而是看看这个函数对你设计出的滤波器有哪些限制和影响.这样在分析滤波器特性中可以分析出仿真本身对设计的影响.一般用MATLAB做仿真分析能有合适的函数不会自己写,毕竟MATLAB仿真的核心是分析,而不是编程.
我也只能帮你到这里了,我没能力分析remez函数了.看书上说用的是remez算法和切比雪夫近似来拟合期望的频率响应@@~