matlab滤波器滤不掉,带通滤波器无法在matlab中过滤不需要的频率

博主在尝试使用MATLAB设计一个Butterworth带通滤波器来去除信号中的特定频率噪声,但发现滤波器无法有效滤掉不需要的频率成分。通过对滤波器设计和信号处理过程的展示,博主询问了可能存在的问题并提供了完整的MATLAB代码。
摘要由CSDN通过智能技术生成

我正在制作一个带通滤波器,我根据正弦曲线创建了一些带有不需要的频率的信号:

Fs = 8e3; % Sampling Rate

fn = Fs/2; % Nyquist frequency

L = 1e3; % Length of signal

T = 1/Fs; % Sampling period

t = T*linspace(0,L,Fs); % Time domain

% Frequencies in Hz

f1 = 1500;

f2 = 700;

f3 = 2500;

f4 = 3500;

% Signal

x = 6*sin(2*pi*f1*t);

% Noise

noise = 3*sin(2*pi*f2*t)...

+ 2*sin(2*pi*f3*t)...

+ 1*sin(2*pi*f4*t);

x_noise = x + noise;

然后我创建一个Butterworth带通滤波器:

[b,a] = butter(10,[1000 2000]/fn,'bandpass');

带通响应(带freqz)的时间和频率空间信号如下所示:

我会从这里想出来,干脆做

xf = filter(b,a,x_noise);

我在这做错了什么?

这是完整的代码:

clear all

Fs = 8e3; % Sampling Rate

fn = Fs/2; % N

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值