вопросы о фильтре Matlab - PullRequest
       12

вопросы о фильтре Matlab

4 голосов
/ 08 декабря 2010

У меня есть массив данных, он находится во временной области.Каждые данные означают величину.и эти данные дискретизируются с частотой 10000 Гц.Я хочу сделать полосовой фильтр между двумя частотами f1 и f2. Я думаю, что мне нужно сделать фильтр низких частот и фильтр высоких частот.сигнал делает БПФ, затем проходит через два фильтра, а затем выполняет БПФ.Мои вопросы, есть ли простой способ сделать фильтр низких и высоких частот?Я не знаю, как получить передаточную функцию на основе двух частот отсечки.

кто-нибудь знает, как?

Спасибо

Ответы [ 3 ]

3 голосов
/ 15 декабря 2010

Опираясь на ответ Тристана, вот код Octave, который может или не может быть совместим с Matlab. Функция «сливочное масло» выводит коэффициенты передаточной функции для вас. alt text. alt text

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 голосов
/ 08 декабря 2010

Если у вас есть набор инструментов для обработки сигналов, я предлагаю вам проектировать фильтр с использованием sptool, это инструмент с графическим интерфейсом для проектирования фильтров, который также показывает вам амплитуду и фазу, и т.д. Он также может быть построен из фильтра нижних и верхних частот, как вы предлагаете, но Matlab также может предоставить вам полосовой фильтр напрямую.

Если у вас нет набора инструментов, я предлагаю вам обратиться к Руководство ученого и инженера по цифровой обработке сигналов , вся книга доступна в Интернете и содержит множество хороших примеров кода на языке Basic, который легко перевести на Matlab. например, Проектирование полосового оконного фильтра sinc .

2 голосов
/ 08 декабря 2010

В MATLAB есть инструменты, которые будут выполнять фильтрацию, поэтому вам не нужно выполнять функцию FFT-IFFT самостоятельно (что может привести к некоторым проблемам). Попробуйте использовать комбинацию butter и filter, чтобы сделать то, что вы хотите.

масло

Filter

...