cic 的matlab实现
时间: 2023-10-17 15:06:34 浏览: 112
FILTER-BANK_15.zip_cic matlab_fractional fourier
CIC(Cascaded Integrator-Comb)滤波器是一种常用的数字滤波器,用于信号的抽取和降采样。在MATLAB中,可以使用`cicdecim`函数来实现CIC滤波器的设计和信号的抽取。
下面是一个使用MATLAB实现CIC滤波器的示例代码:
```MATLAB
% 参数设置
R = 8; % 抽取率
M = 1; % 增益因子
N = 2; % 阶数
Fs = 1000; % 采样率
% 设计CIC滤波器
F = fdesign.decimator(R, 'cic', 'PassbandFrequency', Fs/2, 'StopbandFrequency', Fs/2/R, 'StopbandAttenuation', 60);
Hd = design(F, 'SystemObject', true);
% 生成测试信号
t = 0:1/Fs:1;
x = sin(2*pi*100*t) + sin(2*pi*200*t) + sin(2*pi*300*t);
% 抽取信号
y = Hd(x);
% 绘制结果
figure
subplot(2,1,1)
plot(t, x)
title('原始信号')
xlabel('时间 (s)')
ylabel('幅值')
subplot(2,1,2)
plot(t(1:R:end), y)
title('抽取信号')
xlabel('时间 (s)')
ylabel('幅值')
```
阅读全文