реклама на сайте
подробности

 
 
6 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> БПФ, Прошу пояснения
serjj
сообщение Apr 22 2015, 11:24
Сообщение #31


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Код
>> W2= 1-0.0061

W2 =

    0.9939

Воу воу, это что? Коэффициент комплексный и умножение должно быть комплексным, а вы зачем-то из Re Im вычитаете.
Go to the top of the page
 
+Quote Post
Dmitriyspb
сообщение Apr 22 2015, 11:32
Сообщение #32


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498



Цитата(serjj @ Apr 22 2015, 14:24) *
Код
>> W2= 1-0.0061

W2 =

    0.9939

Воу воу, это что? Коэффициент комплексный и умножение должно быть комплексным, а вы зачем-то из Re Im вычитаете.


Вот тут, та я и больше всего не понимаю. smile3046.gif smile3046.gif smile3046.gif

Как мне комплексное число перевести в целочисленную форму????


--------------------
Победа - это когда N раз упал и N+1 раз встал.
Go to the top of the page
 
+Quote Post
serjj
сообщение Apr 22 2015, 11:55
Сообщение #33


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Как мне комплексное число перевести в целочисленную форму????

комплексное число с точки зрения обработки это 2 числа: real(a) и imag(a). Переводите их отдельно. А все рассчёты нужно привести к форме re(a_new) = f_re(re(a_old), im(a_old)), im(a_new) = f_im(re(a_old), im(a_old)), благо все основные комплексные операции, с которыми программисту приходится иметь дело, допускают такую форму записи.
Go to the top of the page
 
+Quote Post
Dmitriyspb
сообщение Apr 22 2015, 12:03
Сообщение #34


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498



Цитата(serjj @ Apr 22 2015, 14:55) *
комплексное число с точки зрения обработки это 2 числа: real(a) и imag(a). Переводите их отдельно. А все расчёты нужно привести к форме re(a_new) = f_re(re(a_old), im(a_old)), im(a_new) = f_im(re(a_old), im(a_old)), благо все основные комплексные операции, с которыми программисту приходится иметь дело, допускают такую форму записи.


перевел, а вот как потом на них умножать отсчеты? Отсчеты имеют целочисленную форму laughing.gif


--------------------
Победа - это когда N раз упал и N+1 раз встал.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Apr 22 2015, 12:10
Сообщение #35


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Считали бы, как нормальные люди sm.gif, через синус и косинус. А эти комплексные экспоненты - в мусор! sm.gif Нечего человеку мозги засорять.
Go to the top of the page
 
+Quote Post
serjj
сообщение Apr 22 2015, 12:33
Сообщение #36


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Считали бы, как нормальные люди sm.gif, через синус и косинус. А эти комплексные экспоненты - в мусор! sm.gif Нечего человеку мозги засорять.

Ну без понимание формулы Эйлера нельзя браться за Фурье rolleyes.gif

Цитата
перевел, а вот как потом на них умножать отсчеты? Отсчеты имеют целочисленную форму

(a_re + j*a_im)(w_re + j*w_im) = (a_re*w_re - a_im*w_im) + j*(a_re*w_im + a_im*w_re)

Цитата
можно, но функции синуса и косинуса реализовываются в ПЛИС довольно проблематично (требуется использование Cordic)

Имеется в виду табличные синус/косинус, которые потом также и умножаются на входные отчёты, но только это тоже самое получается что и комплексная экспонента, только понимания меньше. А вообще таки да слышал про Фурье на кордиках, но сам не видел rolleyes.gif

Сообщение отредактировал serjj - Apr 22 2015, 12:36
Go to the top of the page
 
+Quote Post
Dmitriyspb
сообщение Apr 22 2015, 12:37
Сообщение #37


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498



Цитата(Xenia @ Apr 22 2015, 15:10) *
Считали бы, как нормальные люди sm.gif, через синус и косинус. А эти комплексные экспоненты - в мусор! sm.gif Нечего человеку мозги засорять.


Да уж, я вот и буксую. biggrin.gif

Вот как сделать из вещественных входных отсчетов АЦП отсчеты I и Q я догадываюсь (I и Q - это вроде как и есть комплексное представление сигнала). Попросту говоря синус и косинус. И дальше для них будет две независимые ветки БПФ и коэффициенты БПФ (Wn) у каждого будут тоже свои. Верно понимаю?
Т.О. из комплексного выражения W1=x1+y1i
x - это мои коэффициент W1 для косинуса
y - это мои коэффициент W1 для синуса


--------------------
Победа - это когда N раз упал и N+1 раз встал.
Go to the top of the page
 
+Quote Post
serjj
сообщение Apr 22 2015, 12:38
Сообщение #38


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Вот как сделать из вещественных входных отсчетов АЦП отсчеты I и Q я догадываюсь (I и Q - это вроде как и есть комплексное представление сигнала). Попросту говоря синус и косинус. И дальше для них будет две независимые ветки БПФ и коэффициенты БПФ (Wn) у каждого будут тоже свои. Верно понимаю?
Т.О. из комплексного выражения W1=x1+y1i
x - это мои коэффициент W1 для косинуса
y - это мои коэффициент W1 для синуса

Неверно. Мнимая часть вносит вклад в рассчёт выходной действительной и наоборот. См. комплексное умножение.
Go to the top of the page
 
+Quote Post
Dmitriyspb
сообщение Apr 22 2015, 12:43
Сообщение #39


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498



Цитата(serjj @ Apr 22 2015, 15:33) *
(a_re + j*a_im)(w_re + j*w_im) = (a_re*w_re - a_im*w_im) + j*(a_re*w_im + a_im*w_re)


Тут a_re - косинус, a_im - синус для входных отсчетов.
Аналогично для коэффициентов.
Вроде бы понял.

Вот только получается две ветки БПФ? для синуса и косинуса?


--------------------
Победа - это когда N раз упал и N+1 раз встал.
Go to the top of the page
 
+Quote Post
serjj
сообщение Apr 22 2015, 12:49
Сообщение #40


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Тут a_re - косинус, a_im - синус для входных отсчетов.
Аналогично для коэффициентов.
Вроде бы понял.

Вот только получается две ветки БПФ? для синуса и косинуса?


a_re - действительная часть, a_im - мнимая. Преобразование Фурье определено для множества комплексных чисел, его нельзя вот так взять и сделать отдельно для действительной и мнимой частей. Если вы подадите в Фурье действительный сигнал (мнимая часть = 0), то на выходе вы будете иметь комплексный сигнал (мнимая часть != 0). Косинус и синус хорошие примеры для комплексной синусоиды exp(1i*2*pi*f*t), но ими не исчерпываются все комплексные числа rolleyes.gif
Go to the top of the page
 
+Quote Post
Dmitriyspb
сообщение Apr 22 2015, 13:06
Сообщение #41


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498



Цитата(serjj @ Apr 22 2015, 15:49) *
a_re - действительная часть, a_im - мнимая. Преобразование Фурье определено для множества комплексных чисел, его нельзя вот так взять и сделать отдельно для действительной и мнимой частей. Если вы подадите в Фурье действительный сигнал (мнимая часть = 0), то на выходе вы будете иметь комплексный сигнал (мнимая часть != 0). Косинус и синус хорошие примеры для комплексной синусоиды exp(1i*2*pi*f*t), но ими не исчерпываются все комплексные числа rolleyes.gif


Я запутался. smile3009.gif
Я понял, что коэффициенты я имею в комплексной форме,значит, отсчеты у меня должны быть тоже в комплексной форме. Так или снова не туда?

Но если я беру входные отсчеты в вещественной форме и сую в БПФ, тогда мне нужно брать только действительную часть от комплексной формы коэффициентов?

Меня больше всего смущает комплексное представление коэффициентов (Wn) БПФ, а отсчеты вещественные.
В итоге мне нужно сделать коэффициенты как отсчеты или отсчеты как коэффициенты?????
или можно и так и так???


--------------------
Победа - это когда N раз упал и N+1 раз встал.
Go to the top of the page
 
+Quote Post
Swup
сообщение Apr 22 2015, 13:49
Сообщение #42


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 2-09-11
Из: Москва
Пользователь №: 66 970



Вещественные числа - подмножество комплексных числе.
Ваше вещественное число А на самом деле комплексное число А+j*0. Т.е. вещественное число это такое комплексное число у которого нулевая мнимая часть. Как вам верно заметили выше преобразование фурье -комплексная операция.

И вот вы уже умножаете два комплексных числа между собой, нет никаких в этом проблем. Только надо учитывать что амплитудный спектр будет иметь информативно только положительную часть, отрицательная будет зеркальным отражением положительной.

Можно еще представить ваш сигнал в виде аналитического ( гуглите преобразование Гилберта), считать его комплексным и делать уже бпф от него. В таком случае отрицательная часть спектра будет нулевой.

ПС Извините конечно, но лично мое мнение: выражение в виде комплексных сигналов гораздо интуитивнее и проще чем в виде косинусных и синусных составляющих. В частности если заниматься обработкой радиолокационных сигналов))
Прям здесь можно заметить как представление чисел виде косинусов и синусов путает человека)) В любом случае одно с другой настолько тесно связано, что не вызывает трудностей. Формула Эйлера все дела.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Apr 22 2015, 13:54
Сообщение #43


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Dmitriyspb @ Apr 22 2015, 16:06) *
Меня больше всего смущает комплексное представление коэффициентов (Wn) БПФ, а отсчеты вещественные.
В итоге мне нужно сделать коэффициенты как отсчеты или отсчеты как коэффициенты?????


Если входные данные вещественные, то вам придется их дополнить нулевой мнимой частью, и только после этого запустить на этом месте БПФ. Уже после первого шага алгоритма ненулевые числа появятся и в мнимой части тоже.
Go to the top of the page
 
+Quote Post
Kapsik
сообщение Apr 23 2015, 05:32
Сообщение #44


Частый гость
**

Группа: Свой
Сообщений: 100
Регистрация: 28-08-13
Из: SPb
Пользователь №: 78 086



Мне показалось, что рисовать бабочки текстом это перебор, так что прикрепляю картинку. Реальная и мнимая части отдельно, я вижу так =)
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Dmitriyspb
сообщение Apr 23 2015, 06:14
Сообщение #45


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498



Цитата(Xenia @ Apr 22 2015, 16:54) *
Если входные данные вещественные, то вам придется их дополнить нулевой мнимой частью, и только после этого запустить на этом месте БПФ. Уже после первого шага алгоритма ненулевые числа появятся и в мнимой части тоже.


Ага, понял. Спасибо огромное.

Нашел такую инфу и стараюсь её приложить к своей практической плоскости (см. картинки).
Прикрепленное изображение


Основываясь на этом родил такую структуру (см. картинки)

Прикрепленное изображение

Верно я понял или же нет?


--------------------
Победа - это когда N раз упал и N+1 раз встал.
Go to the top of the page
 
+Quote Post

6 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th June 2025 - 19:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01521 секунд с 7
ELECTRONIX ©2004-2016