cic滤波器matlab
时间: 2023-07-13 22:07:52 浏览: 134
基于MATLAB和FPGA的CIC滤波器的设计
5星 · 资源好评率100%
CIC滤波器是一种数字滤波器,它可以有效地减小信号带宽,同时保持信号的动态范围。在MATLAB中,可以使用以下代码实现CIC滤波器:
```matlab
% 设置CIC滤波器参数
R = 4; % 采样率变换比例
M = 1; % 不变延迟因子
N = 2; % 不变增益因子
L = 4; % 不变滤波器阶数
% 创建CIC滤波器对象
cic = dsp.CICDecimator(R, M, N, L);
% 生成测试信号
Fs = 1000; % 采样率
t = 0:1/Fs:1-1/Fs; % 时间序列
x = sin(2*pi*50*t)+sin(2*pi*120*t); % 生成多频正弦波信号
% 对信号进行CIC滤波
y = cic(x');
% 绘制原始信号和CIC滤波后的信号的频谱图
figure;
subplot(2,1,1);
plot(t,x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Original Signal');
subplot(2,1,2);
freqz(y);
title('CIC Filtered Signal');
```
在上述代码中,首先设置了CIC滤波器的参数,然后创建了CIC滤波器对象。接着生成了一个包含两个正弦波的测试信号,并用CIC滤波器对其进行滤波。最后绘制了原始信号和CIC滤波后的信号的频谱图。
阅读全文