Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Звіт
з лабораторної роботи № 2
з дисципліни:
“Проектування комп'ютерних засобів обробки сигналів і зображень”
на тему:
Діагностика роботи цифрових фільтрів шляхом аналізу їх
амплітудно-частотної характеристики
Львів 2014
Мета
Дослідити і проаналізувати параметри амплітудно-частотної характе-ристики та вплив віконної обробки при спектральному аналізі сигналів.
Завдання
№ вар.
N
l
Sm
Sp
S
A
№ вагової функції
16
32
14
-32
32
8
1
6-2
Вагова функція, що використовується при обробці:
Номер
функції
Назва
Тип функції
Діапазон зміни n
6
Хеннінга-Пуасона
0 ( (n( ( N/2
6-1 a = 0,5
6-2 a = 1,0
6-3 a = 2,0
Теоретичні відомості
Для адекватного відтворення вхідного сигналу, що використовується в системах обробки, які розв’язують задачі спектрального аналізу сигналів, опис вхідного діагностичного сигналу представляється у формалізованому вигляді. Зазначені задачі розв’язуються цифровими методами, на основі швидких дискретних ортогональних перетворень, що представляються узагальненим класом швидких перетворень Фур'є з різними системами базисних функцій. Дані перетворення відносяться до класу лінійних ортогональних перетворень, зв'язаних з обчисленням виразів виду ,
де Х = [Х(0), Х(1), ... , Х(L-1)]Т , х = [х(0), х(1), ... , х(L-1)]Т - вектори, відповідно, вихідних гармонік і початкових відліків, А - відтворююча ортогональна матриця розміром L x L, L- кількість початкових відліків.
Системи, які реалізують ці алгоритми відносяться до стаціонарних систем з частотним коефіцієнтом передачі K(j():
де h(t) - імпульсна характеристика, що має таку інтерпретацію: якщо на вхід системи поступає гармонійний сигнал з відомою частотою ( і комплексною амплітудою , то комплексна амплітуда вихідного сигналу буде рівною: Представлення частотного коефіцієнта передачі (див. формулу 1) в показниковій формі має вигляд : ,
де - амплітудно-частотна характеристика (АЧХ).
Оскільки для фільтрів з скінченою імпульсною характеристикою АЧХ є однією з визначальних характеристик, на основі її аналізу визначається достовірність побудови фільтра. Розглянемо варіант перевірки фільтра методом аналізу його АЧХ на прикладі системи опрацювання інформації когерентно-імпульсної РЛС з n каналами погоджених фільтрів. Для процесора, що виконує N-точкове амплітудне дискретне перетворення Фур’є згідно з формулою (2) , (2)
де N визначає розмір перетворення, n-номер елемента віддалі, l – номер гармоніки, i-номер періоду повторення в межах інтервалу обчислення ДПФ, W(i) вагова функція, вхідний сигнал представимо у вигляді: , (3)
де А - амплітуда сигналу, S - кількість частотних діапазонів між сусідніми l, Q – визначає смугу перевірки АЧХ (, де m, p - кількість гармонік, в діапазоні яких (відносно l) перевіряється АЧХ, , , si – біжуче значення частотного діапазону між сусідніми l).
Процедура діагностики відбувається таким чином. Для процесора задається значення гармоніки lj. На його інформаційні входи поступає вхідний сигнал . Зміна значень (синфазна і квадратурна складові) на вході процесора відбувається на кожному періоді повторення (по і). Одне значення визначається сумуванням по і (див.формулу 2). Після того змінюється частота поступлення , зміна задається значенням , і вираховується наступне значення .
Тобто, при використанні такого підходу процес перевірки розбивається на три етапи:
задання значень для отримання числової послідовності вхідних сигналів;
визначення значень Y(n,l) реальної АЧХ;
порівняння значень ідеальної і реальної АЧХ в кожній точці виміру.
Застосування підходу дозволяє:
виявити помилки в роботі з точністю до функціонального вузла, наприклад помилки в заданні вагової функції, при сумуванні, в ОЗП проміжних результатів, при пересиланні інформації між процесорами, конструктивні та технологічні помилки при проектуванні цифрових вузлів і т.п.;
проводити діагностику в режимі реального часу;
перевірити правильність функціювання і рівень шумів зовнішніх пристроїв, наприклад, приймача проміжної частоти;
оцінити вплив різних типів вагових функцій на значення вихідного сигналу;
перевірити в РРЧ значення інформації, що поступає на вхід системи опрацювання шляхом її запису в ОЗП;
перевірити точностні параметри роботи процесорів;
перевірити реакцію фільтра на поступлення збійної інформації.
Лістинг
//----------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "math.h"
//----------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//----------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int N,L,Sm,Sp,S,A,a,b,j=0,SN=(S*N);
N=StrToInt(Edit1->Text);
Edit1->Text.ToInt();
//*********************
L=StrToInt(Edit2->Text);
Edit2->Text.ToInt();
//*********************
Sm=StrToInt(Edit3->Text);
Edit3->Text.ToInt();
//************************
Sp=StrToInt(Edit4->Text);
Edit4->Text.ToInt();
//**************************
S=StrToInt(Edit5->Text);
Edit5->Text.ToInt();
//*************************
A=StrToInt(Edit6->Text);
Edit6->Text.ToInt();
double w[64];
double expw[27][28];
double re;
double im;
double pi=3.14;
double sin0[16];
double sin1[1536];
double cos0[16];
double cos1[1536];
double Yv[6][44];
double Y[44];
for (int i=0; i<N; i++)
{
w[i]= 0.5*(1.0+cos(pi*(i/(N/2))))*exp(-1.0*(i/(N/2)));
//w[i]=cos((pi*i)/N);
//w[i]=pow(cos(pi*i/N),4); // 0.42-0.5*cos(pi*i/N)+0.08*cos(4*pi*i/N);
Series1->AddXY(i, w[i] );
}
for (int l=1; l<=L; l++){
for (int i=1; i<=32; i++){
expw[l-1][i-1]=w[i-1]*(pow(2.71,((-1*j*2*pi*(l-1)*(i-1)/N))));
}
}
for(int i = 0; i < N; i++)
{
sin0[i] = sin(2*pi*i/N);
cos0[i] = cos(2*pi*i/N);
}
for(int i = 0; i < S*N; i++)
{
sin1[i] = sin(2*pi*i/S*N);
cos1[i] = cos(2*pi*i/S*N);
}
for (int Q=Sm,k=0; Q<16; Q++,k++){
re=0;
im=0;
for (int i=0; i<N; i++){
a = (abs(S*L+Q)*i)%S*N;
b = 14*i%N;
re+=A*cos1[a]*cos0[b]+A*sin1[a]*sin0[b];
im+=A*cos1[a]*sin0[b]-A*sin1[a]*cos0[b];
}
Y[k]=sqrt(pow(re, 2) + pow(im, 2));
re = im = 0;
}
double sum;
double s;
for (int l=0; l<14; l++){
for (int i=0; i<33; i++){
sum=0;
for (int n=0; n<Sp; n++){
s=expw[l][n];
sum+=Y[i]*s;
}
Yv[l][i]=sum;
}
}
for (int i=-32, s=0; i<32; i++,s++){
Series2->AddXY(i, Y[s]);
}
for (int i=-32, s=0; i<32; i++,s++){
Series3->AddXY(i, Yv[0][s] );
}
}
//--------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Series1->Clear();
Series2->Clear();
Series3->Clear();
Edit1->Clear();
Edit2->Clear();
Edit3->Clear();
}
Результат виконання програми
/
Рис.1. Результати роботи програми.
Висновок:
Під час виконання лабораторної роботи я навчився проводити діагностику цифрових фільтрів шляхом аналізу їх амплітудно-частотної характеристики при широкому спектрі параметрів вхідного сигналу.