اسپکتروگرام spectrogram
اسپکتروگرام(spectrogram) یک نمایشی از طیف فرکانسی سیگنال در طول زمان است. اسپکتروگرام یک نقشه رنگی هست که برحسب زمان و فرکانس نمایش داده می شود و به ما کمک میکند تا متوجه شویم که طیف فرکانسی سیگنال در طول زمان به چه صورت تغییر میکند. در تحلیل سیگنالهای حیاتی مخصوصا سیگنال مغزی به طور عمده از اسپکتروگرام استفاده میشود. در این مقاله توضیح میدهیم که اسپکتروگرام چیه، چجوری بدست میاد و به چه صورت میتوان تحلیلش کرد.
تحلیل اسپکتروگرام، برای بررسی یک پدیده، مخصوصا اگر پترن فرکانسی پدیده در طول زمان متغیر باشد، خیلی میتوانند کمک کننده باشد. برای اینکه بتوانیم اسپکتروگرام یک سیگنال را تحلیل بکنیم، بهتر است اول بدانیم که این نقشه رنگی به چه صورت رسم می شود.
نحوه رسم اسپکتروگرام سیگنال
اسپکتروگرام از روی خروجی تبدیل فوریه زمان کوتاه بدست می آید. برای بدست آوردن اسپکتروگرام در ابتدا تبدیل فوریه زمان کوتاه روی سیگنال اعمال می شود، (سیگنال به چندین بازه زمانی تبدیل شده و روی هر کدام یک تبدیل فوریه جدا اعمال می شود) و در نتیجه آن به ازای هر بازه زمانی یک طیف فرکانسی بدست می آید. سپس ضرایب هر کدام از طیف های فرکانسی براساس میزان دامنه ای که دارند به یک کد رنگی تبدیل می شوند. که در نتیجه آن ما یک نقشه رنگی برحسب زمان و فرکانس بدست می آید که ما میتوانیم با تحلیل آن متوجه شویم که طیف فرکانسی سیگنال در طول زمان به چه صورت تغییر می کند.
نحوه کدگذاری رنگ: اگر فرض کنیم که ماکزیمم مقدار یک طیف فرکانسی 1 و حداقل مقدار آن صفر باشد در این صورت کدگذاری رنگ به این شکل انجام می شود. 1 به رنگ قرمز و صفر به رنگی آبی تبدیل می شود و مابقی به یک رنگی مابین دو رنگ تبدیل می شود.
اسپکتروگرام یک نقشه رنگی دو بعدی است که برحسب زمان و فرکانس رسم می شود. معمولا محور x زمان و محور y را فرکانس در نظر میگیرند. شکل زیر اسپکتروگرام سیگنال را نشان میدهد.
اگر بخواهیم اسپکتروگرام یک سیگنال را به صورت عددی بدست بیاریم، در آن صورت همانطور که در شکل مشخص است در نتیجه اعمال تبدیل فوریه زمان کوتاه به ازای هر بازه زمانی یک طیف فرکانسی محاسبه میشود، نصف ضرایب فرکانسی جدا شده(که مربوط به رنج فرکانسی بین صفر تا fs/2 هستند)، یک چرخش 180 درجه می شوند، و در ستون یکی از ستونهای ماتریس اسپکتروگرام قرار میگیرند. ترتیب قرار گرفتن هم برحسب زمان است. در ستون اول طیف فرکانسی به بازه زمانی و در ستون دوم هم مربوط به بازه زمانی دوم، و مابقی هم به همین ترتیب در ستونها قرار میگیرند.
ماتریس بدست آمده، مقدار عددی اسپکتروگرام خواهد بود که هر کدام از ستونهای آن طیف فرکانسی یکی از بازه های زمانی قرار گرفته است. (در هر کدام از سطرهای هر ستون، ضرایب فرکانسی بازه زمانی به ترتیب از فرکانس fs/2 تا 0 قرار میگیرند.)
نحوه تحلیل اسپکتروگرام
همانطور که توضیح دادیم، اسپکتروگرام یک نقشه رنگی دو بعدی برحسب زمان و فرکانس است. محور x مربوط به زمان، و محور y مربوط به فرکانس است. این نقشه رنگی طیف فرکانسی سیگنال در طول زمان را نشان میدهد. جاهایی از نقشه رنگی که زرد رنگ دیده می شوند، به این معنی هست که محتوای فرکانسی سیگنال در آن رنج های فرکانسی بیشتر است.
مثال مقاله تبدیل فوریه زمان کوتاه را به خاطر بیاورید، در آن مثال هدف ما این بود که با تحلیل سیگنال متوجه شویم که ترتیب شماره گیری اعداد به چه صورت هست. با تحلیل اسپکتروگرام سیگنال خیلی راحت میتوانیم متوجه شویم که در هر بازه زمانی فرد چه عددی را در تلفن شماره گیری کرده است.
با تحلیل محور زمان اسپکتروگرام سیگنال میتوجم میشیم که کاربر در سه بازه زمانی، اعداد را شماره گیری کرده است(چرا که در این بازه های زمانی طیف فرکانسی رنگ زردی دارد که مرتبط با موج سینوسی است). و با تحلیل محور فرکانس اسپکتروگرام متوجه میشویم که در هر بازه زمانی چه موج سینوسی تولید شده است. به عبارتی موج سینوسی چه فرکانسی دارد.
الان با تحلیل اسپکتروگرام سیگنال میتوانیم بگوییم که فرد در بازه زمانی اول، عدد 2 و در بازه زمانی دوم عدد 1 و در بازه زمانی سوم هم عدد 3 را شماره گیری کرده و بین این بازه های زمانی هم عددی را شماره گیری نکرده است.
تاثیر طول بازه های زمانی بر روزولوشن زمانی و فرکانسی
طول بازه زمانی میزان رزولوشن فرکانسی و زمانی را تعیین میکند. اگر طول بازه زمانی بزرگ در نظر گرفته شود، در نتیجه آن رزولوشن فرکانسی بیشتر و رزولوشن زمانی کمتر می شود و اگر طول بازه زمانی کوچک در نظر گرفته شود، در نتیجه آن رزولوشن فرکانسی کمتر و رزولوشن زمانی بهتر می شود .
رزولوشن زمانی
منظور از رزولوشن زمانی خوب این است که ما در هر لحظه از زمان میتوانیم متوجه شویم که سیگنال چه طیف فرکانسی دارد و در منظور از رزولوشن زمانی بد هم این است که نمیتوانیم در هر لحظه متوجه شویم که سیگنال چه طیف فرکانسی دارد.
رزولوشن فرکانسی
رزولوشن فرکانسی اگر خوب باشد، در طیفهای فرکانسی باریکتر در اسپکتروگرام دیده میشود. و اگر بد باشد، به صورت پهن دیده دیده میشوند و در نتیجه آن نمیتوان تحلیل فرکانسی را به طور دقیق انجام داد.
در شکل زیر اسپکتروگرام سیگنال به ازای طول بازه زمانی کوتاه و بزرگ رسم شده است.
طول بازه های زمانی را چقدر در نظر بگیریم؟
طبق اصل ” عدم قطعیت هایزنبرگ” ما نمیتوانیم طول بازه های زمانی را طوری تعریف کنیم که هم رزولوشن فرکانسی و هم رزولوشن زمانی به طور همزمان خوب باشند. باید یک trade off (بده و بستان) بین رزولوشن زمانی و فرکانسی داشته باشیم.
حالا برای سیگنال مورد مطالعه ی خودمان طول بازه های زمانی چقدر تعریف کنیم بهتر است؟
بستگی به سیگنالی دارد که بررسی میکنید. برای مثال اگر سیگنالی که بررسی میکنید، در آن طیف فرکانسی در طول زمان خیلی تغییر نمیکند، طول بازه زمانی را بزرگ در نظر بگیرید، چرا که اینجا رزولوشن زمانی خیلی اهمیتی ندارد. ولی اگر پترن فرکانسی سیگنال شما در طول زمان متغیر هست بهتر است که طول بازه زمانی را کوچک در نظر بگیرید تا رزولوشن زمانی خوبی داشته باشید و تحلیل زمانی خوبی انجام دهید.
در دوره پروژه محور “تبدیل فوریه زمان کوتاه در پردازش سیگنال مغزی(EEG)“ مباحث مربوط به تبدیل فوریه زمان کوتاه، اسپکتروگرام و کاربرد آن در پردازش سیگنال مغزی از پایه و به صورت تخصصی همراه با پروژه های عملی آموزش داده ایم. به دوستانی که علاقه مند به این موضوع هستند پیشنهاد میکنیم که این دوره را نگاه کنند. از این مبحث علاوه بر پردازش سیگنال مغزی، در سایر سیگنالهای حیاتی و صوت و غیره میتوانید استفاده کنید.
ممنون بابت آموزش ساده و روانتون.
ممنون از لطف شما….
بسیار عالی من خیلی چیزها یاد گرفتم ممنون از توضیحات خوبتون
ممنون از لطف شما
خوشحالیم که براتون مفید بوده