سبد خرید خالي مي باشد

تبدیل نرخ نمونه برداري صدا (Sampling Rate conversion)

(0 رای‌ها)

چکیده

براي سيستم‌هاي مختلف در زمينه صداي ديجيتال نرخ نمونه برداري مختلفي وجود دارد. به طور مثال براي سيستم‌هاي پخش حرفه‌‌اي از نرخ نمونه برداري 48 KHz وبرای سیستم­‌های غیر حرفه­‌ای از نرخ نمونه­‌برداری 44.1 KHz استفاده مي‌شود. براي متصل كردن سيستم‌هايي كه نرخ نمونه برداري متفاوتي دارند لازم است تا بتوان از يك بسته صدا با نرخ نمونه برداري خاص به يك بسته‌ي صداي ديگر با نرخ نمونه برداري ديگر رسيد. به اين عمل تبديل (Sample Rate Convertion) گفته مي‌شود. روش­‌های تبديل نرخ نمونه برداری به دو دستهکلی تبديل همزمان (Synchronous) با ضريب L/M و تبديل غیر همزمان(ASynchronous) تقسيم مي‌شود. در اين مقاله به روش­‌هایتبديل همزمان پرداخته شده و یک روش مناسب برای بالا بردن سرعت تبدیل و کاهش حافظه مورد نیاز ارائه خواهد شد.

مباني تبديل نرخ نمونه برداري

تبديل نرخ نمونه برداري به دو بخش UP Sampling و Down Sampling تقسيم مي‌شود. براي انجامUp Sampling به Anti-Imaging و براي down Sampling به Anti-Aliasing نياز مي‌باشد براي انجام عمل Anti-Imaging و Anti-Aliasing احتياج است تا يك سري از فركانس‌هاي اضافه حذف شود براي همين منظور بايد از تبديل فوریه براي تغيير از حالت زمان به حالت فركانس ، طبق فرمول تبديل فوریه به شرح زير استفاده ­شود.

و یا

براي افزایش نرخ نمونه­ برداری سيگنال  با ضريب L بايد اول به شرح زير تشكيل شود.

بر اثر افزایش تعداد نمونه­ ها نسبت به  یک سری فرکانس بزرگتر از L را به خود اضافه کرده است. براي حذف فركانس‌هاي اضافی بوجود آمده بايد اطلاعات را با‌  کانولوشن كنيم يا بعبارت ديگر بايد در حالت فوریه آنرا در  ضرب كرد. كه به شرح زير است:

همان‌گونه كه در فرمول بالا ملاحظه مي‌شود فركانس‌هاي بيش از حذف مي‌شود. به عملي كه در بالا انجام شد تا فركانس‌هاي بالاتر از  را حذف كند در اصطلاح Anti-Imaging گفته مي‌شود.

 

براي كم كردن نرخ نمونه برداري سيگنال ديجيتال لازم است تا برعکس روال افزایش نرخ نمونه­ برداری عمل شود يعني بايد اول عمل Anti-Aliasing انجام شده و در ادامه تعدادي از نمونه­‌ها حذف شود براي انجام اين مطلبكم كردن نرخ نمونه برداري با ضريب M (لازم است تا اطلاعات در تابع زير ضرب شود:

با انجام اين عمل فركانس‌هاي بالای M از بين مي‌رود زيرا سيگنال به وجود آمده جديد ديگر نمي‌تواند فركانس بالاي M را نگهداري كند. بعد از انجام اين عمل مي‌توان عمل كم كردن تعداد نمونه‌ها را انجام داد.

تغییر نرخ نمونه برداري

برای پیاده­ سازی روش­‌های کاهش یا افزایش نرخ نمونه ­برداری مخصوصا برای فرکانس­‌های حرفه­‌ای دو مشکل اساسی وجود دارد یکی بزرگ بودن بافر میانی و دیگری زمان­‌بر بودن آن می­‌باشد. این ویژگی­‌ها در سیستم­‌های سریع موجب کندی شده و مانع کارآمدی می­‌شود. برای حل مسئله روش­‌های کارآمد و در عین حال ساده­ تری به کار گرفته می­‌شود.

روش مورد نظر با یک مثال توضیح داده می­ شود.

فرض مي‌شود صدايي با فرمت wave مشخصات زیر موجود است.

Sample Rate: 8000Hz

Bit per Sample: 16 bit

Channel count: 2

صدای خواسته شده با مشخصات به شرح زير مي‌باشد.

Sample Rate: 48000Hz

Bit per Sample: 16 bit

Channel count: 1

همان‌گونه كه در مثال بالا مشاهده مي‌­شود خروجي از هر نظر با ورودي متفاوت است براي حل اين مسئله بايد اطلاعات ورودي از چند فيلتر به شرح زیر عبور كند.

 

 


 


شکل(1)

مجموعه فیلترهای تغییر نرخ نمونه­ برداری

 

طبق شكل بالا در ابتدا اطلاعات ورودي براي پردازش توسط قسمت‌هاي بعدي از فرمت فايل wave (که به صورت عدد صحیح می­‌باشد)به فرمت ممیز شناور تبديل مي‌شود در ماجول­‌هایي كه عمل پردازش سيگنال را انجام مي‌دهند معمولاً از فرمت ممیز شناور استفاده مي‌شود. در ادامه با استفاده از Wave Resamplerنرخ نمونه‌برداري سيگنال تغيير مي‌كند. در مرحله بعدي در صورت لزوم اطلاعات صدا با هم Mix مي‌شوند و در آخر اطلاعات بدست آمده از فرمت داده ممیز شناور به فرمت فايل wave تبديل مي‌شود.

1-   فيلتر Wave Data To Floating-Point:

اين فيلتر سه نرخ بیت(Bit Rate)PCM wave كه 8bit و 16bit و 24bit مي‌باشد را به فرمت ممیز شناور تبديل مي‌كند. نكته مهم در اين تبديل اين است كه در مدل 16 بيتي و 24 بيتي اطلاعات به صورت مكمل 2 ذخيره مي­‌شود. اما در مدل 8 بيتي روش ديگري را براي ذخيره اطلاعات دارد كه در آن اطلاعات از 128- تا 127 روي 0 تا 255 قرار مي‌گيرد به عبارت ديگر عدد (7F)16 در يك مدل 8 بيتي معادل صفر مي‌باشد.

2-   فيلتر Wave Splitter:

اين فيلتر اطلاعات را براساس تعداد كانال ورودي دسته بندي مي‌كند به عبارت ديگر براي هر كانال يك بافر مجزا درست مي‌كند.

3-   فيلتر Wave Resampler:

اين فيلتر مسئوليت تبديل نرخ نمونه برداري را دارد كه در اين مقاله به طور خاص به آن پرداخته مي‌شود. براي انجام این كار لازم است تا اطلاعات به حوزه‌ي فركانس برده شود(برای انجام این کار لازم است تا از تبدیل فوریه سریع با اندازه بافر متفاوت استفاده شود). و با تغيير اندازه‌ي بافر به حوزه‌ي زمان برگردانده شود.

فرض شود در مثال گفته شده لازم باشد تا يك ثانيه از اطلاعات را Resample شود. اطلاعات بعد از عبور از فيلترهاي تبدیل به ممیز شناور و تکه کننده به اين فيلتر رسيده است. اين فيلتر نيز براي انجام كار خود از چند فیلتر دیگر به شرح زير استفاده مي‌كند.

 

 

 
 

 

 


شکل(2)

فیلترهای داخلی Wave Resampler

 

در این فیلتر داده­‌های دریافتی پس از تبدیل فوریه در قسمت Repacker تبدیل نرخ نمونه­ برداری می­ شود.

به اندازه نصف Min(InputSize,OutputSize) از ابتداي ورودي در ابتداي خروجي ذخيره مي‌شود و به همين اندازه از آخر ورودي در آخر خروجي ذخيره مي‌شود. با انجام اين عمل بافر جديد عكس تبديل فوریه دلخواه مي‌شود. لذا با انجام یک تبدیل فوریه عکس به حوضه زمان برگردانده می­ شود.

همان­‌گونه که در شکل شماره 3 تا 8 مشاهده می­‌شود عملی که در شکل شماره 2 بیان شد به طور عملی انجام شده است

شکل(3)

اطلاعات ورودی-یک ثانیه-نرخ نمونه­ برداری HZ8000

 

شکل(4)

قسمت موهومی تبدیل فوریه

شکل(5)

قسمت حقیقی تبدیل فوریه

 

 

شکل(6)

قسمت موهومی تبدیل فوریهبعد از تغییر اندازه بافر

شکل(7)

قسمت حقیقی تبدیل فوریهبعد از تغییر اندازه بافر

 

شکل(8)

اطلاعات خروجی-یک ثانیه-نرخ نمونه‌برداری HZ48000

 

4-   فيلتر Wave Mixer:

اين فيلتر مسئوليت دسته بندي اطلاعات را براساس كانال‌ها دارد. به عبارت ديگر اطلاعات جدا شده درwave splitter را به هم مي‌چسباند.

5-   فيلتر Floating-Point to Wave Data:

در اين فيلتر اطلاعات به Wave Data تبديل مي‌شود براي اطلاع بيشتر به قسمت 1 مراجعه شود.

اما نكته مهم در انجام اين كار احتمال سرریز كردن اطلاعات در اثر تبديل است كه براي حل این مشکل بايد اطلاعات بزرگ را براي تبديل از ممیز شناور به اطلاعات 16 بيتي ، اطلاعات بزرگتر از (0FFA)16 با(0FFA)16 عوض شود. براي اعداد منفي نيز چنين كاري لازم مي‌باشد.

 

نتیجه­ گیری

روش عملی ارائه شده قابلیت استفاده در نرم­‌افزارهای پخش را دارا می­‌باشد. و در سیستم‌های حرفه‌­ای دیگر نیز قابل استفاده می­‌باشد. روش عملی ارائه شده نسبت به روش کلاسیک حدودا 50 بار سریعتر می‌­باشد. بنابراین به صورت زنده در سیستم­‌های صدا همزمان با پخش یا ضبط قابل استفاده می­‌باشد.

نویسنده:

آرش جعفرزاده

 


نظر دادن

 

 

 

 .کلیه حقوق مطالب برای شرکت سامانه های عصر تمدن2024 © محفوظ است