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

 
 
 
Reply to this topicStart new topic
> FFT неправильный спектр после АЦП, помогите разобраться с FFT
valterego
сообщение Jun 6 2012, 16:31
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 6-06-12
Пользователь №: 72 199



при записи отсчетов АЦП в файл строю спектр с помощью FFTW, получаю:
Прикрепленное изображение

а должно быть:
Прикрепленное изображение

помогите пожалуйста разобраться с проблемой
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 6 2012, 19:21
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(valterego @ Jun 6 2012, 19:31) *
помогите пожалуйста разобраться с проблемой


А почему вы решили, что спектр должен быть именно таким, как на нижнем рисунке ? Подайте на вход вашего АЦП синус или меандр, например, частотой в 1 КГц, стройте спектр, а тогда и делайте выводы. Вы сейчас откуда сигнал берете ? А если этот массив отсчетов скормить MatLab'у, он тоже такой спектр покажет ?
Go to the top of the page
 
+Quote Post
Herz
сообщение Jun 6 2012, 20:05
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Зеркальную половину убрать не забыли? У МАТЛАБа для этого специальная функция есть: fftshift. А что такое FFTW?
Go to the top of the page
 
+Quote Post
valterego
сообщение Jun 7 2012, 05:12
Сообщение #4





Группа: Новичок
Сообщений: 4
Регистрация: 6-06-12
Пользователь №: 72 199



Цитата(kovigor @ Jun 6 2012, 23:21) *
А почему вы решили, что спектр должен быть именно таким, как на нижнем рисунке ? Подайте на вход вашего АЦП синус или меандр, например, частотой в 1 КГц, стройте спектр, а тогда и делайте выводы. Вы сейчас откуда сигнал берете ? А если этот массив отсчетов скормить MatLab'у, он тоже такой спектр покажет ?

дело в том, что программа управления самим АЦП показывает, что записывается правильный спектр, с сигналом посредине, а насчет матлаба, я не знаю... не работал

Цитата(Herz @ Jun 7 2012, 00:05) *
Зеркальную половину убрать не забыли? У МАТЛАБа для этого специальная функция есть: fftshift. А что такое FFTW?

FFTW - это библиотека под виндовс для быстрого расчета БПФ, а насчет зеркальной половины - ее нет, спектр ведь получился несимметричный
может быть АЦП сигнал в подканалах IQ с чем-то сворачивает? тогда как убрать это при построении?
Go to the top of the page
 
+Quote Post
Alex11
сообщение Jun 7 2012, 07:59
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Приложили бы Вы здесь отсчеты с АЦП, можно было бы проверить чей глюк.
Go to the top of the page
 
+Quote Post
Herz
сообщение Jun 7 2012, 08:30
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(valterego @ Jun 7 2012, 08:12) *
FFTW - это библиотека под виндовс для быстрого расчета БПФ, а насчет зеркальной половины - ее нет, спектр ведь получился несимметричный

Но правая половина верхней картинки уж очень напоминает нижнюю. Так, как будто спектр сдвинут.

Цитата(Alex11 @ Jun 7 2012, 10:59) *
Приложили бы Вы здесь отсчеты с АЦП, можно было бы проверить чей глюк.

+1. Можно будет в Матлабе посмотреть.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jun 7 2012, 15:57
Сообщение #7


Гуру
******

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



Если полученную картинку (верхнюю) разрезать ровно пополам, а потом махнуть половинки местами, то получится как раз то, что надо! sm.gif
Go to the top of the page
 
+Quote Post
Make_Pic
сообщение Jun 7 2012, 23:47
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828



Цитата(Xenia @ Jun 7 2012, 18:57) *
Если полученную картинку (верхнюю) разрезать ровно пополам, а потом махнуть половинки местами, то получится как раз то, что надо! sm.gif


Последовательность отчетов, или обработки отсчетов где то в коде у него спутана
Go to the top of the page
 
+Quote Post
valterego
сообщение Jun 9 2012, 09:15
Сообщение #9





Группа: Новичок
Сообщений: 4
Регистрация: 6-06-12
Пользователь №: 72 199



проблема решена! всем спасибо!
Итак, пример:
имеем сигнал с АЦП в формате IQ с Fd 500 KHz
Для правильного построения спектра нам нужно комплексный сигнал домножить на e^jw/2t, где:
w - 2 * Pi * Fd
другими словами - домножаем комплексный сигнал на комплексную огибающую частотой вдвое меньше частоты дискретизации
Go to the top of the page
 
+Quote Post
Herz
сообщение Jun 9 2012, 11:27
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(valterego @ Jun 9 2012, 12:15) *
проблема решена! всем спасибо!
Итак, пример:
имеем сигнал с АЦП в формате IQ с Fd 500 KHz
Для правильного построения спектра нам нужно комплексный сигнал домножить на e^jw/2t, где:
w - 2 * Pi * Fd
другими словами - домножаем комплексный сигнал на комплексную огибающую частотой вдвое меньше частоты дискретизации

Это где Вы почерпнули? Обычно для построения спектра нужно получить модуль комплексного сигнала. То есть, возвести в квадрат обе составляющие и сложить. Если надо, взять корень из суммы.
Go to the top of the page
 
+Quote Post
valterego
сообщение Jun 11 2012, 13:38
Сообщение #11





Группа: Новичок
Сообщений: 4
Регистрация: 6-06-12
Пользователь №: 72 199



Цитата(Herz @ Jun 9 2012, 15:27) *
Это где Вы почерпнули? Обычно для построения спектра нужно получить модуль комплексного сигнала. То есть, возвести в квадрат обе составляющие и сложить. Если надо, взять корень из суммы.

Помогли коллеги. Это так, корень, но я не хочу переводить комплексные величины в реальные, хочу работать с комплексом, так удобней при демодуляцииsm.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th July 2025 - 02:35
Рейтинг@Mail.ru


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