MATLAB编写函数实现序列低通滤波
时间: 2024-02-10 15:10:58 浏览: 123
matlab实现歌曲滤波gui
好的,我可以为您编写一个MATLAB函数来实现序列低通滤波。以下是代码示例:
```matlab
function y = lowpassfilter(x, fc, fs)
% x为输入序列,fc为截止频率,fs为采样频率
% 输出y为低通滤波后的序列
% 计算截止频率对应的数字频率
wc = 2*pi*fc/fs;
% 计算滤波器系数
N = 20; % 滤波器阶数
h = sin(wc*(0:N))./(pi*(0:N)); % 理想低通滤波器的冲激响应
h((N+1)/2) = wc/pi; % 窗函数中心点
w = hamming(N+1)'; % 窗函数
h = h.*w; % 加窗
% 序列低通滤波
y = conv(x, h, 'same');
end
```
使用该函数,您只需要将需要滤波的序列作为输入参数x,截止频率fc以及采样频率fs即可得到低通滤波后的序列y。例如:
```matlab
x = randn(1,1000); % 随机生成一个长度为1000的序列
fc = 0.1; % 设定截止频率为0.1Hz
fs = 10; % 设定采样频率为10Hz
y = lowpassfilter(x, fc, fs); % 序列低通滤波
```
希望能够帮助到您!
阅读全文