EETOP 创芯网论坛 (原名:电子顶级开发网)

便捷登录,只需一步

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2055|回复: 2

[求助] matlab下仿真CIC抽取滤波器

[复制链接]
发表于 2016-10-19 18:13:02 | 显示全部楼层 |阅读模式

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

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 oceanwangchao 于 2016-10-19 18:17 编辑

我用脚本建立了一个CIC抽取滤波器的模型,3级积分器级联后,进行4倍降采样,然后级联3级差分器,输入一个正弦波激励,发现第三级积分器输出的信号波形是一条斜上升的直线,已经不收敛了,请大神指点一下,每一级数据累加的过程中还有别的处理步骤吗?以下是我的脚本代码:
close all
clc
clear all
% x_in=[1000,zeros(1,5000)];
% I=10;
n=0:1:16383;
w=2*pi*(1/32);
x_in=0.5*sin(n*w);
D=4;
% figure(1)
% plot(n,x);
% y=fltcic_dec(x,8);
% figure(2)
% plot(y);
%%%%%%%%%%%%%%%%积分部分第一级%%%%%%%%%%%%%%%%%
for ii=1:1:length(x_in)
    if(ii==1)
        int1(1)=x_in(1);
    else
        int1(ii)=x_in(ii)+int1(ii-1);
    end
end
%%%%%%%%%%%%%%%%积分部分第二级%%%%%%%%%%%%%%%%%
for jj=1:1:length(int1)
    if(jj==1)
        int2(1)=int1(1);
    else
        int2(jj)=int1(jj)+int2(jj-1);
    end
end
%%%%%%%%%%%%%%%%积分部分第三级%%%%%%%%%%%%%%%%%
for kk=1:1:length(int2)
    if(kk==1)
        int3(1)=int2(1);
    else
        int3(kk)=int2(kk)+int3(kk-1);
    end
end
%%%%%%%%%%%%%%%%下采样部分%%%%%%%%%%%%%%%%%
% d3_us=[d3_temp;zeros(I-1,length(d3_temp))];
% % d3_us=repmat(d3_temp,I,1);
% int0=d3_us(';
int3_ds=downsample(int3,D);
%%%%%%%%%%%%%%%%梳状部分第一级%%%%%%%%%%%%%%%%%
x1_temp=[int3_ds,0];
ff1_dly=[0,int3_ds];
d1_temp=x1_temp-ff1_dly;
%%%%%%%%%%%%%%%%梳状部分第二级%%%%%%%%%%%%%%%%%
x2_temp=[d1_temp,0];
ff2_dly=[0,d1_temp];
d2_temp=x2_temp-ff2_dly;
%%%%%%%%%%%%%%%%梳状部分第三级%%%%%%%%%%%%%%%%%
x3_temp=[d2_temp,0];
ff3_dly=[0,d2_temp];
d3_temp=x3_temp-ff3_dly;

y_out=d3_temp;
发表于 2016-10-27 16:22:54 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

发表于 2019-1-21 14:40:07 | 显示全部楼层
好像就是这样的诶
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询 |  EETOP 创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2020-9-26 22:42 , Processed in 0.590472 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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