Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 24

Тема: Узкополосное преобразование Фурье

  1. #1

    Узкополосное преобразование Фурье

    Задача вроде несложная, но с заковыкой.
    Есть звук один канал оцифрованный на 44Кгц.
    Нужно посмотреть спектр с хорошим частотным разрешением в полосе предположим от 500 до 530Гц. То есть _ненужно_ рассчитывать спектр для всех частот сигнала, и этим ускорить обработку, кто нибудь может кинуть кусочек алгоритма на любом языке.

    Поискал на форумах, ничего чёткого непопадается, задача вроде типовая , всё уже придумано до нас , но найти неполучается. Фильтровать и после этого воспроизводить ненадо, просто посмотреть, БПФ уже пробовал работает, но мне весь спектр ненужен. Подскажите ссылки или алгоритм, может кому на глаза попадалось.


  2. #2
    Нужно выделить интересующую Вас часть спектра, перенести ее на нулевую или хотя бы на достаточно низкую по сравнению с ее шириной частоту, а дальше делать БПФ c нужным разрешением.

  3. #3

    Re: Узкополосное преобразование Фурье

    Цитата Сообщение от SKirov
    Задача вроде несложная
    Обращайтесь к авторам Mix-а! Они здесь бывают... http://forum.cqham.ru/viewtopic.php?t=20281
    Спасибо за тему. Она очень актуальна, но, такое впечатление, что знатоки не очень склонны делиться информацией (смотрите по ссылке). Или просто не хотят здесь мараться.

  4. #4

    Re: Узкополосное преобразование Фурье

    Цитата Сообщение от DMJ
    Нужно выделить интересующую Вас часть спектра, перенести ее на нулевую или хотя бы на достаточно низкую по сравнению с ее шириной частоту, а дальше делать БПФ c нужным разрешением.
    Помоему такой алгоритм очень неправильный
    Для чего нам переносить спектр к нолю ? чтобы потом усторить передискретизацию сигналу с последующим БПФ ? Так мы прибавки в скорости вычислений не получим.

    Может быть проще в самом алгоритме БПФ не вычислять коэффициенты для ненужных частот, такой алгоритм точно есть - видел в одной книжке 60х годов выпуска толщиной примерно 8-10см :wink: , но мне до неё сейчас не добратся.

    Цитата Сообщение от CAM
    но, такое впечатление, что знатоки не очень склонны делиться информацией (смотрите по ссылке).
    Им просто лень

    Задача по другой формулировке
    Есть БПФ сигнала на 65535 точек, но из всего спектра от 0 до 22кгц, нужна полоса 500..530Гц, то есть примерно 90 точек(частот) спектра.
    Алгоритм должен не считать все остальные, в БПФ используется так называемая операция "бабочка", там есть фишка в перестановке, я непонимаю как убрать именно ненужные мне коэффициенты. Декодировать мне ничего не надо - просто посмотреть, поэтому можно вычислять не комплексные значения сигнала а амплитудное значние , тоже можно кое где упростить алгоритм. Можно использовать обычное не быстрое преобразование Фурье, там алгоритм для выделения нужных точек спектра попроще, но в наш век космических скоростей и высоких технологий это некошерно :wink:


    PS. Программу пытаюсь запихать в сотовый телефон, программа на С++ в компютере работает, а в телефоне не успевает, можно в принципе подождать когда в телефонах поголовно будут процессоры по 400МГц

  5. #5
    Заблокирован навсегда
    Регистрация
    10.12.2005
    Адрес
    Одесса
    Сообщений
    2,325
    Записей в дневнике
    1
    Позывной
    UR5FFR
    навскидку не скажу - надо ковыряться в талмудах. возможно что где-то что-то и есть. но маловероятно учитывая саму сущность преобразования фурье.
    я бы все же решал эту проблему именно сдвигом к нулю. правда прийдется перейти к квадратурному представлению, но в результате вы получите существенный прирост быстродействия. на самом деле перенос к нулю в квадратуру - это два умножения на отсчет. квадратура нужна т.к. если вас интересует участок 500-530гц то множить надо на 500гц и у нас появится зеркальный канал 470-500гц. изменение дискретизации тоже не сильно мудренная процедура особенно когда изменяем в целое число раз.

  6. #6
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,812
    Несколько проще все делается... Существует так называемое Zoom-FFT или преобразование Фурье в заданном окне. При этом могут быть использованы различные она: Ханнинг (Hanning) или Хемминг (Hemming). Перенос спектра в нулевую область не обязателен. Если есть MATLAB или LabView, то там данный алгоритм уже реализован готовыми функциями.
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21

  7. #7

    Регистрация
    06.02.2007
    Адрес
    г.Львов
    Сообщений
    238
    Позывной
    UR5WHK

    The Goertzel Algorithm

    мне видится наиболее оптимальным применение
    алгоритма Goertzel
    это частный случай алгоритма Фурье
    для одной частотной компоненты
    если есть возможность дискретизации
    на 4-х кратной частоте по отношению к интересующей
    алгоритм существенно упрощается
    --------------------------------------------------------------------
    рассчет спектральных составляющих массива методом Герцеля
    --------------------------------------------------------------------
    for (j=0;j<nsize;j++)
    {
    co=cos(pi*j/nsize);
    si=sin(pi*j/nsize);
    a=b=u=uo=0;
    u1=0;//xx[0];
    //' for i=NSIZE-2 to 0 step -1
    for (i=0;i<nsize;i++)
    {
    u=2*u1*co-uo+xx[i];
    //' ?i;u; xx(i)
    //' a=a+u*co-u1+xx(0)
    //' b=b+u*si
    uo=u1;
    u1=u;
    }
    a=u1*co-uo+xx[0];
    b=u1*si;
    a=a/nsize;
    b=b/nsize;
    c=sqrt(a*a+b*b);
    cout<<"\nk="<<j<<" "<<a<<" "<<b<<" "<<c;
    ----------------------------------------------------------------

    Удачи!!
    Вложения Вложения
    Гымблюй, гымблюй сыну, тато прыйде - сокырою поправыть.

  8. #8
    Заблокирован навсегда
    Регистрация
    10.12.2005
    Адрес
    Одесса
    Сообщений
    2,325
    Записей в дневнике
    1
    Позывной
    UR5FFR
    Цитата Сообщение от RX1AL
    Несколько проще все делается... Существует так называемое Zoom-FFT или преобразование Фурье в заданном окне. При этом могут быть использованы различные она: Ханнинг (Hanning) или Хемминг (Hemming). Перенос спектра в нулевую область не обязателен. Если есть MATLAB или LabView, то там данный алгоритм уже реализован готовыми функциями.
    гм. ну перед тем как чтото рекомендовать неплохо бы посмотреть что унутри так сказать а унутри на поверку - перенос к нулю в квадратуре, дальше фильтрация и фурье. т.е. то что я написал постом выше



    подробности тут http://www.numerix.co.uk/zoomfft.html

  9. #9
    Заблокирован навсегда
    Регистрация
    10.12.2005
    Адрес
    Одесса
    Сообщений
    2,325
    Записей в дневнике
    1
    Позывной
    UR5FFR

    Re: The Goertzel Algorithm

    Цитата Сообщение от UR5WHK
    мне видится наиболее оптимальным применение
    алгоритма Goertzel
    если мне не изменяет мой склероз герцель позволяет получить значение фурье коэфф с некоторым номером, но никак не спектр. применяется во всякого рода тональных детекторах и тп


  10. #10

    Регистрация
    26.02.2004
    Адрес
    Николаев
    Сообщений
    13,753
    Позывной
    UR5ZQV
    RX1AL
    Существует так называемое Zoom-FFT или преобразование Фурье в заданном окне.
    А ссылочку можно?
    Александр. (Ex: RB5ZDR, UQ2GKQ)

Страница 1 из 3 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Прямое преобразование-альтернативная ветка (только примитив)
    от ScorpiuS в разделе Техника прямого преобразования
    Ответов: 26
    Последнее сообщение: 16.03.2012, 15:44
  2. Преобразование Z смесителями в обратимых LC формирователях
    от vladn в разделе Техника прямого преобразования
    Ответов: 65
    Последнее сообщение: 14.06.2010, 08:59
  3. Аналого- цифровое преобразование в PIC16
    от ABCD в разделе Для начинающих
    Ответов: 8
    Последнее сообщение: 07.07.2006, 22:41

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •