Доброе время суток!
В описании к dsp.dll нет рабочего примера для функции filterFIRCreate. В архиве, который предлагается скачать с раздела "Программы" нет на неё упоминания. В описании к функции есть код для работы с функцией. При компилировании этого кода функция возвращает DSP_ERROR.
Вопрос в следующем: будет ли реализована данная функция? Если - да, то когда будет реализована и когда будет описание к ней
С уважением, free...
Функция filterFIRCreate
-
- Сообщения: 2
- Зарегистрирован: 01 дек 2010, 17:17
- Бахурин Сергей
- Администратор
- Сообщения: 1114
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Функция filterFIRCreate
Добавил описание можно почитать http://dsplib.ru/dspdll/filterFIRCreate.html. Библиотеку обновил надо перезакачать.
-
- Сообщения: 2
- Зарегистрирован: 01 дек 2010, 17:17
Re: Функция filterFIRCreate
Я извиняюсь. Но я хотел сказать следующие: описания к функции filterFIRCreate нет в файле dsp.h.
в разделе "Программы" (http://dsplib.ru/download/dspdll.php) dll не обновлена (дата изменения - 11 ноября 2010) в архиве с программой (http://dsplib.ru/download/filter.php) дата изменения - 28 ноября 2010.
Откуда мне обновить библиотеку?
С уважением, free...
в разделе "Программы" (http://dsplib.ru/download/dspdll.php) dll не обновлена (дата изменения - 11 ноября 2010) в архиве с программой (http://dsplib.ru/download/filter.php) дата изменения - 28 ноября 2010.
Откуда мне обновить библиотеку?
С уважением, free...
- Бахурин Сергей
- Администратор
- Сообщения: 1114
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Функция filterFIRCreate
перезалил. Можно скачать с раздела программы. Пример использования filterFIRCreate:
Код: Выделить всё
#include < stdio.h >
#include < stdlib.h >
#include < windows.h >
#include "dsp.h"
HMODULE hDLL;
int main(){
//загрузка dsp.dll
hDLL = LoadDSP();
if(hDLL)
printf("Load DSP.DLL...............OK\n");
else{
printf("Load DSP.DLL...............ERROR\n");
system("Pause");
return 0;
}
int Ns = 1024;
double* s = (double*)malloc(Ns*sizeof(double));
//..................
//заполняю массив s
//..................
int Nh = 24;
double* h = (double*)malloc(Nh*sizeof(double));
if(filterFIRCreate(FB_LOW,0.1,0.2,h,Nh,WIN_HAMMING)==DSP_OK)
printf("filterFIRCreate............OK\n");
else
printf("filterFIRCreate............ERROR\n");
filterFIR(s,Ns,h,Nh,Nh/2-1);
free(s);
free(h);
FreeLibrary(hDLL);
system("Pause");
return 0;
}
-
- Сообщения: 30
- Зарегистрирован: 07 дек 2010, 09:29
Re: Функция filterFIRCreate
Тут как раз назрел вопрос по поводу понимания КИХ-фильтров и использования данной функции.
Правильно ли я понимаю что в приведенном выше коде 0.1 это нормированное число к частоте Найквиста? Таким образом, если мы фильтруем сигнал с частотой Найквиста 1024 Гц, то получим частоту среза 0.1*1024 = 102.4. А если на вход подадим сигнал с частотой Найквиста 512 то получим срез уже 51.2. Получается импульсную характеристику h нельзя использовать для источников с разными частотами дискретизации чтобы получить тот же срез? Вроде бы, это очевидно, но раньше почему-то я упорно считал что можно рассчитать импульсную характеристику с заданными частотами один раз и использовать её для различных значений частоты дискретизации.
Код: Выделить всё
filterFIRCreate(FB_LOW,0.1,0.2,h,Nh,WIN_HAMMING);
- Бахурин Сергей
- Администратор
- Сообщения: 1114
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Функция filterFIRCreate
все цифровые фильтры всегда рассчитываются для нормированной частоты от 0 до 2pi рад/c или от 0 до 2 Гц. При использовании одного и тогоже фильтра для разных частот дискретизации всегда меняется физическая частота среза.