Я пытаюсь найти решение в течение нескольких недель, и я действительно прочитал все темы, связанные с этой темой, поэтому я действительно надеюсь, что кто-то может помочь мне с этим. Фурье-преобразователь для работы. < /p>
вместо того, чтобы дать мне разумные результаты, я получаю только NAN-значения. < /p>
У меня есть следующий код: < /p>
public FFTPerformer(float[] soundvalues)
{
buffer = new System.Numerics.Complex[4096];
try {
for (int i = 0; i < 4096; i++)
{
System.Numerics.Complex tmp = new System.Numerics.Complex(soundvalues, 0);
buffer = tmp;
}
}
catch(Exception ex)
{
System.Windows.MessageBox.Show("Es ist ein Fehler bei der Konvertierung des float arrays zum Complex-Array aufgetreten; " + ex.Message);
}
}
< /code>
4096 обычно заменяется более высоким числом, которое все еще является силой, но даже не работает с этим. < /p>
public void performFFT()
{
try
{
MathNet.Numerics.IntegralTransforms.Fourier.Forward(buffer, MathNet.Numerics.IntegralTransforms.FourierOptions.Matlab);
}
catch(Exception ex)
{
System.Windows.MessageBox.Show("Fehler: " + ex.Message);
}
}
< /code>
Немного более подробное описание:
Я устанавливаю длину для значений 4096, потому что это фактор двух, и эта длина предназначена только для испытательных целей, так что это немного быстрее, чем использование исходного звука из некоторых миллионов ценностей;), так что это похоже на это, только до тех пор, пока альгорит не доказывается. Это также является причиной странной для петли. Даже Tough Math.net использует алгоритм Bluestein для расчета, попробуйте его с фактором из двух массивов, потому что они просто должны работать, даже если они используют какой-либо другой алгоритм атм. 4096 Комплексные числа В этом БПФ все они имеют y = 0, но X зависит от аудио-файла (читайте в другом потоке, что y-значения не нужны для аудио-FFT, поэтому вы должны установить их на 0). Все x-значения являются нормальными плавающими номерами, нет NANS. Но, тем не менее, FFT просто дает массив, полный NANS. Все еще получайте мои звуковые атмосферы и преобразуйте их в комплексную аварию. Я проверил все преобразования в соответствии с последовательностью, и в этой области все в порядке. Итак, мой вопрос: если я действительно должен использовать это только < /p>
MathNet.Numerics.IntegralTransforms.Fourier.Forward(buffer, MathNet.Numerics.IntegralTransforms.FourierOptions.Matlab);
< /code>
или, если мне нужно что -то, чтобы сделать это, чтобы сделать чистый FFT в math.net < /p>
Подробнее здесь: https://stackoverflow.com/questions/355 ... urier-work
Сделать Math.net Fourier работать ⇐ C#
Место общения программистов C#
1750424760
Anonymous
Я пытаюсь найти решение в течение нескольких недель, и я действительно прочитал все темы, связанные с этой темой, поэтому я действительно надеюсь, что кто-то может помочь мне с этим. Фурье-преобразователь для работы. < /p>
вместо того, чтобы дать мне разумные результаты, я получаю только NAN-значения. < /p>
У меня есть следующий код: < /p>
public FFTPerformer(float[] soundvalues)
{
buffer = new System.Numerics.Complex[4096];
try {
for (int i = 0; i < 4096; i++)
{
System.Numerics.Complex tmp = new System.Numerics.Complex(soundvalues[i], 0);
buffer[i] = tmp;
}
}
catch(Exception ex)
{
System.Windows.MessageBox.Show("Es ist ein Fehler bei der Konvertierung des float arrays zum Complex-Array aufgetreten; " + ex.Message);
}
}
< /code>
4096 обычно заменяется более высоким числом, которое все еще является силой, но даже не работает с этим. < /p>
public void performFFT()
{
try
{
MathNet.Numerics.IntegralTransforms.Fourier.Forward(buffer, MathNet.Numerics.IntegralTransforms.FourierOptions.Matlab);
}
catch(Exception ex)
{
System.Windows.MessageBox.Show("Fehler: " + ex.Message);
}
}
< /code>
Немного более подробное описание:
Я устанавливаю длину для значений 4096, потому что это фактор двух, и эта длина предназначена только для испытательных целей, так что это немного быстрее, чем использование исходного звука из некоторых миллионов ценностей;), так что это похоже на это, только до тех пор, пока альгорит не доказывается. Это также является причиной странной для петли. Даже Tough Math.net использует алгоритм Bluestein для расчета, попробуйте его с фактором из двух массивов, потому что они просто должны работать, даже если они используют какой-либо другой алгоритм атм. 4096 Комплексные числа В этом БПФ все они имеют y = 0, но X зависит от аудио-файла (читайте в другом потоке, что y-значения не нужны для аудио-FFT, поэтому вы должны установить их на 0). Все x-значения являются нормальными плавающими номерами, нет NANS. Но, тем не менее, FFT просто дает массив, полный NANS. Все еще получайте мои звуковые атмосферы и преобразуйте их в комплексную аварию. Я проверил все преобразования в соответствии с последовательностью, и в этой области все в порядке. Итак, мой вопрос: если я действительно должен использовать это только < /p>
MathNet.Numerics.IntegralTransforms.Fourier.Forward(buffer, MathNet.Numerics.IntegralTransforms.FourierOptions.Matlab);
< /code>
или, если мне нужно что -то, чтобы сделать это, чтобы сделать чистый FFT в math.net < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/35540086/make-math-net-fourier-work[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия