Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Gotovyy_kursach.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
214.95 Кб
Скачать
    1. Структурная схема и листинг программы вычисления прямого и обратного бпф.

начало

массив

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;

    1. Методом «быстрой свертки» с использованием алгоритмов прямого и обратного быстрого преобразования Фурье (бпф) найти отклик цифрового фильтра

Свертка – основной процесс в обработке сигналов. Существует алгоритм вычисления свертки, основанный на теореме свертки.

Теорема свертки:

Свертка во временной области эквивалентна умножению в частотной области; умножение во временной области эквивалентно свертке в частотной области.

Это значит, что для выполнения свертки двух сигналов можно перевести их в частотную область, умножить их спектры и перевести их обратно во временную область. Такая операция выглядит громоздко. Однако с появлением алгоритмов БПФ, позволяющих быстро вычислять преобразования Фурье, вычисление свертки через частотную область стало широко использоваться.

Алгоритм вычисления быстрой свертки

Сначала исходный сигнал длины N и ядро свертки длины M дополняются (справа) нулями до длины L (Lстепень двойки), причем так, что Затем вычисляются ДПФ этих двух сигналов, при этом получаются комплексные спектры. Затем спектры сигналов необходимо перемножить (используется перемножение комплексных чисел), при этом получается новый спектр также состоящий из комплексных коэффициентов. Затем из полученного спектра с помощью обратного ДПФ вычисляется сигнал, состоящий из L точек. Этот сигнал и содержит результата свертки из точек, дополненный нулями до L точек.

Рис. 16. Алгоритм вычисления быстрой свертки на основе БПФ

  1. Дополнение нулями

Чтобы число отсчетов последовательности равнялось восьми , добавим . Таким образом, последовательности и будут иметь вид:

  1. Вычисление прямого БПФ

  1. Перемножение

  1. Вычисление обратного БПФ

Результаты расчетов отклика цифрового фильтра представлены в таблицах 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]