مهندسی بی‌نهایت: شزم؛ تجلی قدرت فیزیک در دنیای موسیقی

مهندسی بی‌نهایت: شزم؛ تجلی قدرت فیزیک در دنیای موسیقی

مهندسی بی‌نهایت: شزم؛ تجلی قدرت فیزیک در دنیای موسیقی فهرست مطالب

آیا تاکنون در خصوص سازوکار سرویس تشخیص موسیقی شزم کنجکاو شده‌اید؟ با توجه به مقاله‌ی پژوهشی منتشرشده توسط یکی از بنیان‌گذاران شزم، به‌نام آوری لی-چون، فرآیندی موسوم به «شناسایی هویت صوتی»، پایه‌ی تمام پردازش‌های صورت‌گرفته در پس سرویس شزم محسوب می‌شود؛ اما شناسایی هویت صوتی به چه مفهوم است؟ با زومیت همراه باشید تا سازوکار شزم را زیر ذره‌بین قرار دهیم.

برای درک آنچه در این مقالات خواهد آمد، باید به‌صورت ابتدایی با مفاهیمی همچون پردازش سیگنال آشنا شویم؛ از این رو در ابتدا کار خود را با مفاهیم پایه‌ای تئوری موسیقی و پردازش سیگنال آغاز می‌کنیم و با مکانیزم‌های موجود در بطن شزم، آن را به پایان می‌رسانیم. برای مطالعه‌ی این مجموعه‌ی مقالات به دانشی نیاز نخواهید داشت؛ اما از آنجایی که با علوم کامپیوتر و ریاضیات درگیر خواهیم بود، بهتر است که پس‌زمینه‌ی علمی مناسبی را به‌خصوص برای مطالعه‌ی بخش‌های پایانی داشته باشید. چنانچه با واژه‌هایی همچون اُکتاو، فرکانس، نمونه‌برداری و نشت طیفی آشنایی دارید، می‌توانید از مطالعه‌ی بخش اول صرف‌نظر کنید. شما می‌توانید از فهرست مطالب برای دسترسی سریع‌تر به موضوعات استفاده کنید.

موسیقی و فیزیک

صوت، ارتعاش یا موجی است که از طریق هوا یا آب منتشر شده و توسط گوش ادراک می‌شود؛ به‌عنوان مثال هنگامی که در حال گوش‌دادن به موسیقی هستید، هدفون‌ها ارتعاشاتی را تولید می‌کنند که تا زمان رسیدن به گوش شما، از طریق هوا منتشر می‌شوند. از دیدگاه موجی، نور نیز یک ارتعاش محسوب می‌شود؛ اما به‌جای گوش، چشم توانایی ادراک آن را دارد. یک ارتعاش را می‌توان از طریق موج‌های سینوسی‌ مدل‌سازی کرد. در این قسمت سعی داریم تا با چگونگی توصیف فیزیکی و فنی موسیقی آشنا شویم.

تن خالص در برابر صوت حقیقی

تن خالص، تُنی با شکل موج سینوسی است، امواج سینوسی توسط مشخصه‌های زیر توصیف می‌شود:

فرکانس موج: تعداد سیکل‌ها در هر ثانیه با واحد هرتز (Hz)، به‌عنوان مثال ۱۰۰ هزتر معادل ۱۰۰ سیکل در هر ثانیه است دامنه‌ی موج (مرتبط با بلندی صوت): ابعاد هر سیکل

مشخصه‌های یادشده توسط گوش انسان در قالب صوت ادراک می‌شود. گوش انسان در بهترین حالت،‌ تن‌های خالص با فرکانس ۲۰ تا ۲۰٬۰۰۰ هرتز را می‌شنود؛ اما این بازه با گذر زمان و افزایش سن انسان، محدودتر می‌شود. برای مقایسه باید اشاره کنیم که نور از موج‌های سینوسی با فرکانس بین ۱۰۱۴ × ۴ تا ۱۰۱۴ × ۷.۹ هرتز تشکیل می‌شود.

شما می‌توانید محدوده‌ی شنوایی خود را با ویدیوی زیر بررسی کنید، این ویدیو، تمام تن‌های حقیقی بین ۲۰ هرتز تا ۲۰ کیلوهرتز را تولید می‌کند. من در این ویدیو قادر به شنیدن محدوده‌ی ۲۰ تا ۱۸ هزار هرتز بودم.

ادراک انسان از بلندی صدا به فرکانس تن خالص بستگی دارد؛ به‌عنوان مثال، یک تن خالص با دامنه‌‌ی ۱۰ و فرکانس ۳۰ هرتز، آرام‌تر از تن خالص دیگری با دامنه‌ی ۱۰ و فرکانس ۱۰۰۰ هرتز به گوش می‌رسد. گوش انسان از یک مدل سایکوآکوستیک تبعیت می‌کند که در این مقاله می‌توانید، اطلاعات بیش‌تری را درباره‌ی آن به‌دست آورید. در تصویر زیر می‌توانید نمونه‌ای از یک موج سینوسی با فرکانس ۲۰ هرتز و دامنه‌ی یک را مشاهده کنید:

موج سینوسی با فرکانس ۲۰ هرتز

باید بدانید که تن‌های خالص در دنیای واقعی وجود ندارند و آنچه ما به‌صورت روزمره می‌شنویم، ترکیبی از چندین تن خالص با دامنه‌های متفاوت است.

ترکیبی از چند موج سینوسی

در تصویر بالا می‌توانید نمونه‌ای از صدای حقیقی را مشاهده کنید که از ترکیب چندین موج سینوسی شکل گرفته است:

یک موج سینوسی خالص با فرکانس ۲۰ هرتز و دامنه‌ی یک؛ یک موج سینوسی خالص با فرکانس ۴۰ هرتز و دامنه‌ی ۲؛ یک موج سینوسی خالص با فرکانس ۸۰ هرتز و دامنه‌ی ۱.۵؛ یک موج سینوسی خالص با فرکانس ۱۶۰ هرتز و دامنه‌ی یک؛

صداهای واقعی می‌توانند ترکیبی از هزاران تن خالص باشند.

نت‌های موسیقی

هر قطعه‌ی موسیقی حاصل مجموعه‌ای از نت‌ها است که در زمان به‌خصوصی اجرا می‌شوند، هرکدام از این نت‌ها مدت‌زمان و بلندی منحصربه‌فردی دارند.

نوت موسیقی

مجموعه‌ی نت‌ها در قالب اکتاو‌هایی تقسیم می‌شوند. در کشورهای غربی، هر اکتاو، مجموعه‌ای از ۸ نت (ای، بی‌، سی، دی، ایی، اف، جی در بسیاری از کشورهای انگلیسی‌زبان و دو – ر – می – فا – سُل – لا – سی در کشورهای لاتین غربی) محسوب می‌شود. ویژگی اکتاوها بدین شرح است:

فرکانس هر نت در یک اکتاو در اکتاو بعدی دو برابر می‌شود؛ به‌عنوان مثال فرکانس A4 (نت A در اکتاو چهارم) در ۴۴۰ هرتز دو برابر فرکانس A3 (نت A در اکتاو سوم) در ۲۲۰ هرتز بوده و چهار برابر فرکانس A2 (نت A در اکتاو دوم) در ۱۱۰ هرتز است.

بسیاری از آلات موسیقی، بیش از ۸ نت را در اکتاوها فراهم می‌کنند، چنین نت‌هایی سِمی‌تُن یا نیم‌‌پرده نامیده می‌شوند.

اکتاو

برای اکتاو چهارم (یا اکتاو سوم در کشورهای لاتین غربی)، فرکانس نت‌ها بدین شکل است:

C4 (Do3) = ۲۶۱.۳ هرتز D4 (Re3) = ۲۹۳.۶۷ هرتز E4 (Mi3) = ۳۲۹.۶۳ هرتز F4 (Fa3) = ۳۴۹.۲۳ هرتز G4 (Sol3) = ۳۹۲ هرتز A4 (La3) = ۴۴۰ هرتز B4 (Si3) = ۴۹۳.۸۸ هرتز

اگرچه ممکن است عجیب به‌نظر برسد؛ اما حساسیت فرکانسی گوش انسان، لگاریتمی است؛ بدین مفهوم:

بین ۳۲.۷۰ هرتز و ۶۱.۷۴ هرتز (اکتاو اول) یا بین ۲۶۱.۶۳ هرتز و ۴۶۶.۱۶ هرتز (اکتاو چهارم) یا بین ۲۰۹۳ هرتز و ۳۹۵۱.۰۷ هرتز (اکتاو هفتم)

گوش‌های انسان قادر به تشخیص تعداد یکسانی از نت‌ها هستند. خاطرنشان می‌کنیم که نت‌  A4/La3 در فرکانس ۴۴۰ هرتز، مرجعی استاندارد برای کالیبره‌سازی ابزار آکوستیک و آلات موسیقی محسوب می‌شود.

طنین

نواختن یک نت با گیتار، پیانو، ویولون یا یک هنرمند، به تولید صدای یکسانی منجر نمی‌شود؛ زیرا هر آلت موسیقی، طنین منحصربه‌فردی برای یک نت دلخواه دارد. برای هر آلت موسیقی، صدای تولیدشده، انبوه فرکانس‌هایی است که مشابه یک نت دلخواه (نام علمی نت موسیقی، نواک است) به گوش می‌رسند. این صدا، یک فرکانس پایه‌ (کم‌ترین فرکانس) و چندین Overtone یا نت فرعی (هر فرکانسی بالاتر از فرکانس پایه) را در برمی‌گیرد.

بسیاری از آلت‌های موسیقی صداهای نزدیک به هارمونیک (همساز) را تولید می‌کنند. برای چنین ابزارهایی، نت‌های فرعی، چندین فرکانس پایه با نام هارمونیک هستند؛ به‌عنوان مثال، ترکیب تن‌های خالص A2 (پایه)، A4 و A6 هارمونیک هستند؛ اما ترکیب تن‌های خالص A2، B3 و F5 غیرهارمونیک یا ناهمساز است. بسیاری از سازهای کوبه‌ای، مانند درام یا سنج، صداهای غیرهارمونیک تولید می‌کنند.

خاطرنشان می‌کنیم که نواک (نت موسیقی ادراک‌شده)، ممکن است در صدای تولیدشده توسط یک ساز به‌خصوص وجود نداشته باشد؛ به‌عنوان مثال، چنانچه یک ساز صدایی با تن‌های خالص A4، A6 و A8 را تولید ‌کند، مغز انسان صدای حاصل را در قالب یک نت A2 تشریح می‌کند. در حالتی که پایین‌ترین فرکانس در صدا A4 باشد، نت / نواک یک A2 خواهد بود، به این پدیده، از دست رفتن فرکانس پایه گفته می‌شود.

طیف‌نگاره

یک قطعه‌ی موسیقی توسط چندین ساز و هنرمند نواخته می‌شود، تمام این سازها، ترکیبی از موج‌های سینوسی در چندین فرکانس را تولید می‌کنند و در مجموع، صدای تولیدشده از ترکیب موج‌های سینوسی به‌مراتب بزرگ‌تری تشکیل می‌شود. می‌توان با یک طیف‌نگاره، موسیقی را مشاهده کرد. در اغلب اوقات، طیف‌نگاره نموداری سه‌بعدی است:

زمان روی محور افقی X قرار می‌گیرد فرکانس تن‌های خالص روی محور عمودی Y قرار می‌گیرد بُعد سوم با یک رنگ توصیف می‌شود و دامنه‌ی یک فرکانس را در زمان به‌خصوصی نشان می‌دهد.

نمودار زیر، طیف‌نگاره‌ی مربوط به صدای پیانو را نشان می‌دهد. رنگ‌ها در طیف‌نگاره، دامنه‌ی صدا را برحسب دسی‌بل نشان می‌دهند.

طیف نگاره

نکته‌ی جالب توجه دیگر، تغییر شدت فرکانس‌ها با گذر زمان است، این موضوع یکی دیگر از ویژگی‌های یک ساز محسوب می‌شود که آن را منحصربه‌فرد می‌کند. اگر نوازنده به‌جای پیانو، ساز دیگری را بنوازد، الگوی تکامل فرکانس‌ها متفاوت خواهد بود و صدای حاصل‌شده نیز کمی تفاوت خواهد داشت؛ زیرا هر هنرمند / ساز، استایل منحصربه‌فردی دارد. از لحاظ فنی، این تکامل فرکانسی، محدوده‌ی (envelope) سیگنال صدا را اصلاح می‌کند و این محدوده بخشی از طنین محسوب می‌شود.

برای آنکه ایده‌ای ابتدایی از نوع کارکرد پروسه‌ی شناسایی هویت صوتی در شزم به‌دست آورید، توجه شما را به طیف‌نگاره‌ی بالا جلب می‌کنیم که در آن برخی از فرکانس‌ها (نمونه‌هایی پایین) اهمیت بیشتری نسبت به بقیه دارند. اگر تنها فرکانس‌های قدرتمند را نگه داریم، چه پیش می‌آید؟

دیجیتالی‌سازی

مادامی که از علاقه‌مندان به صفحه‌ی گرامافون نباشید، هنگام گوش دادن به موسیقی از فایل‌های دیجیتال (mp3، سی‌دی صوتی، ogg یا apple lossless) استفاده می‌کنید؛ اما هنرمندان موسیقی را به‌صورت آنالوگ تولید می‌کنند؛ بدین مفهوم که موسیقی آن‌ها در قالب بیت نیستند. برای آنکه موسیقی قابل ذخیره‌سازی یا پخش‌شدن در دستگاه‌های الکترونیکی باشد، باید به‌صورت دیجیتال باشد. در این بخش با چگونگی گذار از آنالوگ به دیجیتال آشنا می‌شویم. آگاهی از چگونگی تولید موسیقی دیجیتال به ما در بخش‌‌های بعدی جهت تحلیل یا دست‌کاری آن کمک خواهد کرد.

نمونه‌برداری

سیگنال‌های آنالوگ پیوسته هستند؛ بدین مفهوم که اگر شما یک ثانیه از سیگنال آنالوگی را انتخاب کنید، می‌توانید آن را به بی‌شمار قسمت تقسیم کنید. در دنیای دیجیتال، نمی‌توان بی‌نهایت اطلاعات را ذخیره کرد؛ از این رو باید یک واحد حداقلی، نظیر یک میلی‌ثانیه در اختیار داشته باشید. در طول این واحد از زمان، صوت نمی‌تواند تغییر کند؛ بنابراین واحد زمان باید به‌اندازه‌ای کوتاه باشد که موسیقی دیجیتال شبیه به نمونه‌ی آنالوگ باشد و به‌اندازه‌ای طولانی باشد که بتوان فضای مورد نیاز برای ذخیره‌ی موسیقی را محدود کرد.

به‌عنوان مثال، موسیقی مورد علاقه‌ی خود را به‌خاطر بیاورید؛ حال تصور کنید که صدا در این موسیقی هر ۲ ثانیه یک بار تغییر کند، بی‌شک نتیجه‌ی نهایی هیچ شباهتی به نمونه‌ی اصلی نخواهد داشت. در چنین شرایطی به‌لحاظ فنی گفته می‌شود که صدا Aliased شده است؛ این پدیده زمانی رخ می‌دهد که فرکانس نمونه‌برداری کمتر از دو برابر فرکانس بیشینه‌ی موجود در صوت باشد.

برای آنکه از کیفیت صدای موسیقی اطمینان حاصل کنیم، باید واحد نمونه‌برداری را بسیار کوچک، به‌عنوان مثال در حد یک نانو ثانیه (۹- ۱۰) انتخاب کنیم، در این شرایط کیفیت صدای حاصل بسیار بالا خواهد بود؛ اما فضای کافی برای ذخیره‌ی موسیقی در اختیار نخواهید داشت. به این فرآیند نمونه‌برداری گفته می‌شود.

واحد استاندارد زمان در موسیقی دیجیتال، ۴۴۱۰۰ نموه به ازای هر ثانیه است؛ اما این فرکانس ۴۴.۱ کیلوهرتزی از کجا آمده؟ در فصل نخست، مقاله، گفتیم که انسان در بهترین حالت می‌تواند اصواتی با فرکانس بین ۲۰ تا ۲۰ هزار هرتز را بشنود. براساس قضیه‌ی نایکوئیست، برای آنکه بتوان سیگنالی با فرکانس بین صفر تا ۲۰ هزار هرتز را گسسته‌سازی یا دیجیتال‌سازی کرد، باید در هر ثانیه حداقل ۴۰ هزار بار نمونه‌برداری کرد.

ایده‌ی موجود در پسِ چنین منطقی آن است که برای قابل شناسایی‌بودن یک سیگنال سینوسی با فرکانس F، باید در هر سیکل آن، حداقل دو نقطه وجود داشته باشد؛ بنابراین چنانچه فرکانس نمونه‌برداری دو برابر فرکانس سیگنال باشد، در هر سیکل از سیگنال ابتدایی، دو نقطه خواهید داشت. برای درک بهتر موضوع به تصویر زیر توجه کنید:

نمونه‌برداری از موج سینوسی

در نمودار بالا، صوتی با فرکانس ۲۰ هرتز با استفاده از نرخ نمونه‌برداری ۴۰ هرتزی، دیجیتال می‌شود.

منحنی آبی، سیگنال صدا را با فرکانس ۲۰ هرتز نشان می‌دهد نقاط قرمز، صداهای نمونه را نشان می‌دهند، بدین مفهوم که در هر ۱/۴۰ ثانیه، یک بار منحنی آبی را با علامت‌های ضرب قرمز، نشانه‌گذاری کرده‌ایم خطوط سبز، درون‌یابی صدای نمونه‌برداری شده را به تصویر می‌کشند

اگرچه خطوط حاصل از نمونه‌برداری، فُرم یا دامنه‌ای مشابه منحنی اصلی ندارند؛ اما فرکانس سیگنال نمونه‌برداری‌شده ثابت باقی مانده است. در ادامه توجه شما را به یک نمونه‌برداری مناسب جلب می‌کنیم:

نمونه‌برداری از موج سینوسی

در نمودار بالا صوتی با فرکانس ۲۰ هرتز و سیگنال نمونه‌برداری‌شده‌ای را با فرکانس ۳۰ هرتز مشاهده می‌کنید؛ بدین مفهوم که سیگنال نمونه‌‌برداری‌شده فرکانس یکسانی با سیگنال اصلی ندارد: تنها ۱۰ هرتز فاصله وجود دارد. چنانچه دقیق‌تر نگاه کنید، مشاهده خواهید کرد که یک سیکل در سیگنال نمونه‌برداری‌شده، دو سیکل در سیگنال اصلی را به نمایش می‌گذارد، در این حالت شاهد پدیده‌ی Under Sampling هستیم.

نمودار بالا، موضوع مهم دیگری را نیز به تصویر می‌کشد: چنانچه می‌خواهید سیگنالی بین صفر تا ۲۰ هزار هرتز را دیجیتال کنید، باید پیش از نمونه‌برداری، فرکانس‌های بالاتر از ۲۰ هزار هرتز را از سیگنال حذف کنید، در غیر این‌صورت، فرکانس‌های یادشده پس از نمونه‌برداری به فرکانس‌هایی بین صفر تا ۲۰ هزار هرتز بدل شده و صداهای ناخواسته‌ای را ایجاد خواهند کرد که به این پدیده Aliasing گفته می‌شود.

بنابراین، چنانچه می‌خواهید موسیقی را به‌خوبی از آنالوگ به دیجیتال تبدیل کنید، باید حداقل نرخ نمونه‌برداری ۴۰ هزار بار در ثانیه را انتخاب کنید. شرکت‌هایی همچون سونی در طول دهه‌ی ۹۰ فرکانس ۴۴.۱ کیلوهرتز را انتخاب کردند؛ زیرا بالاتر از ۴۰ هزار هرتز است و با فرمت‌های تصویری NTSC و PAL سازگاری دارد؛ البته استانداردهای دیگری همچون ۴۸ کیلوهرتز (بلوری)، ۹۶ کیلوهرتز یا ۱۹۲ کیلوهرتز نیز وجود دارند؛ اما چنانچه حرفه‌ای یا به اصطلاح خوره‌ی صدا نیستید، به احتمال زیاد، موسیقی را با نرخ ۴۴.۱ کیلوهرتز گوش می‌دهید.

نکته‌ی ۱: قضیه‌ی نایکوئیست مبحث بسیار گسترده‌ای است، برای کسب اطلاعات بیشتر می‌توانید به مراجع پردازش سیگنال یا صفحه‌ی ویکیپدیای این قضیه مراجعه کنید.

نکته‌ی ۲: برای دیجتالی‌سازی، فرکانس نمونه‌برداری باید اکیدا بزرگتر از دو برابر فرکانس سیگنال باشد؛ زیرا در بدترین حالت، ممکن است با یک سیگنال دیجیتالی ثابت طرف باشیم.

کوانتیده‌سازی

 در بخش قبل، با چگونگی دیجیتالی‌سازی فرکانس‌های موسیقی آنالوگ آشنا شدیم؛ اما بلندی صدای موسیقی چگونه خواهد بود؟ بلندی صدا معیاری نسبی است: به ازای بلندی صدای یکسان درون سیگنال، چنانچه حجم صدای اسپیکر را افزایش دهید، شدت صدای موسیقی افزایش خواهد یافت. بلندی صدا، به تفاوت بین پایین‌ترین و بالاترین سطح صدا در یک قطعه‌ی موسیقی گفته می‌شود.

مشکل پیشین در مورد بلندی صدا نیز پیش می‌آید: گذار از دنیای پیوسته با بی‌نهایت تغییر در حجم به دنیای گسسته چگونه صورت می‌گیرد؟

موسیقی مورد علاقه‌ی خود را با چهار سطح بلندی «بدون صدا»، «صدای پایین»، «صدای بلند» و «تمام توان» تصور کنید، در چنین وضعیتی، حتی بهترین موسیقی دنیا نیز غیرقابل تحمل خواهد بود. آنچه تصور کردید، کوانتیده‌سازی با ۴ سطح بود. در تصور زیر می‌توانید نمونه‌ای از کوانتیده‌سازی سطح پایین را مشاهده کنید:

کوانتیده‌سازی موج

این تصویر، کوانتیده‌سازی با ۸ سطح را نشان می‌دهد. همان‌طور که مشاهده می‌کنید، صدای حاصل با رنگ قرمز، تفاوت فاحشی با نمونه‌ی اصلی دارد. تفاوت بین صدای واقعی و نمونه‌ی کوانتیده‌شده، خطای کوانتیده‌سازی یا نویز کوانتیده‌سازی نامیده می‌شود. کوانتیده‌سازی ۸ سطحی با نام کوانتیده‌سازی ۳ بیتی نیز نامیده می‌شود؛ زیرا شما تنها به ۳ بیت برای پیاده‌سازی ۸ سطح مختلف نیاز خواهید داشت (۸ = ۲۳). 

در تصویر زیر همان سیگنال را با کوانتیده‌سازی ۶۴ سطحی یا کوانتیده‌سازی ۶ بیتی مشاهده می‌‌کنید. اگرچه صدای حاصل باز هم متفاوت به‌نظر می‌رسد؛ اما شباهت بیشتری به صدای اصلی دارد.

کوانتیده‌سازی ۶۴ سطحی

خوشبختانه گوش انسان‌ها حساسیت فوق‌العاده بالایی ندارد؛ از این رو کوانتیده‌سازی ۱۶ بیتی یا ۶۵۵۳۶ سطحی به‌عنوان استاندارد تعریف می‌شود. با کوانتیده‌سازی ۱۶ بیتی، نویز کوانتیده‌سازی برای گوش انسان‌ها به‌اندازه‌ی کافی در سطح پایینی قرار دارد.

نکته‌ی ۱: در استودیوهای ضبط موسیقی، حرفه‌ای‌ها از کوانتیده‌سازی ۲۴ بیتی استفاده می‌کنند؛ بدین مفهوم که بین بالاترین و پایین‌ترین بلندی صدا، ۲۲۴ یا ۱۶ میلیون تغییر ممکن وجود دارد.

نکته‌ی ۲: در مثال‌های ارائه‌شده در خصوص تعداد سطح‌های کوانتیده‌سازی، تقریب‌هایی صورت گرفته است.

مدولاسیون کُد پالس

PCM یا مدولاسیون کُد پالس، استانداردی است که سیگنال‌های دیجیتال را به‌تصویر می‌کشد. این استاندارد در دیسک‌های فشرده و بسیاری از دستگاه‌های الکترونیکی به‌کار می‌رود؛ به‌عنوان مثال، هنگامی که به یک فایل mp3 در کامیپوتر، گوشی هوشمند یا تبلت خود گوش می‌دهید، آن فایل به‌صورت خودکار به سیگنال PCM تبدیل شده و به هدفون شما ارسال می‌شود.

جریان PCM، جریانی از بیت‌های سازمان‌دهی شده است، این جریان می‌تواند از چندین کانال تشکیل شده باشد؛ به‌عنوان مثال، یک قطعه‌ی موسیقی استریو، دو کانال دارد. در یک جریان، دامنه‌ی سیگنال به نمونه‌هایی تقسیم می‌شود. تعداد نمونه‌ها به ازای هر ثانیه، با نرخ نمونه‌برداری موسیقی هماهنگی دارد؛ به‌عنوان مثال، یک قطعه‌ی موسیقی با نرخ نمونه‌برداری ۴۴۱۰۰ هرتزی، در هر ثانیه ۴۴۱۰۰ نمونه خواهد داشت. هر نمونه، دامنه‌ی صدای کوانتیده‌ی مربوط به کسری از ثانیه‌ها را در بر دارد.

فرمت‌های PCM گوناگونی وجود دارد؛ اما رایج‌ترین نمونه برای صدا، فرمت خطی PCM استریو با فرکانس ۴۴.۱ کیلوهرتز و عمق ۱۶ بیت است، این فرمت ۴۴۱۰۰ نمونه در هر ثانیه از موسیقی را در بر دارد و هر نمونه، ۴ بیت را اشغال می‌کنند.

۲ بایت (۱۶ بیت) برای شدت صدای (از ۳۲٬۷۶۸- تا ۳۲٬۷۶۷) اسپیکر سمت چپ ۲ بایت (۱۶ بیت) برای شدت صدای (از ۳۲٬۷۶۸- تا ۳۲٬۷۶۷) اسپیکر سمت راست

PCM 16bit

در فرمت استریوی PCM با فرکانس ۴۴.۱ کیلوهرتز و عمق ۱۶ بیت، در هر ثانیه از موسیقی، ۴۴۱۰۰ نمونه مانند تصویر بالا خواهید داشت.

از صدای دیجیتال تا فرکانس

شما اکنون از چگونگی گذار از صدای آنالوگ به دیجیتال آگاهی دارید؛ اما چگونه می‌توان فرکانس‌های موجود داخل یک سیگنال دیجیتال را به‌دست آورد؟ این بخش از اهمیت بسیار بالایی برخوردار است؛ زیرا الگوریتم شناسایی هویت صوت شزم تنها با فرکانس‌ها کار می‌کند.

برای سیگنال‌های پیوسته یا آنالوگ، راهکاری موسوم به تبدیل فوریه وجود دارد. با استفاده از این راهکار، می‌توان تابع زمان را به تابع فرکانس تبدیل کرد. به‌عبارت دیگر، چنانچه شما تبدیل فوریه را روی یک صوت به‌کار ببرید، این تبدیل، فرکانس‌های موجود در این صوت و شدت آن‌ها را در اختیار شما خواهد گذاشت؛ اما در این مسیر، دو مشکل وجود دارد:

ما با صداهای دیجیتال یا به‌عبارت بهتر صداهای متناهی (ناپیوسته) سروکار داریم برای آگاهی از فرکانس‌های موجود در موسیقی، باید تبدیل فوریه را روی قسمت‌های کوتاهی از کل سیگنال صوتی به‌کار ببریم؛ به‌عنوان مثال یک قسمت ۰.۱ ثانیه‌ای تا بدین ترتیب بدانیم که در هر ۰.۱ ثانیه از قطعه‌ی موسیقی چه فرکانس‌هایی وجود دارد

خوشبختانه تابع ریاضی دیگری موسوم به تبدیل گسسته‌ی فوریه (DFT) وجود دارد که با چنین محدودیت‌هایی سازگار است.

نکته: تبدیل فوریه باید تنها روی یک کانال اِعمال شود؛ بنابراین چنانچه یک قطعه‌ی موسیقی استریو داشته باشید، باید آن را به قطعه‌ی مونو (تک کاناله) تبدیل کنید.

تبدیل فوریه‌ی گسسته

تبدیل فوریه‌ی گسسته روی سیگنال‌های گسسته اِعمال می‌شود و طیفی گسسته از فرکانس‌های موجود در سیگنال را ارائه می‌دهد. رابطه‌ی جادویی زیر، سیگنال دیجیتال را به فرکانس‌ها بدل می‌کند:

تبدیل گسسته فوریه

در رابطه‌ی بالا:

N ابعاد پنجره را نشان می‌دهد: تعداد نمونه‌هایی که سیگنال را شکل می‌دهند (در رابطه به‌صورت مفصل راجع به پنجره‌ها بحث خواهیم کرد) X(n) نشان‌دهنده‌ی nامین بازه‌ی فرکانسی است X(k) نشان‌دهنده‌ی kامین نمونه‌ی سیگنال صوتی است

به‌عنوان مثال برای یک سیگنال صوتی با پنجره‌ی ۴۰۹۶ نمونه‌ای، رابطه‌ی یادشده باید ۴۰۹۶ بار به کار گرفته شود:

یک بار برای n = 0 جهت محاسبه‌ی بازه‌ی صفرم فرکانسی یک بار برای n = 1 جهت محاسبه‌ی بازه‌ی اول فرکانسی یک بار برای n = 2 جهت محاسبه‌ی بازه‌ی دوم فرکانسی ...

همان‌طور که احتمالا متوجه شده‌اید، به‌جای فرکانس، در خصوص بازه‌ی فرکانسی صحبت کردیم؛ زیرا DFT طیف گسسته ارائه می‌دهد. بازه‌ی فرکانسی، کوچکترین واحد فرکانسی است که DFT می‌تواند محاسبه کند. اندازه‌ی این بازه (وضوح طیف / طیفی یا وضوح فرکانسی) برابر با نرخ نمونه‌برداری سیگنال تقسیم بر اندازه‌ی پنجره (N) است. در مثال ما، با پنجره‌ی ۴۰۹۶ نمونه‌ای و نرخ نمونه‌برداری صوتی استاندارد ۴۴.۱ کیلوهرتزی، وضوح فرکانسی معادل ۱۰.۷۷ هرتز است (به‌جز بازه‌ی صفرم که استثناء محسوب می‌شود):

بازه‌ی صفرم فرکانس‌های بین ۰ تا ۵.۳۸ هرتز را نشان می‌دهد بازه‌ی اول فرکانس‌های بین بین ۵.۳۸ تا ۱۶.۱۵ هرتز را نشان می‌دهد بازه‌ی دوم فرکانس‌های بین ۱۶.۱۵ تا ۲۶.۹۲ هرتز را نشان می‌دهد بازه‌ی سوم فرکانس‌های بین ۲۶.۹۲ تا ۳۷.۶۸ هرتز را نشان می‌دهد ...

بنابراین DFT نمی‌تواند دو فرکانس با تفاوت کمتر از ۱۰.۷۷ هرتز را تفکیک کند؛ به‌عنوان مثال، نت‌هایی با فرکانس ۲۷ هرتز، ۳۲ هرتز و ۳۷ هرتز، در بازه‌ی فرکانسی یکسانی قرار می‌گیرند. چنانچه نت در فرکانس ۳۷ هرتز بسیار قدرتمند باشد، شما تنها متوجه خواهید شد که بازه‌ی سوم قدرتمند است، این موضوع بر سر تفکیک نت‌ها در پایین‌ترین اکتاوها مشکل‌ساز خواهد بود؛ به‌عنوان مثال:

نت A1 / La1 در فرکانس ۵۵ هرتز قرار دارد، در حالی که نت B1 / Si1 و نت G1 / Sol1 به‌ترتیب در فرکانس‌های ۵۸.۲۷ و ۴۹ هرتز قرار دارند نت اول در یک پیانوی ۸۸ کلیدی استاندارد A0 با فرکانس ۲۷.۵ هرتز و به دنبال آن، A#0 با فرکانس ۲۹.۱۴ هرتز است

شما می‌توانید وضوح فرکانسی را با افزایش ابعاد پنجره بهبود دهید؛ اما در این حالت تغییرات سریع فرکانس / نت را در موسیقی از دست خواهید داد:

یک سیگنال صوتی نرخ نمونه‌برداری ۴۴.۱ کیلوهرتزی دارد افزایش ابعاد پنجره به مفهوم گرفتن نمونه‌های بیشتر و به‌دنبال آن، افزایش مدت‌زمان صرف‌شده توسط پنجره است با ۴۰۹۶ نمونه، مدت‌زمان پنجره ۰.۱ ثانیه و وضوح فرکانسی ۱۰.۷ هرتز است: شما می‌توانید تغییرات را در هر ۰.۱ ثانیه تشخیص دهید با ۱۶۳۸۴ نمونه، مدت‌زمان پنجره ۰.۳۷ ثانیه و وضوح فرکانسی ۲.۷ هرتز است: شما می‌توانید تغییرات را در هر ۰.۳۷ ثانیه تشخیص دهید

یکی دیگر از مشخصات سیگنال صوتی این است که ما تنها به نیمی از بازه‌ی محاسبه‌شده توسط DFT نیاز داریم. در مثال پیشین، وضوح فرکانسی ۱۰.۷ هرتز بود؛ بدین مفهوم که بازه‌ی ۲۰۴۷‌ام فرکانس‌های بین ۲۱۹۰۲.۹ هرتز تا ۲۱۹۱۳.۶ هرتز را در بر می‌گیرد؛ اما:

بازه‌ی ۲۰۴۸ام اطلاعات یکسانی را با بازه‌ی صفرم ارائه خواهد داد بازه‌ی ۲۰۴۹ام اطلاعات یکسانی را با بازه‌ی اول ارائه خواهد داد بازه‌ی X + 2048ام اطلاعات یکسانی را با بازه‌ی ایکس ارائه خواهد داد ...

چنانچه می‌خواهید دلیل آنکه وضوح فرکانسی معادل نرخ نمونه‌‌برداری تقسیم بر ابعاد پنجره‌است یا دلیل عجیب‌بودن این رابطه را بدانید، توصیه می‌کنیم این مقاله‌ی پنج بخشی درباره‌ی تبدیل فوریه را مطالعه کنید (به‌خصوص بخش‌های چهارم و پنجم)؛ زیرا یکی از بهترین مقالات برای افراد مبتدی مانند ما محسوب می‌شود.

توابع پنجره

اگر می‌خواهید فرکانس یک صوت یک ثانیه‌ای را در هر بازه‌ی ۰.۱ ثانیه‌ای به‌دست آورید، باید تبدیل فوریه را روی بازه‌ی ۰.۱ ثانیه‌ای اول، بازه‌ی ۰.۱ ثانیه‌ای دوم، بازه‌ی ۰.۱ ثانیه‌ای سوم و غیره پیاده کنید...

صورت‌مساله

اما در این حالت، به‌صورت ضمنی یک تابع پنجره‌ای (مستطیلی) را پیاده می‌کنید:

برای ۰.۱ ثانیه‌ی نخست، تبدیل فوریه را روی سیگنال یک ثانیه‌ای ضرب‌ در تابعی پیاده می‌کنیم که بین صفر تا ۰.۱ ثانیه معادل «۱» و در باقی زمان‌ها معادل صفر است. برای ۰.۱ ثانیه‌ی دوم، تبدیل فوریه را روی سیگنال یک ثانیه‌ای ضرب‌ در تابعی پیاده می‌کنیم که بین ۰.۱ تا ۰.۲ ثانیه معادل «۱» و در باقی زمان‌ها معادل صفر است. برای ۰.۱ ثانیه‌ی سوم، تبدیل فوریه را روی سیگنال یک ثانیه‌ای ضرب‌ در تابعی پیاده می‌کنیم که بین ۰.۲ تا ۰.۳ ثانیه معادل «۱» و در باقی زمان‌ها معادل صفر است. ...

در تصویر زیر می‌توانید به‌صورت شهودی، اِعمال تابع پنجره‌ای روی یک سیگنال صوتی دیجیتال (نمونه‌برداری‌شده) را برای به‌دست آوردن فرکانس بازه‌ی ۰.۱ ثانیه‌ی نخست را مشاهده کنید:

صوت و تابع پنجره‌ای

در این نمودار، برای به‌دست آوردن فرکانس‌های بازه‌ی ۰.۱ ثانیه‌ای نخست باید سیگنال صوتی نمونه‌برداری‌شده (رنگ آبی) را در تابع پنجره‌ای (رنگ سبز) ضرب کنید.

صوت و تابع پنجره‌ای

در این نمودار، برای به‌دست آوردن فرکانس‌های بازه‌ی ۰.۱ ثانیه‌ای دوم باید سیگنال صوتی نمونه‌برداری‌شده (رنگ آبی) را در تابع پنجره‌ای (رنگ سبز) ضرب کنید.

با «پنجره‌ای‌سازی» سیگنال صوتی در حقیقت تابع سیگنال صوتی بر حسب زمان را در تابع پنجره‌ای برحسب زمان ضرب می‌کنید. این تابع پنجره‌ای، نشت طیفی را تولید می‌کند. نشت طیفی در حقیقت پدیداری فرکانس‌های جدیدی است که درون سیگنال صوتی وجود ندارند. توان فرکانس‌های واقعی به فرکانس‌های دیگر نشت می‌کند.

در ادامه توضیح ریاضی غیررسمی این پدیده را ارائه می‌کنیم. فرض کنید که بخشی از کل سیگنال صوتی را می‌خواهید، در این صورت باید سیگنال صوتی را در تابع پنجره‌ای ضرب کنید که تنها به بخش مورد نظر شما اجازه‌ی عبور می‌دهد.

part_of_audio(t) = full_audio(t) . window (t)

هنگامی که به‌دنبال فرکانس‌های این بخش از سیگنال صوتی هستید، تبدیل فوریه را روی آن پیاده می‌کنید:

Fourier(part_of_audio(t)) = Fourier(full_audio(t) . window (t))

براساس قضیه‌ی کانوولوشن (* نشان‌دهنده‌ی عملگر کانوولوشن و . نشان‌دهنده‌ی عملگر ضرب است):

Fourier(full_audio(t) . window (t)) = Fourier(full_audio(t)) * Fourier(window (t))
Fourier(part_of_audio(t)) = Fourier(full_audio(t)) * Fourier(window (t))

* فرکانس part_of_audio(t) به نوع تابع پنجره‌ای window() استفاده شده بستگی دارد.

بحث در رابطه با قضیه‌ی کانوولوشن و نتیجه‌ی پیاده‌سازی آن روی تبدیل فوریه‌ی سیگنال صوتی را در این بخش خاتمه می‌دهیم؛ زیرا وارد شدن به آن، ریاضیات پیشرفته‌ای را می‌طلبد که بی‌شک از حوصله‌ی بحث خارج است. اگر به دنبال کسب اطلاعات بیشتر هستید، توصیه می‌کنیم که با مراجعه به صفحه‌ی ۲۹ در این لینک، اثر ریاضی پیاده‌سازی تابع پنجره‌ای روی یک سیگنال را مشاهده کنید. در این مرحله تنها باید به خاطر داشته باشید که تقسیم سیگنال‌های صوتی به قطعات کوچک برای تحلیل فرکانسی هر قطعه، نشت طیفی را تولید می‌کند.

انواع توابع پنجره‌ای

خاطرنشان می‌کنیم که نمی‌توان از وقوع پدیده‌ی نشت طیفی جلوگیری کرد؛ اما می‌توان با انتخاب تابع پنجره‌ای مناسب، رفتار آن را کنترل کرد: به‌جای استفاده از توابع پنجره‌ای مستطیلی، می‌توانید توابع پنجره‌ای مثلثی، پارزن، بلک‌من یا همینگ را انتخاب کنید...

توابع مستطیلی ساده‌ترین نوع توابع پنجره‌ای محسوب می‌شوند؛ چرا که تنها باید سیگنال‌های صوتی را به قطعات کوچکی تقسیم کنید، اما به‌نظر می‌رسد که برای تحلیل مهم‌ترین فرکانس‌های موجود در یک سیگنال، انتخاب چندان مناسبی نباشد. در ادامه به سه تابع مستطیلی، همینگ و بلک‌من نگاهی خواهیم داشت، برای بررسی تاثیر این سه تابع سیگنال صوتی متشکل از فرکانس‌های زیر را به‌کار خواهیم برد:

یک فرکانس ۴۰ هرتزی با دامنه‌ی ۲ یک فرکانس ۱۶۰ هرتزی با دامنه‌ی ۰.۵ یک فرکانس ۳۲۰ هرتزی با دامنه‌ی ۸ یک فرکانس ۶۴۰ هرتزی با دامنه‌ی ۱ یک فرکانس ۱۰۰۰ هرتزی با دامنه‌ی ۱ یک فرکانس ۱۲۲۵ هرتزی با دامنه‌ی ۰.۲۵ یک فرکانس ۱۴۰۰ هرتزی با دامنه‌ی ۰.۱۲۵ یک فرکانس ۲۰۰۰ هرتزی با دامنه‌ی ۰.۱۲۵ یک فرکانس ۲۵۰۰ هرتزی با دامنه‌ی ۱.۵

در حالت ایده‌آل، تبدیل فوریه‌ی سیگنال یاد‌شده، طیف زیر را تولید خواهد کرد:

طیف ایده‌آل سیگنال صوتی

این نمودار، طیفی را با ۹ خط عمودی در فرکانس‌های ۴۰، ۱۶۰، ۳۲۰، ۶۴۰، ۱۰۰۰، ۱۲۲۵، ۱۴۰۰، ۲۰۰۰ و ۲۵۰۰ هرتز را نشان می‌دهد. محور y دامنه‌ی طیفی را برحسب دسی‌بل به تصویر می‌کشد؛ بنابراین مقیاس آن لگاریتمی است. با این مقیاس، صوتی با دامنه‌ی ۶۰ دسی‌بل، ۱۰۰ برابر قدرتمندتر از صوت ۴۰ دسی‌بلی و ۱۰٬۰۰۰ برابر قدرتمندتر از صوت ۲۰ دسی‌بلی است. برای آنکه درک بهتری از موضوع داشته باشید، هنگامی که در یک اتاق ساکت صحبت کنید، شدت صدای شما ۲۰ تا ۳۰ دسی‌بل بیشتر از صدای اتاق در شعاع یک متری‌تان خواهد بود.

برای رسم این نمودار «بی‌نقص»، تبدیل فوریه با یک تابع پنچره‌ای بسیار طولانی ۱۰ ثانیه‌ای اعمال شده است. استفاده از پنجره‌هایی با بازه‌ی زمانی طولانی، نشت طیفی را کاهش می‌دهد؛ اما ۱۰ ثانیه، زمانی طولانی محسوب می‌شود، زیرا در یک قطعه‌ی موسیقی، صدا بسیار سریع‌تر تغییر می‌کند. برای آنکه متوجه تغییرات سریع در موسیقی شوید، از شما دعوت می‌کنیم تا به ویدیو‌های زیر توجه کنید:

در ویدیوی زیر، صدا در هر ثانیه یک بار تغییر می‌کند، اگرچه این ریتم بسیار آهسته به گوش می‌رسد؛ اما در موسیقی کلاسیک بسیار رایج است. در ویدیوی زیر، صدا در هر ثانیه ۲.۷ بار تغییر می‌کند، اگرچه این ریتم بسیار سریع به‌ گوش می‌رسد؛ اما در موسیقی الکترو رایج است. در ویدیوی زیر، صدا در هر ثانیه ۸.۳ بار تغییر می‌کند، این ریتم بسیار سریع است؛ اما احتمال دارد که در بخش‌های کوچکی از موسیقی به‌کار رود.

برای آنکه بتوان این تغییرات سریع را ثبت کرد، باید صدا را با استفاده از توابع پنجره به بخش‌های بسیار کوچکی تقسیم کرد. تصور کنید که می‌خواهید فرکانس‌های صدایی را در هر یک‌سوم ثانیه تحلیل کنید.

انواع توابع پنجره

در این نمودار، شما می‌توانید سیگنال صدا را برای به‌دست آوردن سیگنال بین ۰.۳۳۳ و ۰.۶۶۶ ثانیه در یکی از سه نوع تابع پنجره‌ای ضرب کنید. همان‌طور که گفتیم، استفاده از تابع مستطیلی، مانند بریدن سیگنال بین ۰.۳۳۳ ثانیه و ۰.۶۶۶ ثانیه است؛ در حالی برای استفاده از توابع همینگ با بلک‌من باید سیگنال را در سیگنال پنجره‌ای ضرب کنید.

تصویر زیر، طیف صدای قبلی با تابع پنجره‌ای ۴۰۹۶ نمونه‌ای را نشان می‌دهد:

تبدیل فوریه با پنجره ۴۰۹۶ نمونه‌‌ای

سیگنال با فرکانس ۴۴۱۰۰ هرتزی نمونه‌برداری شده است؛ بنابراین تابع پنجره‌ای ۴۰۹۶ نمونه‌ای، یک بخش ۹۳ میلی‌ثانیه‌ای (۴۴۱۰۰/۴۰۹۶) و وضوح فرکانسی ۱۰.۷ هرتزی را نشان می‌دهد.

این نمودار نشان می‌دهد که تمام توابه پنجره‌ای، طیف حقیقی صدا را تغییر می‌دهند. به‌وضوح می‌توان دید که بخشی از توان فرکانس‌های حقیقی به همسایگی‌ آن‌ها پخش شده است. طیف حاصل از تابع مستطیلی بدترین عملکرد را دارد؛ چرا که نشت طیفی در آن بسیار بیش‌تر از دو تابع دیگر است، این موضوع بین فرکانس‌های ۴۰ تا ۱۶۰ هرتز، بیش از پیش جلوه می‌کند. تابع بلک‌من نزدیک‌ترین طیف را به نمونه‌ی حقیقی تولید می‌کند.

نمودار زیر، نمونه‌ای دیگری را با تبدیل فوریه‌ی مبتنی بر تابع پنجره‌ای ۱۰۲۴ نمونه‌ای نشان می‌دهد:

تبدیل فوریه با پنجره ۱۰۲۴ نمونه‌‌ای

سیگنال با فرکانس ۴۴۱۰۰ هرتزی نمونه‌برداری شده است؛ بنابراین تابع پنجره‌ای ۱۰۲۴ نمونه‌ای، یک بخش ۲۳ میلی‌ثانیه‌ای (۴۴۱۰۰/۱۰۲۴) و وضوح فرکانسی ۴۳ هرتزی را نشان می‌دهد.

این بار، تابع مستطیلی، بهترین طیف را تولید می‌کند. در هر سه تابع پنجره‌ای، فرکانس ۱۶۰ هرتزی توسط نشت طیفی تولید‌شده با فرکانس‌های ۴۰ و ۳۲۰ هرتزی پنهان شده است. تابع بلک‌من بدترین نتیجه را تولید می‌کند؛ چرا که فرکانس ۱۲۲۵ هرتزی نزدیک به ناپدید شدن است.

مقایسه‌ی دو نمودار نشان می‌دهد که نشت طیفی در تمام توابع پنجره‌ای با بالا رفتن وضوح فرکانسی، افزایش پیدا می‌کند. الگوریت هویت‌سنجی صوتی شزم، به‌دنبال بلندترین فرکانس درون قطعه‌ی موسیقی می‌گردد؛ اما به‌دلیل نشت طیفی، نمی‌توان به‌سادگی بالاترین فرکانس را به‌دست آورد. در نمونه‌ی آخر، سه فرکانس بلند تقریبی، ۳۲۰، ۲۷۷ (۴۳-۳۲۰) و ۳۶۳ (۴۳+۳۲۰) هرتز هستند؛ اما تنها فرکانس ۳۲۰ هرتز وجود دارد.

کدام تابع پنجره‌ای بهتر است؟

بهترین یا بدترین تابع پنجره‌ای وجود ندارد. هر تابع پنجره‌ای، ویژگی‌های منحصربه‌فردی دارد و بسته به نوع مسئله می‌توان، نوع خاصی را برگزید. تابع مستطیلی به‌لحاظ وضوح بهترین گزینه‌ برای سیگنال‌های سینوسی با توان‌های نزدیک به هم محسوب می‌شود؛ اما این نوع تابع برای سیگنال‌های سینوسی با دامنه‌های بسیار متفاوت (مانند آنچه در موسیقی رخ می‌دهد؛ چرا که نت‌های موسیقی بلندی یکسانی ندارند)، انتخاب بسیاری بدی به‌شمار می‌رود.

توابعی نظیر بلک‌من برای جلوگیری از ناپدید شدن فرکانس‌های ضعیف توسط فرکانس‌های قدرتمند به‌موجب نشت طیفی، انتخاب بهتری هستند؛ اما این توابع در خصوص نویز عملکرد بدی دارند؛ چرا که وجود نویز باعث ناپدید شدن فرکانس‌های بیشتری نسبت به تابع مستطیلی می‌شود. این موضوع برای الگوریتمی مانند شزم که باید توان مواجهه با نویز را داشته باشد، مشکل‌ساز خواهد بود (به‌عنوان مثال هنگامی که در یک محیط شلوغ به‌‌دنبال شناسایی موسیقی خاصی با شزم هستید، نویز بسیاری وجود خواهد داشت).

تابع همینگ بین دو تابع مستطیلی و بلک‌من قرار می‌گیرد و از این رو به‌نظر می‌رسد که گزینه‌ای بهتری برای الگوریتمی نظیر شزم باشد. در پایان این بخش توصیه می‌کنیم که برای به‌دست آوردن اطلاعات بیشتری در رابطه با توابع پنجره‌ای و نشت طیفی به منابع زیر مراجعه کنید:

تبدیل سریع فوریه و پیچیدگی زمان

صورت‌مساله

تبدیل گسسته فوریه

اگر بار دیگر به رابطه‌ی به رابطه‌ی DFT توجه کنید، مشاهده خواهید کرد که برای محاسبه‌ی یک بازه، باید N جمع و N ضرب را انجام دهید که در آن‌ها N ابعاد پنجره محسوب می‌شود؛ بدین ترتیب به‌دست آوردن N بازه، مستلزم انجام ۲ در N به‌توان ۲ محاسبه است که تعداد بسیار زیادی به‌شمار می‌رود.

به‌عنوان مثال، یک قطعه‌ی موسیقی سه دقیقه‌ای با فرکانس ۴۴.۱ کیلوهرتزی را تصور کنید که باید طیف‌نگاره‌ی آن را با تابع پنجره‌ای ۴۰۹۶ نمونه‌ای محاسبه کنید؛ بدین ترتیب باید ۱۰.۷ یا (۴۴۱۰۰/۴۰۹۶) DFT به‌ازای هر ثانیه را به‌دست آورید؛ بنابراین کل قطعه‌ی موسیقی ۱۹۳۸ نمونه DFT خواهد داشت. هر DFT به انجام ۱۰۷ × ۳.۳۵ عملیات (۴۰۹۶۲ × ۲) نیاز خواهد داشت؛ از این رو محاسبه‌ی طیف‌نگاره‌ی کل قطعه‌ی موسیقی، مستلزم انجام ۱۰۱۰ × ۶.۵ عملیات ریاضی خواهد بود.

فرض می‌کنیم که کلکسیونی از ۱۰۰۰ قطعه‌ی موسیقی سه دقیقه‌ای را در اختیار دارید؛ برای به‌دست آوردن طیف‌نگاره‌ی کل این قطعات موسیقی باید ۱۰۱۳ × ۶.۵ عملیات ریاضی را انجام دهید، انجام این محاسبات حتی با داشتن پردازنده‌ای قدرتمند، چندین روز / ماه به‌طول خواهد انجامید.

خوشبختانه نسخه‌ی سریع‌تری از DFT با نام FFT یا تبدیل سریع فوریه وجود دارد. برخی از نسخه‌های DFT تنها به انجام ۱.۵ × N × log(N) عملیات ریاضی نیاز دارند. استفاده از FFT به‌جای DFT برای کلکسیون موسیقی یادشده در پاراگراف قبلی به ۳۴۰ برابر محاسبات کمتری (۱۰۱۱ × ۱.۴۳) نیاز خواهد داشت و برای انجام آن به چند دقیقه / ساعت نیاز خواهید داشت.

این مثال، مصالحه‌ای دیگری را نیز نشان می‌دهد: اگرچه افزایش ابعاد پنجره، وضوح فرکانسی را بهبود می‌بخشد؛ مدت‌زمان لازم برای انجام محاسبات را نیز افزایش می‌دهد. به‌عنوان مثال چنانچه طیف‌نگاره‌ی کلکسیون موسیقی یادشده را با استفاده از پنجره‌ی ۵۱۲ نمونه‌ای محاسبه کنید (وضوح فرکانسی ۸۶ هرتزی)، می‌توان با استفاده از تبدیل سریع فوریه، نتیجه را طی ۱۰۱۱ × ۱.۰۷ محاسبه به‌دست آورد که به‌صورت تقریبی یک‌چهارم برابر سریع‌تر از حالت انجام محاسبه با پنجره‌ی ۴۰۹۶ نمونه‌ای (وضوح فرکانسی ۱۰.۷۷ هرتزی) است.

این پیچیدگی زمانی از آنجایی ح

درصورتی که مطلب مغایر با قوانین جمهوری اسلامی ایران می باشد از طریق صفحه تماس با ما گزارش دهید.
در صورت ناقص بودن مطلب روی منبع کلیک کنید و مطلب را بصورت کامل بخوانید.

گزارش تخلف

تمامی مطالب از سایت های مجاز فارسی و ایرانی تهیه و جمع آوری شده است و تمام فرآیند جمع آوری اخبار به صورت خودکار انجام می گیرد. مسئولیت صحت محتوای این خبر بر عهده خبرگزاری منبع و منتشر کننده آن است، در صورت وجود هرگونه مشکل از طریق صفحه گزارش تخلف اطلاع دهید.

تبلیغات

آخرین خبرها

داغ ترین اخبار