DFT in C ...

Тема в разделе "WASM.AUDIO", создана пользователем Andrei, 3 май 2018.

  1. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Да но так мы получим много каналов на панораме, ...
     
  2. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Не AVR, не потянет, я лучше светомузыкой огрантчусь )
    Тут тактовая не меньше 200-400 Мгц нужна, а то и больше, иначе не получится
    реал тайм.
    12бит Х 7 МГЦ= 84Мбит
    Такой поток только FPGA обработать сможет, хотя если входную часть в железе сделать,...
    Не мне светомузыки хватит ....)))
     
  3. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    868
    АМ модуляция на частоте 30кГц сдвинет сигнал из отрицательных частот в 0Гц. Смотри скрин. Только потом обрезать паразитные частоты ФНЧ фильтром. Только нужно обеспечить фазу, это называется синхронное детектирование.
     
    Последнее редактирование: 9 май 2018
    Andrei нравится это.
  4. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Ок, в принципе если дискретизировать на частоте 7МГц, а брать отсчеты с частотой 48кГц, то может и получиться, AVR - ку разогнать насколько это возможно, ...
    А если ограничится одним каналом то достаточно 6 кГц, интересно AVR сможет обработать
    поток 72 кБит/сек..., навряд ли...
     
  5. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    ВОт тут получается что спектр вполне себе и в минус уйти может Рисунок ...
    Мы переходим из временной области в частотную, и спектр в минусе есть его там не может не быть, правда одно но сигнал не дискретный, а аналоговый,
     
    Последнее редактирование: 9 май 2018
  6. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    868
    Нет. Дельта функция в частотной области - есть синусоида.
    Просто нарисуй спектр который не уйдет в минус (исходя из твоей картинки) и поймешь в чем ты ошибаешься.
     
  7. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Нарисовал спектр по модулю, анимация была бы наглядней, но пока не умею по быстрому делать,
    spectr.png
    Но у меня частота увеличилась в два раза, если брать по модулю, ...
     
  8. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    868
    Нет. Ты изначально нарисовал синусоиду от -1 до 1 и такой же спектр. Я говорю что дельта функция в частотной области эквивалентна синусоиде во временной (и наоборот).

    Я не пойму что ты сделал. Нужно брать модуль комплексного числа - это соответствует амплитуде сигнала на этой частоте, а аргумент соответственно фазу (кидал же скрин).
     
  9. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Ладно вопрос в лоб, гармонический сигнал с размахом +1 -1 (2 вольта), на спектре будет как виден как 2 Вольта или как 1 Вольт ? (Ну ессно условия идеальные). Или в sqrt(2) т.е. нужно брать действующее значение ? (Я все время брал мгновенные)

    А вот так и получается если брать модуль, то период уменьшается в два раза ...
    modul.png
    А амплитуда 1 вольт, и появляется постоянная составляющая, ...
     
    Последнее редактирование: 11 май 2018
  10. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    868
    0.5В. Я же написал что дельта функция в частотной области - это синусоида, т.е. периодическая функция f(x) = sin(x+p)*d, где d - амплитуда сигнала. Сам синус это уже функция от -1 до 1, мы получаем значение d (амплитуда) и x (фаза). Т.к. мы ограничиваем интервал то половина энергии у нас отражается зеркально, поэтому мы еще делим пополам. Итого синус от 0т -1 до +1 превращается в 0.5В. Исключение составляют 0 частота и частота Найквиста которые в спектре представлены единожды и там будет 1В.

    Ты берешь модуль от сигнала во временной области, для чего? Модуль берется в спектральной области чтобы оценить величину спектральной плотности. Во-первых ты нелинейно искажаешь спектр, а во вторых увеличиваешь частоту в 2 раза и добавляешь DC составляющую.
     
  11. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
     
  12. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Из книги DSP, у него сигнал 3,7 В, и спектр 3 В. (Часть энергии идет на гармошки)
    Smith.png
    Спектрометра нет, посмотреть, ...
     

    Вложения:

    Последнее редактирование: 11 май 2018
  13. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    868
    Спектр это все что в частотной области, ты смотришь спектр не синусоиды а комплексного сигнала, сумма всех гармоник даст исходное значение амплитуды.
     
  14. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Да так то да, для просто наглядности посмотреть я понял как сделать,
    тем более что мне нужно чтобы DFT просчитывался 10-20 раз в секунду, на 64 точки.
    AVR без проблем тянет, ...

    Но остались вопросы, ... наверное надо спросить у кого сурьёзные и мощные спектрометры под рукой,
    померить спектр синуса +1, -1 Вольт , в сети по этому вопросу всяко разно, у кого как в общем ...
     
  15. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Да я согласен, НО я даю НА вход именно ОДИН сигнал sin() +1,-1, благо на компьютере это легко сделать,
    в реальности замучаешься фильтровать этот синус ...
     
    Последнее редактирование: 11 май 2018
  16. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Вот и получается как правильно трактовать полученные данные, при sin() +1,-1.

    В реальности у меня с ADC будут +256/2 -256/2 (8 бит) для моей игрушки достаточно.
     
  17. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    При опорном 5 вольт, будет 0,02 вольта , на один бит ADC.
    То есть на входе вполне себе нормально измеренные данные в Вольтах, точностью до сотых , а на выходе пока не понятно как правильно,
    Вы говорите 0,5 при +1,-1, по книге должно быть +1, и.т.д. ,а может правильно 2 ???
     
    Последнее редактирование: 11 май 2018
  18. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    868
    По какой книге? На ограниченном интервале всегда будет половина из-за зеркального эффекта кроме 2-х точек.

    Я уже устал объяснять что синус во временной это дельта функция в частотной (и наоборот), т.е. если у нас на входе сигнал синуса -1..1В, всегда в спектре будет 1В всплеск (на бесконечном интервале). Прими это как данность, от -1 до +1 синусоида - это дельта функция в частотной области единичной энергии. От -2..2В - даст 2В всплеск.

    Давай на "ты"
     
    Последнее редактирование: 11 май 2018
  19. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Ок, ты не обижайся, а можно еще один вопрос ?
     
  20. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    868
    Да, конечно. С удовольствием отвечу если знаю ответ :yes4: