Уважаемые участники форума, помогите решить следующую техническую задачу.
Существует два источника сигнала, предварительно отфильтрованные ФНЧ с частотой среза 3 мГц и оцифрованные на скорости 40 мГц разрядностью 10 бит. Необходимо отфильтровать в каждом сигнале отдельно несколько полос по 100кГц, например 800-900 кГц, 1550-1650 кГц и т.д.
Для решения задачи думаю использовать ПЛИС Altera, необходимо разобраться и использовать ПЛИС без покупки Development Kit, опыта работы с ПЛИС на данных момент не имею но готов читать и разбираться. Если вы считаете целесообразным использование других ПЛИС, пожалуйста укажите каких именно.
Для реализации цифрового фильтра думаю использовать трансверсальную схему с КИХ
Методы проектирования цифровых фильтров, М.В. Белодедов описанные на странице 26. Такие фильтры достаточно просты. Возможно стоит использовать фильтры другого типа, если так то какие.
Для трансверсального фильтра необходимо определить порядок (количество элементов задержки и сдвига) и определить импульсную характеристику (множители). Пожалуйста, помогите мне расчитать импульсную характеристику, я пробовал создать программу по формуле (1.4) на странице 30, но результат работы моей программы не сходится с примером на рисунке 8. Ниже привожу листинг своей программы:
Цитата
#include<iostream.h>
#include<math.h>
double H_of_F(double w);
void main()
{
double delta;
cout<<"\n Delta >> ";
cin>>delta;
int n;
cout<<"\n N >> ";
cin>>n;
//integration
double sum = 0.0;
double h = 0.01,p1 = 0.0, p2 = 0.0, pos = 0.0;
for(pos=0;pos<(3.14/delta)

{
p1 = H_of_F(pos)*cos(pos*n*delta);
p2 = H_of_F(pos+h)*cos((pos+h)*n*delta);
sum = sum + (delta/3.14)*(h*(p1+p2)/2);
pos = pos+h;
}
cout<<"Out >> "<<sum;
}
double H_of_F(double w)
{
double F = w/2*3.14;
//Description of frequency characteristic
if(fabs(F)<=1){return 0.5+F/2;}else{return 0;}
}
... возможно где-то я допустил ошибку. Существуют ли готовые проги для расчета множителей, может быть для других фильтров (если они лучше) ? Только желательно именно проги, а не MatCAD. Как мне определить порядок фильтра? Сколько элементов в ПЛИС займет такой фильтр при n=80, например?
В плане ПЛИС думаю использовать семейство MAXII, а если не будут влазить все фильтры то CyClone.