Matlab 音频低通滤波

用仿真生成的 transfer function,再高频部分精确度比较糟糕,所以希望只保留一定频率以下的部分,需要设计一个低通滤波器。这里介绍最为直接的办法,使用 matlab 里的 fir1 函数设计滤波器,并用 fftfilt 进行滤波。

1
2
3
4
b = fir1(n,fcut/(Fs/2));    % 第一个参数n是fir阶数,对应滤波器在时域的长度。
% 第二个参数是相对截止频率。
% 音频采样率Fs,对应的最高频率就是Fs/2,fcut是实际的截止频率。
y = fftfilt(b,x) % 假设x是原始信号,用fftfilt对x进行滤波。

https://www.mathworks.com/help/signal/ref/fir1.html
https://www.mathworks.com/help/signal/ref/fftfilt.html

matlab中实际应用代码