2013-12-14 2 views
3

Я пытаюсь узнать о полосовом фильтре, и я понял теорию или основную идею. Тем не менее, я пытался работать со следующим кодом, но я могу полностью его понять и сформировать его для работы, в котором я хочу.Bandpass filter matlab описание

clc; 
    close all; 
    clear all; 

    n=0:300000; 
    delay = 10000; 
    wc=.2*pi; 
    w0=.4*pi; 

    hLP=(wc/pi)*sinc((wc/pi)*(n-delay)); 
    hBP=2*cos(n*w0).*hLP; 
    [Happrox,W]=freqz(hBP,1); 
    plot(W,abs(Happrox)); 
    xlabel('frequency'); 
    ylabel('magnitude'); 
    title('Band pass Filter'); 

я получил следующий дизайн фильтра, когда я запускаю этот код

enter image description here

Я хотел ось X, чтобы продлены до 255, и я смог добиться того, что с помощью xlim. Теперь я сталкиваюсь с проблемами, связанными с изменением частотных диапазонов полосы пропускания. Вот почему я почувствовал, что мне нужно понять код. Пожалуйста, помогите мне с объяснением.

wc и w0 - значения, которые необходимо изменить для изменения полос частот, но я не могу получить точное значение требуемой частоты, например, скажем от 12 до 250. Если вы можете помочь мне с объяснением , Я чувствую, что смогу это сделать.

Заранее спасибо

ответ

2

ш переменная, что вы получили от функции freqz имеет Объединяет из радиан в образце и простирается от 0 до пи. Для того, чтобы получить частоту в Гц, необходимо обеспечить частоту дискретизации, Fs, а также количество очков, которое вы хотите, Н.

Заменить вызов freqz этих строк:

N = 200; % 200 points in frequency vector 
Fs = 100; % 100 Hz sample rate 
[Happrox,W]=freqz(hBP,1, N, Fs); 
Смежные вопросы