【问题标题】:matlab filter questionsmatlab过滤问题
【发布时间】:2011-05-22 00:22:57
【问题描述】:

我有一个数据数组,它在时域中。每个数据代表幅度,并且该数据以 10,000Hz 的频率进行采样。
我想在f1f2 两个频率之间做一个带通滤波器。我想我需要做一个低通滤波器和一个高通滤波器。信号进行 FFT,然后通过两个滤波器,然后进行逆 FFT。
我的问题:有没有简单的方法来做低通和高通滤波器?我不知道如何根据两个截止频率推导出传递函数。

有人知道怎么做吗?

谢谢

【问题讨论】:

  • 为了获得一个真实的、完全指定的、质量合理的滤波器,您可能还需要指定阻带衰减、通带波纹和过渡宽度。无论你做什么,不要只是将 FFT 的一些 bin 归零。

标签: matlab signal-processing


【解决方案1】:

基于 Tristan 的回答,这里有一些 Octave 代码,可能与 Matlab 兼容,也可能不兼容。黄油函数为您导出传递函数系数。 .

hz = 8000;
x = [1:1:hz*10];
t = x./hz;
pi = 3.1415;

% Create signal with 10 hz, 200 hz and 500 hz components
raw_signal = sin(10*2*pi*t)+sin(200*2*pi*t)+sin(500*2*pi*t);

% View Raw Signal Over .1 Second Window
plot(t, raw_signal)
title('Raw Signal with 10Hz, 200Hz, 500Hz Components')
xlabel('Time (Sec)')
ylabel('Amplitude')
set(gca,'XLim', [5, 5.1]);

% Create Band Pass Butterworth Filter
[S_numer, S_denom] = butter(5, [100/hz 350/hz]);
band_passed_signal = filter(S_numer, S_denom, raw_signal);

% View Band Pass Filtered Signal Over .1 Second Window
plot(t, band_passed_signal)
title('Band Pass Filtered Signal')
xlabel('Time (Sec)')
ylabel('Amplitude')
set(gca,'XLim', [5, 5.1]);

【讨论】:

    【解决方案2】:

    如果您有信号处理工具箱,我建议您使用sptool 设计您的滤波器,它是一种用于滤波器设计的 GUI 工具,还可以显示幅度和相位响应等。您不需要的是带通滤波器。它也可以按照您的建议由低通和高通滤波器构成,但 Matlab 也可以直接为您提供带通滤波器。

    如果你没有工具箱我建议你参考The Scientist and Engineer's Guide to Digital Signal Processing,整本书都可以在网上找到,并且有很多很好的Basic示例代码,很容易翻译成Matlab。例如Designing bandpass windowed sinc filter

    【讨论】:

    • 基本信号处理??为什么有人愿意这样做?
    • 显然您不会在实际应用程序中使用 Basic 代码,但正如书中所说:“学习 DSP 与使用有很大不同的要求> 数字信号处理器”。所以在这种情况下,Basic 更像是一个可以轻松翻译成任何语言的伪代码。
    • @NathanFellman:Basic 是 3 年前所有个人计算机通用的编程语言。所以它是 Fortran 之后的历史通用语,但在 C 变得更普遍之前。而且“真正的”DSP 汇编语言通常极不便携。
    【解决方案3】:

    MATLAB 具有可以进行过滤的工具,因此您无需自己进行 FFT-IFFT 操作(这可能会导致一些问题)。尝试结合使用butterfilter 来做你想做的事情。

    Butter

    Filter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      • 2012-03-16
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多