FFT, Интерпретация результата преобразования

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: FFT, Интерпретация результата преобразования

Сообщение Santik » 02 окт 2015, 12:04

На вход АЦП подаю синус, на выходе DAC его же вижу без искажений.
А это по большому счёту мало о чём говорит :D Может у АЦП и ЦАП одинаковый формат - целые без знака?

Про выравнивание - скорее это надо во входной массив надо добавить нулей до ближайщего 2^M.
Т.е. если бы у вас на входе было бы 60 значений, надо было бы добавить 4 нуля.

Странно вообще получается. Точка 32 выходного вектора БПФ - это фактически частота Найквиста=4кГц...

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: FFT, Интерпретация результата преобразования

Сообщение Santik » 02 окт 2015, 12:13

Так я не понял, массив _buff[schet] как комплексный или как действительный в программе описан?

Андрей33
Сообщения: 12
Зарегистрирован: 01 окт 2015, 16:29

Re: FFT, Интерпретация результата преобразования

Сообщение Андрей33 » 02 окт 2015, 12:43

Santik писал(а):Так я не понял, массив _buff[schet] как комплексный или как действительный в программе описан?

Код: Выделить всё

#pragma DATA_SECTION(_buff,"_BUFF");
DATA _buff[128];
DATA Тип данных размера short, 16-разрядное число
представляющее число в формате Q15. Рекомендуется
использование типа DATA вместо типа short для
портируемости кода.
Четные значения я пишу из АЦП, нечетные нулями заполняю.
Формат АЦП - знаковый 16 бит(дополнительный код)

Так выглядит массив _buff, полученный с АЦП при подаче на него синуса 1к, перед функцией cbrev:

Код: Выделить всё

-4647; 0;     
1717; 0;                          
5157; 0;
3303; 0;
-2080; 0;
-7953; 0;
-11070; 0;
-8974; 0;
-3461; 0;
2711; 0;
5225; 0;
2441; 0;
-3216; 0;
-8878; 0;
-11068; 0;
-8150; 0;
-2251; 0;
3565; 0;
5053; 0;
1497; 0;
-4373; 0;
-9695; 0;
-10846; 0;
-7202; 0;
-1021; 0;
4257; 0;
4741; 0;
499; 0;
-5490; 0;
-10333; 0;
-10471; 0;
-6173; 0;
169; 0;
4772; 0;
4217; 0;
-597; 0;
-6580; 0;
-10771; 0;
-9902; 0;
-5064; 0;
1350; 0;
5105; 0;
3559; 0;
-1697; 0;
-7613; 0;
-11010; 0;
-9224; 0;
-3908; 0;
2351; 0;
5209; 0;
2739; 0;
-2832; 0;
-8575; 0;
-11068; 0;
-8440; 0;
-2685; 0;
3254; 0;
5111; 0;
1820; 0;
-3989; 0;
-9442; 0;
-10922; 0;
-7538; 0;
-1472; 0;
после cbrev:

Код: Выделить всё

-4647; 0;
169; 0;
-2251; 0;
2351; 0;
-3461; 0;
1350; 0;
-1021; 0;
3254; 0;
-2080; 0;
-6580; 0;
-4373; 0;
-8575; 0;
-3216; 0;
-7613; 0;
-5490; 0;
-9442; 0;
5157; 0;
4217; 0;
5053; 0;
2739; 0;
5225; 0;
3559; 0;
4741; 0;
1820; 0;
-11070; 0;
-9902; 0;
-10846; 0;
-8440; 0;
-11068; 0;
-9224; 0;
-10471; 0;
-7538; 0;
1717; 0;
4772; 0;
3565; 0;
5209; 0;
2711; 0;
5105; 0;
4257; 0;
5111; 0;
-7953; 0;
-10771; 0;
-9695; 0;
-11068; 0;
-8878; 0;
-11010; 0;
-10333; 0;
-10922; 0;
3303; 0;
-597; 0;
1497; 0;
-2832; 0;
2441; 0;
-1697; 0;
499; 0;
-3989; 0;
-8974; 0;
-5064; 0;
-7202; 0;
-2685; 0;
-8150; 0;
-3908; 0;
-6173; 0;
-1472; 0;
Последний раз редактировалось Андрей33 02 окт 2015, 15:21, всего редактировалось 2 раза.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: FFT, Интерпретация результата преобразования

Сообщение Santik » 02 окт 2015, 13:55

cbrev(_buff,_buff,64);-она делает реверсию адресов отдельно для четных и нечетных элементов массива, на выходе 128 значений получается.
Но на выходе все нечётные по-прежнему =0?

Андрей33
Сообщения: 12
Зарегистрирован: 01 окт 2015, 16:29

Re: FFT, Интерпретация результата преобразования

Сообщение Андрей33 » 02 окт 2015, 13:57

Santik писал(а):
cbrev(_buff,_buff,64);-она делает реверсию адресов отдельно для четных и нечетных элементов массива, на выходе 128 значений получается.
Но на выходе все нечётные по-прежнему =0?
Да

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: FFT, Интерпретация результата преобразования

Сообщение Santik » 02 окт 2015, 14:35

Ну вот у этого сигала очень большая постоянная составляющая -2982.
На выходе БПФ на 1 значении тоже должен быть локальный максимум.

Андрей33
Сообщения: 12
Зарегистрирован: 01 окт 2015, 16:29

Re: FFT, Интерпретация результата преобразования

Сообщение Андрей33 » 02 окт 2015, 14:42

Santik писал(а):Ну вот у этого сигала очень большая постоянная составляющая -2982.
На выходе БПФ на 1 значении тоже должен быть локальный максимум.
да, на нулевом значении всегда постоянный пик.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: FFT, Интерпретация результата преобразования

Сообщение Santik » 02 окт 2015, 14:55

А не пытались с этими данными спектр получить в какой-нибудь другой программе?
Потому что близко к истине:
При подаче с генератора на вход АЦП синуса 1000Гц, вижу пики после БПФ в точках: 16; 48.
Оп-па - это я ошибся - точки 16;48 - это 2000Гц

Код: Выделить всё

N	F, Гц
1	0
2	125
3	250
4	375
5	500
6	625
7	750
8	875
9	1000
10	1125
11	1250
12	1375
13	1500
14	1625
15	1750
16	1875
17	2000
18	2125
19	2250
20	2375
21	2500
22	2625
23	2750
24	2875
25	3000
26	3125
27	3250
28	3375
29	3500
30	3625
31	3750
32	3875
33	4000
34	-125
35	-250
36	-375
37	-500
38	-625
39	-750
40	-875
41	-1000
42	-1125
43	-1250
44	-1375
45	-1500
46	-1625
47	-1750
48	-1875
49	-2000
50	-2125
51	-2250
52	-2375
53	-2500
54	-2625
55	-2750
56	-2875
57	-3000
58	-3125
59	-3250
60	-3375
61	-3500
62	-3625
63	-3750
64	-3875


Андрей33
Сообщения: 12
Зарегистрирован: 01 окт 2015, 16:29

Re: FFT, Интерпретация результата преобразования

Сообщение Андрей33 » 02 окт 2015, 15:03

значения после cfft:

Код: Выделить всё

-2984; 0;
-82;  172;
-72; 67;
-70; 28;
-71; 0;
-70; -29;
-72; -68;
-82;-173;
673;0;
-82;172;
-72;67;
-70;28;
-71;0;
-70;-29;
-72;-68;
-82;-173;
-88;0;
-82;172;
-72;67;
-70;28;
-71;0;
-70;-29;
-72;-68;
-82;-173;
673;0;
-82;172;
-72;67;
-70;28;
-71;0;
-70;-29;
-72;-68;
-82;-173;
-71; 0;
-82; 172;
... дальше симметрично
Последний раз редактировалось Андрей33 02 окт 2015, 15:22, всего редактировалось 1 раз.

Андрей33
Сообщения: 12
Зарегистрирован: 01 окт 2015, 16:29

Re: FFT, Интерпретация результата преобразования

Сообщение Андрей33 » 02 окт 2015, 15:06

Santik писал(а):А не пытались с этими данными спектр получить в какой-нибудь другой программе?
Потому что близко к истине:
При подаче с генератора на вход АЦП синуса 1000Гц, вижу пики после БПФ в точках: 16; 48.
попробую их в другой процессор засунуть, где библиотека обкатана уже, позже отпишусь.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость