IFFT Синтез из пустого спектра

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

Мой вопрос заключается в том, как мне создать массив спектров комплексных значений для IFFT, когда все, что у меня есть, это значения амплитуды?

Я знаю, что ячейки 0 и 1 имеют нулевое значение. Я пытался визуализировать волну, вычисляя только величины и фазы для значимых ячеек, содержащих ненулевые величины. Могу ли я поместить белый шум в оставшиеся ячейки амплитуды, а затем рассчитать сопутствующие фазы на центральной частоте? Заранее спасибо за ваш вклад.


person cixelsyd    schedule 25.06.2015    source источник
comment
Это больше вопрос теории DSP, чем вопрос программирования - он действительно относится к dsp.stackexchange.com   -  person Paul R    schedule 25.06.2015
comment
Спасибо, Пол. я сделаю это   -  person cixelsyd    schedule 25.06.2015


Ответы (1)


Мой вопрос заключается в том, как мне создать массив спектров комплексных значений для IFFT, когда все, что у меня есть, это значения амплитуды?

извините за четкий ответ: никак. Ваши значения должны быть сложными, поэтому вы должны предложить пользователю способ ввода сложных значений. Предоставление пользователю возможности указать величину дает лишь половину свободы, необходимой ему/ему для указания произвольных форм волны.

person Marcus Müller    schedule 25.06.2015
comment
Я понимаю, что числа должны быть комплексными. Я не пытаюсь IFFT спектр только величин. Я вычисляю фазы для величин › 0. Если то, что вы говорите, правда, как мог бы существовать такой синтезатор, как K5000? Он предоставляет пользовательский интерфейс, в котором пользователь может изменять величины без необходимости редактирования фаз? - person cixelsyd; 25.06.2015
comment
Я не знаю устройства под названием K5000, но мы оба согласны с тем, что информации об амплитуде недостаточно для воспроизведения определенной формы волны с использованием IFFT. Таким образом, в вашем подходе отсутствует половина информации. Может быть, что К5000 делает не IDFT, а что-то вроде IDCT? - person Marcus Müller; 25.06.2015
comment
Спасибо за ответ Маркус. Если я вычисляю фазы для величин › 0 на основе частоты нот, как я могу подходить к вычислению бинов между ними? это случайные числа? Кажется, это результат моих усилий по анализу БПФ. - person cixelsyd; 25.06.2015
comment
Честно говоря, я не знаю, на каком основании вы рассчитываете фазы или какова ваша цель. Для меня ДПФ — это отображение между N-мерным векторным пространством над комплексными числами в другое N-мерное векторное пространство над комплексными числами. Если вы даете только реальные цифры и не ограничиваете набор результатов, которые вы хотите получить, я не понимаю, как есть правильные фазы. - person Marcus Müller; 26.06.2015