声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 763|回复: 1

[综合讨论] 滤波器优化算法里的一个随机数产生的问题

[复制链接]
发表于 2007-12-26 03:38 | 显示全部楼层 |阅读模式

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

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

x
我现在在做一个FIR滤波器的系数量化后再进行优化的大作业,要求我们用local search算法进行优化,优化的对象是滤波器的离散冲击响应

我现在得到的冲击响应的结果是a =

    0.3842
    0.2977
    0.1064
   -0.0480
   -0.0791
   -0.0171
    0.0421
    0.0403
   -0.0033
   -0.0329
   -0.0251

再对其的小数点后位数进行量化后,我想用某种方法产生一个随机数池,然后每次迭代从里头随即选择length(a)个数代入一个事先写好的误差函数进行误差计算,如果误差小于前一次迭代的结果就将其接受为新的冲击响应.

现在的问题就是如何产生这个随机数池,我现在用rand函数来产生,结果是所有1000次迭代没产生一个被接受的冲击响应.

请各位大大指导.以下是我的code:
ai=rounding(a,7);%自己写的量化函数,小数点后给7个bits
Eq =ai.'*R*ai-2*p.'*ai+c;%滤波器的design error的函数,判定是否接受一个迭代结果就用这个函数
numberTrials=1000;%迭代次数
for j=1:numberTrials
%Propose a new set of ai as a trial set
newai=                         %就是这句不知道用什么好
newai=rounding(newai,7);
newEq=newai'*R*newai-2*p'*newai+c;
if newEq<Eq
ai=newai;
Eq=newEq;
end
end

请大家给点启发,谢谢了
回复
分享到:

使用道具 举报

 楼主| 发表于 2007-12-26 03:42 | 显示全部楼层
再补充一点:

这个算法写出来只是为了作为和退火算法的一个比较才写的,所以并不要求有很高的效率和很好的效果,其实是不怎么合理的一个算法,但是就是不知道这个local search problem中的备选参数组怎么产生比较好.请熟悉这类问题的大大多指教,谢谢了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-23 17:13 , Processed in 0.054756 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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