سؤال

لقد حصلت على دفق صوتي بسرعة 44 كيلو هرتز من قرص مضغوط، ممثلًا بمجموعة من عينات PCM ذات 16 بت.أرغب في خفضه إلى تيار 11 كيلو هرتز.كيف يمكنني فعل ذلك؟منذ أيام دراستي في الهندسة منذ عدة سنوات، أعلم أن التدفق لن يكون قادرًا على وصف أي شيء يزيد عن 5500 هرتز بدقة بعد الآن، لذلك أفترض أنني أريد حذف كل شيء أعلى من ذلك أيضًا.أيه أفكار؟شكرًا.

تحديث:هناك بعض التعليمات البرمجية على هذه الصفحة يتم التحويل من 48 كيلو هرتز إلى 8 كيلو هرتز باستخدام خوارزمية بسيطة ومصفوفة معاملات تبدو مثل { 1, 4, 12, 12, 4, 1}.أعتقد أن هذا هو ما أحتاجه، ولكني أحتاجه بعامل 4x بدلاً من 6x.هل لديك أي فكرة عن كيفية حساب تلك الثوابت؟أيضًا، انتهى بي الأمر إلى تحويل عينات 16 بايت إلى عوامات على أي حال، حتى أتمكن من إجراء الاختزال باستخدام العوامات بدلاً من السراويل القصيرة، إذا كان ذلك يساعد في الجودة على الإطلاق.

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

المحلول

اقرأ عن مرشحات FIR وIIR.هذه هي المرشحات التي تستخدم مصفوفة ذات معامل.

إذا قمت بالبحث على Google عن "مصمم مرشح FIR أو IIR" فستجد الكثير من البرامج والتطبيقات عبر الإنترنت التي تقوم بالمهمة الصعبة (الحصول على المعاملات) نيابةً عنك.

يحرر:

هذه الصفحة هنا ( http://www-users.cs.york.ac.uk/~fisher/mkfilter/ ) يتيح لك إدخال معلمات الفلتر الخاص بك وسيظهر جاهزًا لاستخدام C-Code...

نصائح أخرى

وأنت على حق في أن تحتاج إلى تطبيق التصفية أم بي على الإشارة. فإن أي إشارة على 5500 هرتز تكون موجودة في الإشارة downsampled لكن 'مستعارة' كما تردد آخر وهكذا لن تضطر لإزالة هذه قبل الاختزال.

وانها فكرة جيدة للقيام تصفية مع عوامات. هناك نقطة ثابتة مرشح خوارزميات جدا ولكن هذه بشكل عام المفاضلات الجودة في العمل. إذا كنت قد حصلت على عوامات ثم استخدامها!

وعن طريق لDFT لتصفية غير مبالغة عموما، ويجعل الأمور أكثر تعقيدا لأن لتجهيز الدوائر ليست عملية contiuous ولكن العمل على مخازن.

مرشحات تأتي

والرقمية عموما في اثنين من الأذواق. منطقة معلومات الطيران وشركة آي آي آر. The're عموما نفس الفكرة ولكن المرشحات معهد التمويل الدولي استخدام التعليقات حلقات لتحقيق استجابة أكثر حدة مع أقل بكثير معاملات. هذا قد يكون فكرة جيدة لالاختزال لأنك بحاجة مرشح منحدر حاد جدا هناك.

والاختزال هو نوع من حالة خاصة. لأنك ذاهب لرمي بعيدا 3 من 4 عينات وليس هناك حاجة لحساب لهم. هناك فئة خاصة من المرشحات لهذا تسمى مرشحات الأطوار.

وحاول غوغلينغ لشركة آي آي آر الأطوار أو FIR الأطوار لمزيد من المعلومات.

لاحظ (بالإضافة إلى التعليقات الأخرى) أن النهج البسيط السهل البديهي "اختزل بعامل 4 عن طريق استبدال كل مجموعة مكونة من 4 عينات متتالية بالقيمة المتوسطة"، ليس الأمثل ولكنه مع ذلك ليس خطأ، ولا عمليا ولا مفاهيميا.لأن المتوسط ​​يصل على وجه التحديد إلى مرشح تمرير منخفض (نافذة مستطيلة، والتي تتوافق مع قيمة التردد).ما قد يكون خطأ من الناحية المفاهيمية هو مجرد الاختزال عن طريق أخذ واحدة من كل 4 عينات:من شأنه أن يقدم بالتأكيد التعرجات.

بالمناسبة:عمليا أي برنامج يقوم ببعض إعادة التشكيل (الصوت أو الصورة أو أي شيء آخر؛مثال لحالة الصوت:sox) يأخذ ذلك في الاعتبار، ويتيح لك في كثير من الأحيان اختيار مرشح الترددات المنخفضة الأساسي.

وتحتاج إلى تطبيق عامل تصفية أم بي قبل أن باختزال إشارة لتجنب "التعرج". يجب أن تكون وتيرة قطع للمرشح أم بي أقل من وتيرة نايكست، وهو نصف تردد العينة.

العملية التي تلاحقها تسمى "التدمير".هناك خطوتين:

  1. تطبيق مرشح تمرير منخفض على البيانات (في حالتك LPF مع قطع عند Pi / 4).
  2. الاختزال (في حالتك أخذ عينة واحدة من أصل 4 عينات).

هناك العديد من الطرق لتصميم وتطبيق مرشح الترددات المنخفضة.

يمكنك البدء هنا:

http://en.wikipedia.org/wiki/Filter_design

هل يمكن الاستفادة من libsamplerate للقيام رفع الأحمال الثقيلة. Libsamplerate هو API C، ويعتني حساب معاملات التصفية. لك لاختيار من المرشحات نوعية مختلفة بحيث يمكنك مقايضة الجودة للسرعة.

إذا كنت تفضل عدم كتابة أي رمز، هل يمكن أن مجرد استخدام جرأة للقيام التحويل معدل عينة . وهو يوفر واجهة المستخدم الرسومية قوية، ويجعل من استخدام libsamplerate لانها معدل التحويل عينة.

وأود أن محاولة تطبيق DFT، تقطيع 04/03 من النتيجة وتطبيق معكوس DFT. لا استطيع ان اقول اذا كان ذلك يبدو جيدا دون أن يحاول في الواقع صعبة.

الحل "الأفضل" الممكن هو في الواقع DFT، مع التخلص من 3/4 الجزء العلوي من الترددات، وإجراء DFT معكوس، مع تقييد المجال إلى 1/4 السفلي.يعد التخلص من 3/4 الجزء العلوي بمثابة مرشح تمرير منخفض في هذه الحالة.من المحتمل أن يمنحك الحشو لقوة عددين من العينات ميزة السرعة.كن على دراية بكيفية قيام حزمة FFT الخاصة بك بتخزين العينات.إذا كان تحويل FFT معقدًا (وهو أسهل بكثير في التحليل، وله خصائص أفضل بشكل عام)، فستنتقل الترددات إما من -22 إلى 22، أو من 0 إلى 44.في الحالة الأولى، تريد الربع الأوسط.وفي الأخير، الأبعد 1/4.

يمكنك القيام بعمل مناسب عن طريق حساب متوسط ​​قيم العينة معًا.إن الطريقة الساذجة المتمثلة في الحصول على عينات أربعة في أربعة وإجراء متوسط ​​مرجح متساوٍ تعمل، ولكنها ليست رائعة جدًا.بدلاً من ذلك، ستحتاج إلى استخدام وظيفة "kernel" التي تقوم بحساب متوسطها معًا بطريقة غير بديهية.

رياضيًا، يعتبر التخلص من كل شيء خارج نطاق التردد المنخفض بمثابة ضرب بوظيفة مربعة في مساحة التردد.يحول تحويل فورييه (المعكوس) الضرب النقطي إلى مجموعة من تحويلات فورييه (المعكوسة) للوظائف، والعكس صحيح.لذا، إذا أردنا العمل في المجال الزمني، فنحن بحاجة إلى إجراء تحويل باستخدام تحويل فورييه (المعكوس) لدالة الصندوق.يتبين أن هذا يتناسب مع الدالة "sinc" (sin at)/at، حيث a هو عرض الصندوق في مساحة التردد.لذلك في كل موقع رابع (نظرًا لأنك تقوم بالاختزال بعامل 4) يمكنك إضافة النقاط القريبة منه، مضروبة في sin (a dt) / a dt، حيث dt هي المسافة الزمنية لذلك الموقع.كيف القريبة؟حسنًا، هذا يعتمد على مدى جودة الصوت التي تريدها.من الشائع تجاهل كل شيء خارج الصفر الأول، على سبيل المثال، أو اعتبار عدد النقاط هو النسبة التي تقوم باختزالها.

أخيرًا، هناك الطريقة الضعيفة (لكن السريعة) المتمثلة في التخلص من غالبية العينات، مع الاحتفاظ فقط بالصفر والرابع وما إلى ذلك.

بصراحة، إذا كان الأمر مناسبًا للذاكرة، فإنني أوصي بالذهاب إلى مسار DFT.إذا لم يستخدم إحدى حزم برامج التصفية التي أوصى بها الآخرون لإنشاء عامل التصفية لك.

وكنت مؤخرا قد جاء عبر BruteFIR حيث قد يحدث بالفعل بعض ما كنت مهتما؟

لديك لتطبيق تمرير منخفض تصفية (إزالة ترددات فوق 5500 هرتز) ومن ثم تطبيق هلاك (ترك كل عينة نطة، كل 4 في حالتك).

لهلاك، والتنوب، وعادة ما توظف مرشحات لا آي آي آر، لأنها لا تعتمد على النتائج السابقة، وبالتالي لم يكن لديك حساب أي شيء للحصول على عينات التخلص منها. IIRS، عموما، يعتمد على كل من المدخلات والمخرجات، لذلك، ما لم يتم استخدام نوع معين من آي آي آر، وكنت قد لحساب كل عينة الانتاج قبل رميه 3/4 منهم.

وفقط غوغليد مقال على مستوى مقدمة حول هذا الموضوع: HTTPS: // شبكة الاتصالات العالمية. dspguru.com/dsp/faqs/multirate/decimation

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