Фильтр верхних частот микрофона iPhone - PullRequest
2 голосов
/ 21 января 2010

В моем приложении я использую AVAudioRecorder для обнаружения ввода с микрофона. Однако мне нужно создать фильтр верхних частот, чтобы я мог регистрировать только высокочастотные звуки. Я изучил БПФ, но не могу понять, как это реализовать. Итак, теперь я пытаюсь обмануть БПФ с помощью фильтра верхних частот.

Любая помощь будет принята с благодарностью! Спасибо!

Ответы [ 2 ]

5 голосов
/ 21 января 2010

Взгляните на статью Википедии о высокочастотных фильтрах , особенно раздел , посвященный алгоритмической реализации одного .

Для ленивых, вот реализация псевдокода:

// Return RC high-pass filter output samples, given input samples,
// time interval dt, and time constant RC
function highpass(real[0..n] x, real dt, real RC)
    var real[0..n] y
    var real α := RC / (RC + dt)
    y[0] := x[0]
    for i from 1 to n
        y[i] := α * y[i-1] + α * (x[i] - x[i-1])
    return y
2 голосов
/ 21 января 2010

Использование БПФ было бы решением кувалды в этом случае. Простого КИХ-фильтра или БИХ-фильтра должно быть достаточно, но вам нужно сначала определить параметры конструкции фильтра, а именно: частоту среза (точка -3 дБ), пульсации в полосе пропускания, усиление в полосе затухания и заботу о том, фазовый отклик или нет.

...