低通滤波器matlab代码
时间: 2023-09-06 15:10:13 浏览: 78
下面是一个基本的低通滤波器的 MATLAB 代码示例:
```matlab
% 定义输入信号
fs = 1000; % 采样率
t = 0:1/fs:1-1/fs; % 时间向量
f = 5; % 信号频率
x = sin(2*pi*f*t); % 生成正弦波信号
% 定义滤波器
fc = 50; % 截止频率
[b,a] = butter(10,fc/(fs/2),'low'); % 10阶巴特沃斯低通滤波器
% 应用滤波器
y = filter(b,a,x); % 滤波后的信号
% 绘制结果
figure
subplot(2,1,1)
plot(t,x)
title('原始信号')
xlabel('时间 (s)')
ylabel('幅度')
subplot(2,1,2)
plot(t,y)
title('滤波后的信号')
xlabel('时间 (s)')
ylabel('幅度')
```
在这个示例中,我们首先定义了一个正弦波信号作为输入信号。然后,我们使用 `butter` 函数定义了一个 10 阶巴特沃斯低通滤波器,并将其截止频率设置为 50 Hz。最后,我们使用 `filter` 函数将输入信号和滤波器应用于信号,得到滤波后的输出信号 `y`。最后,我们将原始信号和滤波后的信号绘制在同一张图中以进行比较。
相关问题
matlab低通滤波器库函数代码_MATLAB低通滤波器的设计代码
MATLAB提供了许多低通滤波器设计函数,下面是一个使用`designfilt()`函数设计低通滤波器的示例代码:
```matlab
% 设计低通滤波器
Fs = 1000; % 采样频率
Fpass = 100; % 通带截止频率
Fstop = 150; % 阻带截止频率
Ap = 1; % 通带最大衰减量(dB)
Ast = 60; % 阻带最小衰减量(dB)
lpf = designfilt('lowpassfir', 'PassbandFrequency', Fpass, 'StopbandFrequency', Fstop, 'PassbandRipple', Ap, 'StopbandAttenuation', Ast, 'DesignMethod', 'equiripple', 'SampleRate', Fs);
% 绘制滤波器幅频响应曲线
freqz(lpf)
```
其中,`designfilt()`函数是用于设计滤波器的函数,`'lowpassfir'`表示设计低通FIR滤波器,`'PassbandFrequency'`和`'StopbandFrequency'`分别表示通带截止频率和阻带截止频率,`'PassbandRipple'`和`'StopbandAttenuation'`分别表示通带最大衰减量和阻带最小衰减量,`'DesignMethod'`表示使用的设计方法,这里使用了equiripple方法,`'SampleRate'`表示采样频率。
设计好滤波器后,可以使用`freqz()`函数绘制滤波器的幅频响应曲线。
理想低通滤波器matlab
以下是Matlab代码实现理想低通滤波器:
```matlab
% 定义采样频率和截止频率
Fs = 1000;
Fc = 100;
% 计算归一化截止频率
Wn = Fc / (Fs/2);
% 计算滤波器阶数
N = ceil(3.3 / Wn);
% 创建理想低通滤波器
[b, a] = butter(N, Wn, 'low');
% 绘制滤波器幅频响应
freqz(b, a);
```
在上述代码中,我们首先定义了采样频率和截止频率,然后计算出了归一化截止频率和滤波器阶数。接下来,我们使用 `butter()` 函数创建了理想低通滤波器的系数,并用 `freqz()` 函数绘制了滤波器的幅频响应。最终,我们可以通过调整参数来实现不同的理想低通滤波器。
阅读全文
相关推荐












