我设计了一个高通FIR滤波器,当输出为MATLAB代码时,我给出了以下内容:
function Hd = aaa
%AAA Returns a discrete-time filter object.
% MATLAB Code
% Generated by MATLAB(R) 8.3 and the Signal Processing Toolbox 6.21.
% Generated on: 13-May-2015 09:14:52
% Equiripple Highpass filter designed using the FIRPM function.
% All frequency values are normalized to 1.
Fstop = 0.1; % Stopband Frequency
Fpass = 0.18; % Passband Frequency
Dstop = 0.01; % Stopband Attenuation
Dpass = 0.057501127785; % Passband Ripple
dens = 20; % Density Factor
% Calculate the order from the parameters using FIRPMORD.
[N, Fo, Ao, W] = firpmord([Fstop, Fpass], [0 1], [Dstop, Dpass]);
% Calculate the coefficients using the FIRPM function.
b = firpm(N, Fo, Ao, W, {dens});
Hd = dfilt.dffir(b);
% [EOF]
我还使用MATLAB代码生成正弦波。
如何将此正弦波传递到滤波器以分析输出?
答案 0 :(得分:1)
filter
函数将过滤器应用于输入向量。它被重载以允许各种过滤器类型作为输入 - 例如离散时间过滤器对象,例如您设计的对象。
语法是:
y = filter(Hd,x);
其中Hd
是您在函数中设计的离散时间过滤器对象(PS:考虑为函数提供比aaa
更有意义的名称),x
是输入信号,例如你的正弦波。然后,过滤器的输出为y
。