Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Нужны исходники БПФ (FFT) для обработки WAV


Автор: wiseland 17.3.2006, 13:45
Народ, помогите плз!!!
Мне нужны исходники FFT для обработки wav файла.
Просто алгоритм (и исходники) FFT уменя есть, но я уже 3 дня не могу никак с его помощью обработать wav файл.
Необходимо разложить PCM файл на частотные составляющие, потом обработать их и обратно преобразовать в wav файл.
Подробная задача: есть файл mp3, есть плейер, который проигрывает этот файл, необходимо сделать изменение тона во время воспроизведения файла.
Насколько я понимаю, чтобы сделать изменение тона звучания, необходимо манипулировать частотами (т.е. удалять высокие или низкие частоты в зависимости от понижения/повышения тона).
Я думаю, что напрямую такие изменения нельзя сделать с mp3 файлом во время воспроизведения (А МОЖЕТ Я НЕ ПРАВ?!, ПОДСКАЖИТЕ ТОГДА КАК И ЕЩЕ ЛУЧШЕ ПОМОГИТЕ ИСХОДНИКАМИ), поэтому хочу перевести mp3 файл в wav и сделать необходимые преобразования.
Повторюсь: надо это все сделать во время воспроизведения...
Буду ооочень признателен за помощь.
Исходники можно на мыло [email protected]
Заранее благодарен!

Автор: Romikgy 17.3.2006, 13:51
Цитата(wiseland @ 17.3.2006, 12:45 Найти цитируемый пост)
хочу перевести mp3 файл в wav

это и
Цитата(wiseland @ 17.3.2006, 12:45 Найти цитируемый пост)
все сделать во время воспроизведения

одновременно сделать невозможно

Цитата(wiseland @ 17.3.2006, 12:45 Найти цитируемый пост)
необходимо сделать изменение тона во время воспроизведения файла.
Насколько я понимаю, чтобы сделать изменение тона звучания, необходимо манипулировать частотами (т.е. удалять высокие или низкие частоты в зависимости от понижения/повышения тона).

изменение тона это не удаление частот а их сдвиг, вправо или влево
Цитата(wiseland @ 17.3.2006, 12:45 Найти цитируемый пост)
все сделать во время воспроизведения

А чем проигрываешь?

http://algolist.manual.ru/maths/fft.php
Добавлено @ 13:52
Цитата(wiseland @ 17.3.2006, 12:45 Найти цитируемый пост)
обработать wav файл.

структуру его посмотри

Автор: DRUID3 17.3.2006, 15:44
Цитата(Romikgy @ 17.3.2006, 13:51 Найти цитируемый пост)
изменение тона это не удаление частот а их сдвиг, вправо или влево
smile smile smile А может все-таки вверх (в высокие частоты) и вниз (к низким частотам)? Но думаю, человеку нужен именно эквалайзер. И все это можно легко сделать в реалтайме при воспроизведении, если уметь напрямую программить звуковуху... но я не умею smile А вообще тема работы с wav актуальна и для меня, smile .

P.S.: FFT крайне неэкономный алгоритм, работающий со всеми точками частотного преобразования (и экономичнее он только DFT работающего с таким же количеством точек, причем FFT в силу построения алгоритма не может быть для нескольких точек частотного интервала, и здесь гораздо экономичнее DFT. Мало того, частотное преобразование в фильтрации очевидно, и потому получило распространение во времена расцвета аналоговой обработки. Но почему программисты только дело коснется ЦОС, тянут это преобразование куда надо, и куда не надо? Эквалайзер, как набор фильтров с переменным коэффициентом передачи легко (много легче) реализуется во временной области...

Автор: Romikgy 17.3.2006, 16:50
Цитата(DRUID3 @ 17.3.2006, 14:44 Найти цитируемый пост)
А может все-таки вверх (в высокие частоты) и вниз (к низким частотам)?

это смотря как смотреть вверх или вправо, я представляю себе шкалу ФФТ преобразования, и у меня справа более высокие частоты
Цитата(DRUID3 @ 17.3.2006, 14:44 Найти цитируемый пост)
эквалайзер

Для сдвига тона не подойдет
сходите на dsp-book.narod.ru
там много чего по преобразованиям

Автор: DRUID3 17.3.2006, 17:34
Цитата(Romikgy @ 17.3.2006, 16:50 Найти цитируемый пост)
Для сдвига тона не подойдет
сходите на dsp-book.narod.ru
там много чего по преобразованиям


Да регулярно хожу, я сам занимаюсь ЦОС smile . Для сдвига по частоте нужен формирователь SSB, это понятно, просто мне кажется, автор не верно выразился.

Цитата(Romikgy @ 17.3.2006, 16:50 Найти цитируемый пост)
это смотря как смотреть вверх или вправо, я представляю себе шкалу ФФТ преобразования, и у меня справа более высокие частоты


Есть устоявшаяся терминология в физике, математике, музыке и ЦОС. И Право и лево там нет. Тем более, когда работают с комплексным спектром и представляют его на одном графике, уже такое обозначение не катит. Я не упрекаю, просто в шутке поправил...

Автор: Romikgy 18.3.2006, 00:11
Цитата(DRUID3 @ 17.3.2006, 16:34 Найти цитируемый пост)
формирователь SSB,

Это амплитудная модуляция?
Цитата(DRUID3 @ 17.3.2006, 16:34 Найти цитируемый пост)
Тем более, когда работают с комплексным спектром и представляют его на одном графике, уже такое обозначение не катит

почему? если брать от нуля, то вполне подходит, в понедельник можно будет это обсудить поплотнее smile

Автор: DRUID3 18.3.2006, 00:40
Цитата(Romikgy @ 18.3.2006, 00:11 Найти цитируемый пост)
Это амплитудная модуляция?


Учиться, учиться и еще раз учиться (В.И. Ленин)... Пока никакого "обсуждения" не выйдет... smile

Цитата(Romikgy @ 18.3.2006, 00:11 Найти цитируемый пост)
Тем более, когда работают с комплексным спектром и представляют его на одном графике, уже такое обозначение не катит


почему? если брать от нуля, то вполне подходит, в понедельник можно будет это обсудить поплотнее

...тот же совет. smile

Автор: Romikgy 18.3.2006, 20:37
Цитата(DRUID3 @ 17.3.2006, 23:40 Найти цитируемый пост)
Учиться, учиться и еще раз учиться

Чему?

Автор: DRUID3 18.3.2006, 21:52
ЦОСу smile

Автор: Romikgy 18.3.2006, 22:05
Дык и так знаю, хоть не все , но коечто smile
И в некоторых вопросах , могу даже поспорить

Автор: DRUID3 19.3.2006, 20:29
Цитата(Romikgy @ 18.3.2006, 22:05 Найти цитируемый пост)
Дык и так знаю
Ах, где же мой максимализм молодости!!!??? Куда улетучился??? smile smile smile

Автор: Romikgy 20.3.2006, 09:53
Цитата(DRUID3 @ 19.3.2006, 19:29 Найти цитируемый пост)
мой максимализм молодости

это к кому? в профилях посмотри smile

Автор: asmworm 23.3.2006, 00:27
Цитата(wiseland @ 17.3.2006, 13:45)
есть файл mp3, есть плейер, который проигрывает этот файл, необходимо сделать изменение тона во время воспроизведения файла

Хм smile проще не бывает, повторно использовать здесь FFT или DFT не имеет никакого смысла, потому что сам mp3 уже и является по-стью частотных компонент. Надо просто сделать префильтрацию mp3-сэмплов(изменять соответствующие частотные компоненты в сэмпле) перед передачей в декодировщик mp3 и всё.

в качестве хорошего примера могу посоветовать порыться в исходниках этой библиотеки. Она отлично справляется с декодировкой MP3 у меня на КПК и не используя при этом лишние преобразования DFT smile
http://www.underbit.com/products/mad/

Автор: wiseland 23.3.2006, 02:27
Цитата

Эквалайзер, как набор фильтров с переменным коэффициентом передачи легко (много легче) реализуется во временной области...


Я не встречал эквалайзеров, которые работали бы во временной области. Если можно, то поподробнее плз.

Цитата

в качестве хорошего примера могу посоветовать порыться в исходниках этой библиотеки

В исходниках я обязательно пороюсь, сенкс за ссылку.

И еще... может кто встречал готовую реализацию эквалайзеров, которую можно было бы заюзать. Буду учень благодарен.

Автор: Romikgy 23.3.2006, 09:31
Цитата(wiseland @ 23.3.2006, 01:27 Найти цитируемый пост)

Я не встречал эквалайзеров, которые работали бы во временной области. Если можно, то поподробнее плз.

КИХ и БИХ фильтры, только параметры их считать сложно
Цитата(wiseland @ 23.3.2006, 01:27 Найти цитируемый пост)
встречал готовую реализацию эквалайзеров

В какой области частотной или временной

Автор: DRUID3 23.3.2006, 10:27
smile {

Цитата(DRUID3 @ 19.3.2006, 19:29 Найти цитируемый пост)
мой максимализм молодости

это к кому? в профилях посмотри smile

Посмотрел, с прошедшим! Я тоже "рыбы" smile . Но я не обвинял кого-то в малолетстве и с паспортным возрастом это нисколько не связано. Это я о том, что когда-то считал что в чем-то разбираюсь... а теперь наоборот, и чем больше во что-то вгрузаю, тем сильнее так не считаю! smile Поверьте ЦОС бесконечен и неисчерпаем, так же как и атом. smile

SSB (Single Side Band) типо одна боковая полоса. По своей сути перенос физического спектра сигналов на более высокочастотный участок, при этом занимаемый частотный интервал (полоса) сохраняется. Формируется такая радость с помощью двух квадратурных генераторов (синус косинус) и преобразователя Гильберта (широкополосного фазовращателя, программно представляющего собой фильтр с хитроподобранными коэффициентами) который формирует широкополосные квадратурные каналы I и Q. Причем именно по этой схеме его можно реализовать аналоговым методом.
Во времена грозных броненосцев эта модуляция (такое уж название закрепилось из радиотехники) и вправду формировалась из АМ, а если точнее и БАМ (модулятор, соответственно, балансный), так как прямоугольности АЧХ кварцевых фильтров было недостаточно, для полного подавления несущей (идеальная SSB).

} smile

To: wiseland

Поверьте эквалайзеры восновном во временной области и работают. Берете любой учебник по ЦОС, раздел фильтрация и изучаете. Но как видите (коллеги по цеху подсказывают) в MPEG это может и не понадобиться, поэтому может видоизменим вопрос? Есть ли в сети учебники, хорошие статьи по МПЕГу на русском (или украинском smile ) сам в нем не сведущ но очень освоить хочу... К исходникам не отсылать, т.к. чтобы что-то ковырять нужно иметь начальные представления о предмете.

Автор: Romikgy 23.3.2006, 11:09
Цитата(DRUID3 @ 23.3.2006, 09:27 Найти цитируемый пост)
Но я не обвинял кого-то в малолетстве и с паспортным возрастом это нисколько не связано.

Гуд ... проехали smile

Цитата(DRUID3 @ 23.3.2006, 09:27 Найти цитируемый пост)
Поверьте ЦОС бесконечен и неисчерпаем, так же как и атом.

Пространная фраза , особенно об атомах
Цитата(DRUID3 @ 23.3.2006, 09:27 Найти цитируемый пост)
SSB (Single Side Band) типо одна боковая полоса

так и сокращалась ОБП
Цитата(DRUID3 @ 23.3.2006, 09:27 Найти цитируемый пост)
вправду формировалась из АМ, а если точнее и БАМ

не всегда были и разностные схемы

Имхо мпег здесь не причем, в названии темы сказано об вав! и про исходник БПФ!
Цитата(DRUID3 @ 23.3.2006, 09:27 Найти цитируемый пост)
Есть ли в сети учебники, хорошие статьи по МПЕГу

Что именно интересует реализация или что?

Автор: DRUID3 23.3.2006, 12:53
To: Romikgy


1) хоть что-то smile

2) это перефразировка классика диалектического материализма...

3) неужто радиотех?

4) что Вы говорите, и от чего же были разности, поведайте почтенной публике smile smile smile

5) но ведь коллективный разум возобладал над тьмой предрассудкоФФ и автор топика изменил свое мнение smile

P.S.:Romikgy Вы неисправимы - факт smile ...

Автор: Romikgy 23.3.2006, 13:20
Цитата(DRUID3 @ 23.3.2006, 11:53 Найти цитируемый пост)
хоть что-то

в смысле что?
Цитата(DRUID3 @ 23.3.2006, 11:53 Найти цитируемый пост)
это перефразировка классика диалектического материализма...

эт к чему?
Цитата(DRUID3 @ 23.3.2006, 11:53 Найти цитируемый пост)
неужто радиотех?

в смысле образования???? тогда я связист smile
Цитата(DRUID3 @ 23.3.2006, 11:53 Найти цитируемый пост)
что Вы говорите, и от чего же были разности, поведайте почтенной публике

был метод в оборудовании связи формировать ОБП фазоразностным методом
Цитата(DRUID3 @ 23.3.2006, 11:53 Найти цитируемый пост)
автор топика изменил свое мнение

где?
Цитата(DRUID3 @ 23.3.2006, 11:53 Найти цитируемый пост)
Romikgy Вы неисправимы - факт

мейьи йес мейби нот smile
Под неопровержимыми фактами я даже очень исправим smile

Автор: maxim1000 23.3.2006, 13:52
Модератор: а давайте обсуждение друг друга будем проводить где-нибудь еще, а то это как-то с алгоритмами не вяжется smile

Автор: DRUID3 23.3.2006, 19:57
To:maxim1000

Полностью согласен, потому оставлю только обсуждение метода формирования SSB (народу прогадиЦЦа smile ) хотя автор топика просил ЭКВАЛАЙЗЕР (!!!) на все остальные реплики отвечу сухими фразами.

To:Romikgy

1)хоть в чем-то убедил...

2) первоначальная фраза была очень к месту, читайте как мантру много-много раз подряд и в один прекрасный момент к вам снизойдет просветление...

3) инсвязи?...гут

4) Так, Romikgy, Вы поддаете сомнению мои знания в той области что есть продуктом моей деятельности. Причем необоснованно, что-то там слышав на лекциях.

Есть всего 4-е аналоговых метода формирования SSB:
фильтровый,
фазоразностный (это тот что я Вам и описАл!!!),
фазофильтровый (типо ПЧ = полоса сигнала/2)
и синтетический!
Два последних имели крайне редкое применение. И все оно вырождаются в один, фазоразностный(!!!), при программном формировании!!! Все это станет понятно, если над этим покурить, и разобраться что есть комплексный спектр сигнала, и что с ним можно делать. А не заявлять, мол, ЦОС я знаю, т.к. бываю на dsp-book.narod.ru. На данный момент ЦОС уже так велик и многогранен, что его весь не может знать никто, это труд огромного коллектива математиков, связистов, программистов и т.д. Но связист методы формирования SSB знать обязан.

5) а вот где: Дата 23.3.2006, 02:27 smile



Автор: asmworm 23.3.2006, 22:17
Цитата(DRUID3 @ 23.3.2006, 10:27)
Есть ли в сети учебники, хорошие статьи по МПЕГу  на русском (или украинском  smile  ) сам в нем не сведущ но очень освоить хочу... К исходникам не отсылать, т.к. чтобы что-то ковырять нужно иметь начальные представления о предмете.

не видел в сети стандартов C++,C,MPEG на русском, а уж тем более на украинском smile

вот на английском можно чтото нарыть полезное
http://www.mpeg.org/MPEG/mp3.html#resources

Автор: wiseland 24.3.2006, 01:22
Цитата

В какой области частотной или временной


Честно говоря, мне нужен эквалайзер, который изменял бы тон моего mp3 файла. А будет этот фильтр работать в частотной или временной области, мне все равно. Лишь бы работал smile ).

Автор: Romikgy 24.3.2006, 13:06
Дабы не остатся голословным ! Да простят меня модеры, это последний пост в этой теме (мой) .

Цитата(DRUID3 @ 23.3.2006, 18:57 Найти цитируемый пост)
хоть в чем-то убедил

Кого? Да уже и не важно.
Цитата(DRUID3 @ 23.3.2006, 18:57 Найти цитируемый пост)
инсвязи?...гут

нет в телекоммуникации (связи телефонной, и др.)

Цитата(DRUID3 @ 23.3.2006, 18:57 Найти цитируемый пост)
Вы поддаете сомнению мои знания в той области

ничего я не поддавал !
Цитата(DRUID3 @ 23.3.2006, 18:57 Найти цитируемый пост)
Причем необоснованно, что-то там слышав на лекциях.

Об этом не мне судить...
Цитата(DRUID3 @ 23.3.2006, 18:57 Найти цитируемый пост)
это тот что я Вам и описАл!!!

Вы описали метод, для обработки сигнала в цифровой текнике!, я же расказал в общем и для цифровой и для аналоговой
Цитата(DRUID3 @ 23.3.2006, 18:57 Найти цитируемый пост)
Два последних имели крайне редкое применение.

Сейчас да, но раньше пользовались и весьма удачно
Цитата(DRUID3 @ 23.3.2006, 18:57 Найти цитируемый пост)
А не заявлять, мол, ЦОС я знаю, т.к. бываю на dsp-book.narod.ru.

первое я ничего не заявлял , и второе , я просто посоветовал хороший (по моему мнению) сайт!
Цитата(DRUID3 @ 23.3.2006, 18:57 Найти цитируемый пост)
его весь не может знать никто

дык это относится и к Вам...

Цитата(DRUID3 @ 23.3.2006, 18:57 Найти цитируемый пост)
Но связист методы формирования SSB знать обязан.

И связист (по крайней мере Я) это знаю!!!!
Цитата(wiseland @ 24.3.2006, 00:22 Найти цитируемый пост)
мне нужен эквалайзер, который изменял бы тон моего mp3 файла

Если сам декодируешь мр3 то после дешифровки/рассжатия (может с терминами и ошибся) каждого отсчета частоты, умножай на коэф. эквалайзера,
если ты уже приобразовал файл а вав, тогда, создай КИХ фильтр на основе положения ползунков/значений эквалайзера, и тогда можно делать в онлайне (ну почти в нем)

Автор: mrgloom 16.8.2012, 09:50
может кто то пояснит картинку

user posted image

1. почему на левой картинке отклонение в 2 стороны? (можно предположить что симметрично одно и то же на 2 канала)
2. какая характеристика на левой картинке по Y?
3.правую картинку можно трактовать как гистограмму?
4. как поставить в соответствие левую и правую картинки если на правой нет времени?

Автор: ivan219 16.8.2012, 11:18
Цитата(mrgloom @  16.8.2012,  09:50 Найти цитируемый пост)
может кто то пояснит картинкуhttp://upload.wikimedia.org/wikipedia/comm...nd_spectrum.png1. почему на левой картинке отклонение в 2 стороны? (можно предположить что симметрично одно и то же на 2 канала)2. какая характеристика на левой картинке по Y?3.правую картинку можно трактовать как гистограмму?4. как поставить в соответствие левую и правую картинки если на правой нет времени?


1) Нет это один канал в котором имеются гармонические составляющие а они в свою очередь имеют колебания от -1..0..1 посмотрите как выглядит синус.
2) По Y амплитуда. И является зависимостью амплитуды от времени.
3) Это спектр. По Y амплитуда. Является зависимостью амплитуды от частоты.
4) Ни как левая у вас зависимость амплитуды от времени а правая амплитуда от частоты.
Единственно что мы можем сказать так это то что на интервале времени представленном в левой картинке есть соответствующие наборы гармоник которые представлены на правой картинке.

Что бы лучше это понять изучайте преобразование Фурье!

Автор: Фантом 16.8.2012, 12:22
Цитата(ivan219 @  16.8.2012,  12:18 Найти цитируемый пост)
2) По Y амплитуда. И является зависимостью амплитуды от времени.
3) Это спектр. По Y амплитуда. Является зависимостью амплитуды от частоты.

Не совсем. Там указаны децибелы в качестве единицы, так что это спектр мощности.

Автор: mrgloom 16.8.2012, 15:31
Цитата

 Нет это один канал в котором имеются гармонические составляющие а они в свою очередь имеют колебания от -1..0..1 посмотрите как выглядит синус.
2) По Y амплитуда. И является зависимостью амплитуды от времени.

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

Цитата

3) Это спектр. По Y амплитуда. Является зависимостью амплитуды от частоты.

частоты чего?  появления определенной амплитуды на левой картинке?

Цитата

4) Ни как левая у вас зависимость амплитуды от времени а правая амплитуда от частоты.
Единственно что мы можем сказать так это то что на интервале времени представленном в левой картинке есть соответствующие наборы гармоник которые представлены на правой картинке.

что в данном случае является гармоникой?

еще вопросы, только теперь про картинки.

что если я возьму картинку вырежу из неё часть помещу эту часть в (0,0) остальное дополню нулями и потом сравню фурье преобразование от изначальной картинки и полученной? вмысле какая в них будет наглядная зависимость?


насчет поворота
оригинал
user posted image
повернул на 34 градуса 
user posted image
оригинал
user posted image
повернул на -34 градуса
user posted image

предполагаю, что угол не равен из-за того, что повернутый прямоугольник смещен относительно центра изображения.


http://www.cse.iitd.ac.in/~parag/projects/DIP/asign1/transrotfft.shtml
а по теории должен быть равен.

Автор: Pavia 17.8.2012, 06:30
фантом скорее всего ошибся это не спектор мощности, а спектор напряжения. 

1. Амплитуда колебания может быть отрицательной. Смотри определение термина "Колебание".

По поводу прямоугольника. У тебя он криво повёрнут.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)