如何过滤信号?

时间:2019-08-12 09:23:45

标签: matlab filter

我需要通过我设计的模拟低通滤波器来过滤时域简单信号。我需要时域中的输出信号。

%LPF
order=3;

ripple = 1; %pass band ripple
f_c= 22e6;

[num1, den1] = cheby1(order, ripple, 2*pi*1.10*f_c, 'low', 's');

%Create input signal

Fs=200e6;

Ts=1/Fs;

NFFT=2^12;

Runtime=(NFFT-1)*Ts;

t=0:Ts:Runtime

a_in=1;

phase_in=0;

y_in=a_in*sin(2*pi*fin*t+phase_in);  % 4096 points

我需要4096点时域中的输出信号y_out。我需要做什么?

1 个答案:

答案 0 :(得分:2)

我认为您必须使用信号处理工具箱的filter()功能。它以滤波器系数和要滤波的信号为参数:

y = filter(b,a,x)

其中b是分子系数,a是分母,x是要滤波的信号。输出向量的大小通常与输入大小相同,因此,由于您的输入是4096个样本,因此您的输出也将是4096个样本。更多信息here

所以在您的情况下:

y_out = filter(num1, den1, y_in)