A=a+A;
}
y[n]=B-A;
return y[n];
}
WINAPI Thread_filter(LPVOID) // отдельный поток для фильтрации сигнала
{
short OS(short x[],int n, short m1[],short m2[]); // определение функции расчета выходного
//сигнала с фильтра 2-го порядка
short s,s_1; //определение переменных для подсчета временного интервала фильтрации
s = GetTickCount(); // получение значения счетчика времени
for(int n=0;n<N;n++) // фильтрация входного сигнала
{
exit1[n]=OS(x,n,X1,Y1);
exit2[n]=OS(exit1,n,X2,Y2);
exit3[n]=OS(exit2,n,X3,Y3);
exit4[n]=OS(exit3,n,X4,Y4);
exit5[n]=OS(exit4,n,X5,Y5);
exit6[n]=OS(exit5,n,X6,Y6);
exit7[n]=OS(exit6,n,X7,Y7);
exit8[n]=OS(exit7,n,X8,Y8);
}
s_1 = GetTickCount() - s; // вычисление времени фильтрации входного сигнала в миллисекундах
cout<<endl;
cout<<"N="<<N;
cout<<endl;
cout<<"General time to filtering : ";
cout<<s_1<<" ms"<<endl;
cout<<"Time to filtering ones sample: ";
cout<<(s_1*1000)/N<<"mcs"<<endl;
return 0;
}
void main()
{
unsigned long ThreadId; // определение идентификатора потока
for(int j=0;j<N;j++)
{
x[j]=2*cos(2*pi*12000*Td*j)+cos(2*pi*9500*Td*j);// расчет гармонического входного сигнала
}
CreateThread(NULL,0,Thread_filter,x,0,&ThreadId); // создание и запуск потока для начала
//фильтрации сигнала
getch();
}
Для анализа быстродействия вычисления выходного сигнала используется функция API GetTickCount(), которая возвращает количество миллисекунд, прошедших с начала работы. Перед циклом вычисления выходного сигнала переменной s присваивается значение GetTickCount(), а по завершению цикла еще раз вызывается функция GetTickCount() и по разности между ее значением и значением переменной s определяется время вычисления цикла.
Этот метод дает только приблизительную оценку времени вычисления цикла. Эта оценка зависит от таких факторов как конфигурация компьютера и занятость системных ресурсов компьютера, на котором выполняется программа. Например, на компьютере с процессором Pentium 4, 2.41 ГГц, 512 Мб ОЗУ можно вычислить время выполнения N отсчетов и рассчитать время обработки одного отсчета. Оно в режиме реального времени будет равно отношению времени обработки всех отсчетов(t) к количеству отсчетов N. Т.е. Т=t/N. Будем варьировать число отсчетов N и пронаблюдаем, что произойдет со временем t и T.
Результаты:
N |
t |
T |
2000 |
70 мс |
35 мкс |
5000 |
172 мс |
34.4 мкс |
10000 |
367 мс |
36.7 мкс |
20000 |
710 мс |
35.5 мкс |
50000 |
1850 мс |
37 мкс |
В результате выполнения данной работы был спроектирован БИХ-фильтр нижних частот Чебышева 2-го типа, который удовлетворяет заданной спецификации:
§ Граничная частота полосы пропускания – 10 кГц,
§ Граничная частота полосы задерживания– 11 кГц,
§ Минимальное ослабление в полосе задерживания – 60 дБ,
§ Неравномерность передачи в полосе пропускания – 1 дБ,
§ Частота дискретизации – 50 кГц.
Проектирование фильтра было осуществлено при помощи метода билинейного преобразования, основанного на использовании аналогового прототипа. Этот метод был использован в проектировании в виду его простоты и качеств результирующих фильтров.
В результате, удалось разработать фильтр с достаточно хорошей АЧХ (очень малые отклонения АЧХ от 0 в полосе задерживания, неравномерность в полосе пропускания удовлетворяет заданной). Минимальный порядок фильтра получился–16. ФЧХ фильтра – нелинейна, далека от идеальной. Также была получена последовательная (каскадная) форма реализации цифрового фильтра, которая представляет собой каскадное соединение (в данном случае) 8-х фильтров 2-ого порядка. АЧХ исходного и каскадного фильтров совпадают.
Для проверки работоспособности фильтра было проведено его тестирование, которое подтвердило соответствие спроектированного фильтра заданным требованиям. И в завершении работы было осуществлено программирование фильтра и оценка его быстродействия.
1. Голышев Н.В., Щетинин Ю.И. Теория и обработка сигналов: Учеб. пособие. – Новосибирск: Изд-во НГТУ, 1998. – Ч.2. – 115 с.
2. Голышев Н.В., Щетинин Ю.И. Задачник – практикум по теории и обработке сигналов: Учеб. пособие. – Новосибирск: Изд-во НГТУ, 2001. – 80 с.
3. Сергиенко А.Б. Цифровая обработка сигналов. – СПб.: Питер, 2003. – 604 с.: ил.
4. Курс лекций по дисциплине «Теория и обработка сигналов», преподаватель доц. Щетинин Ю.И. Учебный год: 2008
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.