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



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



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

برای ملموس تر شدن مفهوم موج سینوسی در اینجا به ارائه چند مثال با استفاده از MATLAB می پردازیم. دستورات زیر را به ترتیب در محیط MATLAB وارد کنید:
i = 1:44000;
w1 = sin( 2*pi * 500/44000 * i);
w2 = sin( 2*pi * 1000/44000 * i);
w11 =10* sin( 2*pi * 500/44000 * i);
w22 =10* sin( 2*pi * 1000/44000 * i);
wavplay(w1,44000);
wavplay(w2,44000);
wavplay(w11,44000);
wavplay(w22,44000);

دستور اول یک آرایه شامل مقادیر 1 تا 44000 تولید می کند که از این آرایه برای تولید موج سینوسی استفاده می کنیم. دستور دوم یک موج سینوسی با دامنه 1 و فرکانس 500 هرتز تولید می کند. دستور سوم نیز یک موج سینوسی با دامنه 1 و فرکانس 1000 هرتز ایجاد می کند. همانطور که در دستورات نیز مشاهده می کنید، w11 و w22 نیز موج های سینوسی با فرکانس 500 و 1000 هرتز تولید می کنند و تنها تفاوت آن ها با w1 و w2 در مقدار دامنه موج ها است.

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



که در این رابطه fs نشان دهنده این واقعیت است که در یک ثانیه چند عدد نمونه برداری باید انجام گیرد. در تکه کد بالا مقدار 44000 نشان می دهد که در یک ثانیه 44000 داده در فایل صوتی وجود دارد. نکته دیگر آن که ماکزیمم فرکانس قابل تولید با fs نمونه ، برابر با fs/2 خواهد بود. به عنوان مثال در تکه کد بالا ماکزیمم فرکانس قابل تولید با نرخ نمونه برداری 44000 در ثانیه برابر با 24 کیلوهرتز ( آستانه شنوایی انسان ) است. حال می توانید حدس یزنید که در نرم افزارهای صوتی، چرا فایل های با بیش از 44000 نرخ نمونه برداری نمی توان پیدا کرد!

هریک از موج های w1 ، w2 ، w11 و w22 به مدت 1 ثانیه از کارت صوتی پخش می شوند. این بدان دلیل است که تعداد نمونه هایی که برای هریک از آن ها تولید گردیده دقیقا 44000 نمونه است ( مقدار i که از 1 تا 44000 است ). در صورتی که بخواهید هریک از امواج فوق به مدت 2 ثانیه از کارت صوتی پخش شوند ، دستور اول را به صورت زیر تغییر دهید:
i = 1:88000;

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


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



یک سیگنال آنالوگ از لحظه ورود تا دیجیتال شدن مراحل زیر را به ترتیب طی می کند:
• آماده کردن سیگنال ورودی
• فیلتر کردن سیگنال ورودی
• نمونه برداری
• چندی کردن

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

در مراحل بعدی عمل دیجیتال کردن زمانی که از مبدل آنالوگ به دیجیتال استفاده می کنیم، عملا نیاز به ولتاژهایی در بازه ( 5..0) ، ( 5-..5 ) یا ... ولت نیاز داریم. اما همانطور که دیدیم خروجی برخی از سنسورها ( همانند سنسور نوار قلبی ) در حد میلی ولت است. بنابراین نیاز به روشی داریم که بتوانیم خروجی سنسورها را تقویت کرده و آن ها را برای ورود به مبدل های آنالوگ به دیجیتال آماده کنیم.

این مرحله از عمل دیجیتال کردن ورودی را آماده سازی سیگنال ورودی می گوییم که در آن از تقویت کننده ها ( آمپلی فایر ) برای افزایش/ کاهش بهره ولتاژ استفاده می کنیم. لازم به ذکر است که امروزه سیستم تقویت کننده سیگنال به شکل توکار بر روی کارت های صوتی وجود دارد و در کارهای معمول خود نیاز به نصب تقویت کننده خارجی به کارت صوتی نداریم.در سیستم عامل ویندوز ضریب بهره آمپلی فایر کارت صوتی توسط Volume Controller خود سیستم عامل تعیین می شود.

فیلتر کردن سیگنال
خطوط تلفن دیجیتال قابلیت حمل سیگنال هایی در بازه 0 تا 3400 هرتز را دارند. از اینرو سیگنال هایی که فرکانسی خارج از این محدوده دارند، باید قبل از دیجیتال شدن فیلتر شوند. این عمل نیز با طراحی فیلترهایی امکان پذیر است. در واقع پس از آنکه سیگنال ورودی آماده شد ( تقویت گردید ) وارد سیتم فیلترینگ می گردد تا سیگنال های خارج از محدوده فرکانسی آن کاربرد ، از سیستم حذف گردند.

طراحی فیلترها
از اهمیت ویژه ای برخوردار است چراکه اگر سیگنال به شکل صحیح فیلتر نشود، دچار اختلال هایی خواهد شد. با توجه به اینکه طراحی فیلترهای آنالوگ خارج از حیطه تخصصی ما می باشد، بنابراین از ذکر مطالب در مورد آن ها خودداری می کنیم. با این حال زمانی که نحوه طراحی فیلترهای دیجیتال را شرح می دهیم، پارمترهایی را که برای طراحی یک فیلتر مناسب باید در نظر گرفت ، نشان خواهیم داد.

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

چندی کردن سیگنال
در مرحله نمونه برداری دیدیم که یک نمونه از سیگنال به شکل ولتاژ نمونه برداری شد. در این مرحله ولتاز نمونه برداری شده باید به شکل دیجیتالی ( عدد باینری ) تبدیل شود. برای این منظور نیز از مبدل های آنالوگ به دیجیتال استفاده می کنیم. به عنوان مثال یک مبدل انالوگ به دیجیتال 8 بیتی به ازای ورودی خود عددی بین 0 تا 255 تولید می کند. فرض کنید ورودی مبدل در بازه 0 تا 5 ولت باشد. این بدان معناست که به ازای ورودی 0 ولت ، خروجی مبدل عدد باینری 0 و به ازای ورودی 5 ولت خروجی مبدل عدد باینری 255 خواهد بود. بدیهی است که افزایش تعداد بیت های مبدل موجب افزایش دقت چندی شدن خواهد شد.


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

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



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

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

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