【问题标题】:Lowpass/Bandpass filter design in MATLABMATLAB 中的低通/带通滤波器设计
【发布时间】:2012-05-17 19:24:13
【问题描述】:

对于 MATLAB 中的模拟通信系统设计,首先我需要做这两个设计:

  1. 设计一个低通滤波器[slow]=lowpassfilter(s,fcut,fs),它过滤输入信号s,截止频率为fcut,采样频率为fs,单位为赫兹。

  2. 设计一个带通滤波器[sband]=bandpassfilter(s,fcutlow,fcuthigh,fs),它过滤输入信号s,截止频率为fcutlowfcuthigh,采样频率为fs,单位为赫兹。

你能帮帮我吗?

【问题讨论】:

    标签: matlab communication lowpass-filter


    【解决方案1】:

    我发现这个问题有很多观点,但仍然没有很好的答案。

    以下代码将满足您的需求。由于没有指定过滤器类型,我使用了一个巴特沃斯过滤器来演示它。 s 是输入信号,x 是滤波后的信号。 fs 是以赫兹为单位的采样率。

    % Design and apply the lowpass filter
    order = 4;
    fcut  = 8000;
    [b,a] = butter(order,fcut/(fs/2),'low');
    x     = filter(b,a,s);
    
    
    % Design and apply the bandpass filter
    order    = 10;
    fcutlow  = 1000;
    fcuthigh = 2000;
    [b,a]    = butter(order,[fcutlow,fcuthigh]/(fs/2), 'bandpass');
    x        = filter(b,a,s);
    

    【讨论】:

      【解决方案2】:

      Matlab 有 fdatool 用于滤波器设计。 Here 是文档。您可以使用fdatool 和信号处理工具箱来完成所有这些任务。

      【讨论】:

      • 是的,我知道,但关键是我需要从其他函数的输出中获取输入,因此我没有 fcut 或 fs 的特定值。所以当我在里面写 fs 时,它给出了一个错误:S
      • 我想你应该改变你的问题的措辞。如果您以某种方式知道 fs(先验),则只需检查信号的 fft 以确定您要过滤的频带。
      猜你喜欢
      • 2021-03-08
      • 2014-07-06
      • 2015-01-03
      • 1970-01-01
      • 2016-08-20
      • 2017-09-17
      • 2016-02-13
      • 2023-04-10
      • 1970-01-01
      相关资源
      最近更新 更多