سؤال

أحاول حساب تواتر عملية صوت معينة من خلال الميكروفون على iPhone.

لقد قرأت جميع المنشور حول FFT (بما في ذلك جميع أمثلة كود Apple E.G Auriotouch، غير مكتوظ)، ولكن ليس محلول لهذه المشكلة.

أنا أستخدم Audioqueue، لكن كيف يمكنني اجتياز البيانات الأولية "AudioyueBufferref" من وظيفة رد الاتصال البحري (MyInputBufferhandler) Inbuffer-> Maudiodata.إلى Datatype fft "dspsplitcomplex" الفعلي، لذلك يمكنني حسابه.كل هذا باستخدام الإطار التسارع. giveacodicetagpre.

وظيفة FFT. giveacodicetagpre.

لم أجد في أي مكان حول كيفية القيام بذلك.الرجاء المساعدة!

هل كانت مفيدة؟

المحلول

يجب أن تعرف نوع بيانات C للبيانات في المخزن المؤقت للصوت وأنواع البيانات التي يدعمها FFT.إذا لم تكن هي نفسها (عادة ما يتم توقيعها 16 بت دون مقابل تعويم قصير)، فسيتعين عليك التحويل أثناء تفريغ ونسخ صفائف بيانات PCM (في حلقة).بالنظر إلى البيانات الحقيقية، يمكنك الصفر من الصفيف الوهمية من المدخلات إلى FFT.

أيضا، قد لا يكون طول المخزن المؤقت لقائمة انتظار الصوت هو طول FFFT، لذلك قد تضطر إلى حفظ البيانات من رد الاتصال بصوت انتظار الصوت إلى قائمة انتظار أخرى داخلية إلى تطبيقك، ولديه موضوع عامل آخرالبيانات إلى إجراءات التحليل / FFT الخاص بك كملء قائمة الانتظار.

نصائح أخرى

قيم السعة هي: giveacodicetagpre.

اطبعها بعد استخدام vdsp_fft_zrip ......

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top