Преобразование из комплексной в показательную форму

ЛИНЕЙНАЯ СВЕРТКА

a[n] = [2; 1; 3; -1]; b[n] = [-1; 1; 2];

a[m]     2 1 3 -1        
b[0-m] 2 1 -1             s[0] = 2∙(-1)=-2
b[1-m]   2 1 -1           s[1] = 1∙(-1)+2∙1=1
b[2-m]     2 1 -1         s[2] = 3∙(-1)+1∙1+2∙2=2
b[3-m]       2 1 -1       s[3] = 2+3+1 = 6
b[4-m]         2 1 -1     s[4] = 6-1 = 5
b[5-m]           2 1 -1   s[5] = -2
b[6-m]             2 1 -1 s[6] = 0

ЦИКЛИЧЕСКАЯ СВЕРТКА

a[n] = [2; 1; 3; -1]; b[n] = [-1; 3; 2; 1];

a[m]         2 1 3 -1          
b[0-m] -1 1 2 3 -1 1 2 3 -1 1 2 3 s[0]=2∙(-1)+1∙1+3∙2-1∙3=2
b[1-m] 3 -1 1 2 3 -1 1 2 3 -1 1 2 s[1]=2∙3+1∙(-1)+3∙1-1∙2=6
b[2-m] 2 3 -1 1 2 3 -1 1 2 3 -1 1 s[2]=2∙2+1∙3+3∙(-1)-1∙1=3
b[3-m] 1 2 3 -1 1 2 3 -1 1 2 3 -1 s[3]=2∙1+1∙2+3∙3-1∙(-1)=14


СВЕРТКА ОТСЧЕТОВ ВО ВРЕМЕННОЙ ОБЛАСТИ

С БАЗИСНЫМИ ФУНКЦИЯМИ ПРИ ДПФ ДЛЯ N=8

 

 


МАТРИЦА ДИСКРЕТНОГО ПРЕОБРАЗОВАНИЯ ФУРЬЕ

у = АDFT x

 

Формула для элемента матрицы в n-м столбце и m-й строке:




ДПФ СИНУСОИДАЛЬНОГО СИГНАЛА

С ЦЕЛЫМ ЧИСЛОМ ПЕРИОДОВ В ВЫБОРКЕ

 

 

ДПФ СИНУСОИДАЛЬНОГО СИГНАЛА

С НЕЦЕЛЫМ ЧИСЛОМ ПЕРИОДОВ В ВЫБОРКЕ

 



РАЗМЫВАНИЕ СПЕКТРА ДЛЯ СЛУЧАЯ ДВУХ СИГНАЛОВ

 

ВЗВЕШИВАНИЕ С ИСПОЛЬЗОВАНИЕМ ОКОННОЙ ФУНКЦИИ

 



ПАРАМЕТРЫ ВЕСОВЫХ ФУНКЦИЙ

ХАРАКТЕРИСТИКИ ВЕСОВЫХ ФУНКЦИЙ

Наименование окна ΔF0 ΔF0,5 γmax, дБ β, дБ Скорость спада, дБ/окт
Прямоугольное 2 0,89 -13 0 6
Бартлетта 4 1,33 -26,5 -6 12
Ханна 4 1,5 -31,5 -6 18
Блэкмана 6 1,7 -58 -7,54 18

ПРЯМОУГОЛЬНОЕ ОКНО



ОКНО БАРТЛЕТТА

ОКНО БЛЭКМЕНА

ОКНО ХАННА







КОЭФФИЦИЕНТЫ РЯДА ФУРЬЕ

 

МАТРИЦА ПРЕОБРАЗОВАНИЯ ФУРЬЕ

 

СТЕПЕННОЙ РЯД W ДЛЯ N=8

МАТРИЦА ПРЕОБРАЗОВАНИЯ ФУРЬЕ

С УЧЕТОМ ПЕРИОДИЧНОСТИ W

 


БПФ ДЛЯ N=4

f={f0, f1, f2, f3}

СТЕПЕННОЙ РЯД W ДЛЯ N=4


ПЕРЕПИШЕМ МАТРИЦУ



УЧТЕМ

ПЕРЕПИШЕМ МАТРИЦУ

РАЗОБЪЕМ МАТРИЦУ, ВЫПОЛНИВ ПРОРЕЖИВАНИЕ

ИЛИ ВОЗВРАЩАЯСЬ К КОЭФФИЦИЕНТАМ



ПЕРЕХОДЯ К ЧИСЛЕННЫМ ЗНАЧЕНИЯМ ПОЛУЧИМ

Или


ДПФ ДЛЯ 8-ТОЧЕЧНОЙ ПОСЛЕДОВАТЕЛЬНОСТИ

 

ВЫДЕЛЕНИЕ СИММЕТРИИ

 

УЧЕТ ПЕРИОДИЧНОСТИ W


УЧТЕМ:

 

 

 


ПЕРЕСТАНОВКА РАЗРЯДОВ И СОРТИРОВКА

ДЛЯ 8-ТОЧЕЧНОЙ ПОСЛЕДОВАТЕЛЬНОСТИ

ИСХОДНЫЙ СИГНАЛ

СИГНАЛ ПОСЛЕ ПЕРЕСТАНОВКИ

DEC BIN DEC BIN
0 000 0 000
1 001 4 100
2 010 2 010
3 011 6 110
4 100 1 001
5 101 5 101
6 110 3 011
7 111 7 111


РЕАЛИЗАЦИЯ БПФ НА МИКРОКОНТРОЛЛЕРЕ

Выборка данных их АЦП

// sample[] – массив 16-разрядных переменных

for i = 0 to (N-1)

Begin

DoADCSampleConversion()

// выборка входного сигнала в АЦП

sample[i] = read8BitSampleFromADC()

// чтение 8-разрядных данных из АЦП

End

 

for i = 0 to (N-1)

Begin

if (sample[i] & 0x0080)

// Если 8-разрядная выборка отрицательная

sample[i] = sample[i] + 0xFF00 // установить знак (-)

                               // 16-разрядного слова

End

Перестановка бит

i=x_n_re[ 1]; x_n_re[ 1]=x_n_re[128]; x_n_re[128]=i;

i=x_n_re[ 2]; x_n_re[ 2]=x_n_re[ 64]; x_n_re[ 64]=i;

i=x_n_re[ 3]; x_n_re[ 3]=x_n_re[192]; x_n_re[192]=i;

i=x_n_re[ 4]; x_n_re[ 4]=x_n_re[ 32]; x_n_re[ 32]=i;

...

i=x_n_re[207]; x_n_re[207]=x_n_re[243]; x_n_re[243]=i;

i=x_n_re[215]; x_n_re[215]=x_n_re[235]; x_n_re[235]=i;

i=x_n_re[223]; x_n_re[223]=x_n_re[251]; x_n_re[251]=i;

i=x_n_re[239]; x_n_re[239]=x_n_re[247]; x_n_re[247]=i;

Таблица для вычисления синуса и косинуса

const int cosLUT[N/2] = {+128,+127,+127,...,-127,-127,-127};

const int sinLUT[N/2] = {+0,+3, +6,...,+9, +6, +3};

Преобразование из комплексной в показательную форму

const unsigned char magnLUT[16][16] =

{

{0x00,0x10,0x20,...,0xd0,0xe0,0xf0},

{0x10,0x16,0x23,...,0xd0,0xe0,0xf0},

           ...

{0xe0,0xe0,0xe2,...,0xff,0xff,0xff},

{0xf0,0xf0,0xf2,...,0xff,0xff,0xff}

};

           ...

/* Вычисление x_n_re=abs(x_n_re) и x_n_im=abs(x_n_im) */

           ...

for(i=1; i<N_DIV_2; i++)

x_n_re[i] = magnLUT[x_n_re[i]>>11][x_n_im[i]>>11];




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: