
- •Часть 1
- •Часть 2
- •Часть 3
- •Задания на выполнение курсовой работы.
- •Часть 1.
- •Часть 2.
- •Часть 3.
- •Часть 1.
- •Составить структурную схему трансверсального фильтра.
- •Найти коэффициенты системы
- •Построить ачх и фчх системы
- •1.4 Найти отклик системы на последовательность двумя способами:
- •1.4.1 Найти отклик системы на конечную последовательность можно с использованием уравнения свертки, непосредственно через формулу:
- •1.4.2 Найти отклик системы на конечную последовательность можно с использованием z-преобразования
- •Часть 2.
- •Составить структурную схему цепи
- •Определить импульсную характеристику дискретной цепи двумя способами
- •Определить импульсную характеристику методом прямой подстановки
- •.2 Определение импульсной характеристики аналитически.
- •. График импульсной характеристики h(n).
- •2.4. Расчет ачх и фчх цепи, построение графиков.
- •Построить картину нулей и полюсов передаточной функции , с помощью которой определить:
- •Часть 3.
- •Описать процедуру вычисления Дискретного преобразования Фурье (дпф) с использованием алгоритмов быстрого преобразования Фурье (бпф): алгоритм бпф с прореживанием по времени.
- •Структурная схема и листинг программы вычисления прямого и обратного бпф.
- •Методом «быстрой свертки» с использованием алгоритмов прямого и обратного быстрого преобразования Фурье (бпф) найти отклик цифрового фильтра
- •Вычислить отклик цифрового фильтра на последовательность непосредственно через уравнение свертки, сравнить полученные результаты.
- •Список литературы.
Структурная схема и листинг программы вычисления прямого и обратного бпф.
начало
массив
k=0, N/2-1, 1
k=0, N/2-1, 1
k=0, N/2-1, 1
конец
Рис. 15. Алгоритм вычисления ДПФ с использованием БПФ.
Текст программы на языке Delphi взят с сайта для курсовых и дипломных работ по программированию http://plagiata.net.ru/.
procedure FFT(var a : TSingleArray; nn : Integer; InverseFFT : Boolean);
var
ii, jj, n, mmax, m, j, istep, i, isign : Integer;
wtemp, wr, wpr, wpi, wi, theta, tempr, tempi : Double;
begin
if InverseFFT then isign := -1
else isign := 1;
n := 2*nn; j := 1; ii:=1;
while ii <= nn do
begin
i := 2*ii-1;
if j>i then
begin
tempr := a[j-1];
tempi := a[j];
a[j-1] := a[i-1];
a[j] := a[i];
a[i-1] := tempr;
a[i] := tempi;
end;
m := n div 2;
while (m>=2) and (j>m) do
begin
j := j-m;
m := m div 2;
end;
j := j+m;
Inc(ii);
end;
mmax := 2;
while n>mmax do
begin
istep := 2*mmax;
theta := 2*Pi/(isign*mmax);
wpr := -2.0*sqr(sin(0.5*theta));
wpi := sin(theta);
wr := 1.0;
wi := 0.0;
ii:=1;
while ii<=mmax div 2 do
begin
m := 2*ii-1;
jj:=0;
while jj<=(n-m) div istep do
begin
i := m+jj*istep;
j := i+mmax;
tempr := wr*a[j-1]-wi*a[j];
tempi := wr*a[j]+wi*a[j-1];
a[j-1] := a[i-1]-tempr;
a[j] := a[i]-tempi;
a[i-1] := a[i-1]+tempr;
a[i] := a[i]+tempi;
Inc(jj);
end;
wtemp := wr;
wr := wr*wpr-wi*wpi+wr;
wi := wi*wpr+wtemp*wpi+wi;
Inc(ii);
end;
mmax := istep;
end;
if InverseFFT then
begin
I:=1;
while I<=2*nn do
begin
a[I-1] := a[I-1]/nn;
Inc(I);
end;
end;
end;
Методом «быстрой свертки» с использованием алгоритмов прямого и обратного быстрого преобразования Фурье (бпф) найти отклик цифрового фильтра
Свертка – основной процесс в обработке сигналов. Существует алгоритм вычисления свертки, основанный на теореме свертки.
Теорема свертки:
Свертка во временной области эквивалентна умножению в частотной области; умножение во временной области эквивалентно свертке в частотной области.
Это значит, что для выполнения свертки двух сигналов можно перевести их в частотную область, умножить их спектры и перевести их обратно во временную область. Такая операция выглядит громоздко. Однако с появлением алгоритмов БПФ, позволяющих быстро вычислять преобразования Фурье, вычисление свертки через частотную область стало широко использоваться.
Алгоритм вычисления быстрой свертки
Сначала
исходный сигнал длины N
и
ядро свертки длины M
дополняются
(справа) нулями до длины L
(L
– степень
двойки), причем так, что
Затем вычисляются ДПФ этих двух сигналов,
при этом получаются комплексные спектры.
Затем спектры сигналов необходимо
перемножить (используется перемножение
комплексных чисел), при этом получается
новый спектр также состоящий из
комплексных коэффициентов. Затем из
полученного спектра с помощью обратного
ДПФ вычисляется сигнал, состоящий из L
точек.
Этот сигнал и содержит результата
свертки из
точек, дополненный нулями до L
точек.
Рис. 16. Алгоритм вычисления быстрой свертки на основе БПФ
Дополнение нулями
Чтобы
число отсчетов последовательности
равнялось восьми
,
добавим
.
Таким образом, последовательности
и
будут иметь вид:
Вычисление прямого БПФ
Перемножение
Вычисление обратного БПФ
Результаты расчетов отклика цифрового фильтра представлены в таблицах 7-9.
Таблица 7.
k |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
42 |
4,103 |
-16,18 |
-1,88 |
1 |
1,051 |
-1,22 |
0,725 |
|
0 |
-33,76 |
-4,121 |
4,43 |
1 |
-1,425 |
-0,121 |
0,376 |
|
0 |
10,108 |
15,192 |
2,281 |
-3 |
-2,18 |
-3,192 |
9,791 |
|
0 |
6,754 |
-6,293 |
-11,46 |
-3 |
0,434 |
7,707 |
14,654 |
|
0 |
269,54 |
-280,84 |
46,54 |
0 |
-1,673 |
4,836 |
1,595 |
|
0 |
-313,6 |
42,97 |
31,66 |
-6 |
3,56 |
-9,03 |
14,3 |
k |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
|
0 |
0,725 |
-1,22 |
1,051 |
1 |
-1,88 |
-16,18 |
4,103 |
|
0 |
-0,376 |
0,121 |
1,425 |
-1 |
-4,43 |
4,121 |
33,76 |
|
22 |
9,791 |
-3,192 |
-2,18 |
-3 |
2,281 |
15,192 |
10,108 |
|
0 |
-14,65 |
-7,707 |
-0,434 |
3 |
11,46 |
6,293 |
-6,754 |
|
0 |
1,595 |
4,836 |
-1,673 |
0 |
46,54 |
-280,84 |
269,54 |
|
0 |
-14,3 |
9,03 |
-3,56 |
6 |
-31,66 |
-42,97 |
313,6 |
Таблица 8.
n |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
|
5 |
16 |
40 |
65 |
79 |
58 |
13 |
-46 |
-74 |
-71 |
-53 |
-22 |
-10 |
0 |
0 |
0 |