امروزه داده و پردازش داده حکم نفت را داراست. پردازش سیگنال از زمانی که ارتباطات گسترده در دنیا شکل گرفت اهمیت بیشتری پیدا کرد (قبل از آن هم همیشه وجود داشته است). پردازش سیگنال با FPGA معایب و مزایای مختلفی دارد که برخی از آنها را در ادامه مطرح می کنیم.
دلیل انجام پروژه پردازش سیگنال با FPGA
یکی از بهترین دلایل برای انتخاب FPGA به عنوان پردازنده در پردازش سیگنال، پردازش موازی است. بدین صورت که میتواند همزمان بیش از یک دستور را در هر کلاک انجام دهد. مخصوصا در سیستم های مخابراتی که همزمان ارتباطات زیادی در حال انجام است، این مسئله اهمیت بیشتری پیدا می کند.
ماژول (IP) های مختلفی نیز در FPGA به همین منظور طراحی شده که کار پردازش سیگنال با FPGA را تسهیل می کند. به عنوان مثال فیلترهای دیجیتال (بالا گذر، پایین گذر …) که با FIR طراحی می شود، می تواند سیگنال با فرکانس های ناخواسته را به خوبی حذف کند.
همان طور که می دانید سیگنال ها در حوزه زمان و فرکانس تعریف می شوند. در انجام پروژه پردازش سیگنال با FPGA از FFT و IFFT نیز جهت انتقال سیگنال به حوزه های زمان و فرکانس استفاده می شود که بسته به نوع پروژه می تواند قدرت پردازش را به شدت بالا ببرد.
همچنین با بهینه سازی FPGA پردازش پروتکل ها خاص نیز ممکن می شود. به عنوان مثال میتوان ماینرهای ارز دیجیتال را مثال زد که با تکیه بر تکنولوژی block chain به استخراج واحدهای ارز دیجیتال می کند.
ارتباط با دنیای واقعی
البته بخشی که تقریبا همیشه در پروژه های پردازش سیگنال با FPGA مورد استفاده قرار می گیرد، ADC و DAC ها هستند که میتوان به نوعی آنها را وسیله ی ارتباط با دنیای واقعی دانست. تقریبا همه سیگنال ها در دنیای واقعی به صورت آنالوگ هستند اما پردازش سیگنال به صورت دیجیتال انجام می شود.
چند مثال از کاربردهای پردازش سیگنال
امروزه با پردازش سیگنال به تشخیص شدت زلزله پرداخته می شود. ارتباطات تلفنی و اینترنتی بدون پردازش سیگنال غیر ممکن است. پردازش تصویر خود یک نوع از پردازش سیگنال است. کارتخوان در واقع سیگنال کارت را جهت شناسایی پردازش می کند.
در تلفن های همراه با پردازش سیگنال چهره یا اثر انگشت به کاربر اجازه ورود داده می شود. تشخیص سطح مایع در صنایع شیمیایی و نفت به وسیله ی پردازش سیگنال ممکن است و بینهایت مورد دیگر …
بیایید به عنوان مثال به پردازش سیگنال با FPGA جهت محاسبه ی سرعت یک زیردریایی بپردازیم. بدین منظور میتوان از خاصیت بازتاب سیگنال فراصوت استفاده کرد. مخصوصا برای تشخیص میزان سرعت باید دوبار این ارسال و دریافت صوت انجام گیرد.
چراکه هربار این عمل فاصله ی متحرک را به ما میدهد. منتها سرعت پردازش پردازنده است که اولا دقت محاسبات و ثانیا سرعت محاسبات را تعیین میکند. تا اینجا پردازش سیگنال با FPGA یا بسیاری از پردازنده های دیگر امکان پذیر است.
مسئله از جایی شروع میشود که قرار باشد تعداد پردازش های همزمان زیادی انجام پذیرد. در مواقعی که قرار باشد محاسبات زیادی به صورت موازی انجام پذیرد یکی از بهترین پردازنده ها FPGA خواهد بود. به عبارتی پردازش سیگنال با FPGA به صورت موازی امکان پذیر است چیزی که در پردازنده های دیگر امکان پذیر نیست.
مثال دیگر میتواند پردازش سیگنال با FPGA در حوزه ی تشخیص صوت باشد. یک راه حل این مورد میتواند استفاده از شبکه های عصبی در پردازش سیگنال باشد راه دیگر آن میتواند پیاده سازی پروتکل های خاص باشد. نکته ای که در این موارد است این است که FPGA باید بتواند به صورت بلادرنگ(real time) صورت را پردازش کند.
چیزی که در پردازنده های دیگر وجود ندارد. ممکن است فکر کنید دیگر پردازنده ها (غیر از FPGA و ASIC) انجام محاسبات را به صورت بلادرنگ انجام میدهند اما واقعیت این است که تا زمانی که حجم اطلاعات پایین باشد این مسئله درست است.
به محض آنکه حجم اطلاعات در حال پردازش از میزانی بالاتر رود هر پردازنده ای (غیر از FPGA و ASIC) از حالت بلادرنگ خارج میشود. پس یکی دیگر از فواید پردازش سیگنال با FPGA همین بلادرنگ بودن آن است که گاهی در پردازش سیگنال مسئله اصلی است.
پردازش سیگنال به صورت بلادرنگ
در پردازش سیگنال با FPGA یکی از تفاوت ها و البته مزایایی که نسبت به دیگر پردازنده ها دیده میشود پردازش بلادرنگ یا real time processing است. مخصوصا در کاربردهایی که نیاز به پردازش سریع وجود دارد این مورد میتواند بسیار مورد اهمیت باشد.
به عنوان مثال فرض کنید در حال پردازش تصویر با FPGA هستیم برای تشخیص نقص بارکد محصولاتی که از زیر دوربین عبور میکنند. برای این مورد زمانی که سرعت عبور محصولات بالا باشد باید از پردازش سریع و بلادرنگ استفاده شود وگرنه ممکن است محصولات با بارکد اشتباه تشخیص داده نشود.

کاهش توان مصرفی
گاهی اوقات توان مصرفی ممکن است مورد اهمیت قرار گیرد به عنوان مثال در تولید ماینرها و استخراج ارزهای دیجیتال که توان زیادی مصرف میگردد، FPGA میتواند گزینه ی بسیار مناسبی باشد و برای این مورد پردازش سیگنال با FPGA انتخاب گردد.
البته علاوه بر آن میتوان از ASIC ها نیز استفاده کرد که به نسبت گرانتر هستند و اگر سفارشی ساخته شوند قیمت آنها با FPGA ها قابل مقایسه نیست. از این نظر برای کارهای با توان کم یا به اصطلاح low power و همچنین کم هزینه معمولا FPGA انتخاب خوبی خواهد بود.
کار در شرایط سخت
ممکن است شنیده باشید که در فضاپیماها از چه پردازنده ای استفاده میشود. بله در فضاپیماها پردازش سیگنال با FPGA صورت میگیرد چراکه مقاومت بیشتری در برابر پرتوهای کیهانی دارند. همچنین اگر پرتوهای کیهانی باعث اختلال در عملکرد پردازش سیگنال گردند این اختلال قابل رفع است.
علاوه بر آن FPGA ها در شرایط سخت آب و هوایی نیز مقاومت بیشتری دارند. از جمله کار در کنار کوره ها یا در هوای بسیار سرد که ممکن است عملکرد پردازنده ها مختل گردد. این ویژگی نیز به دلیل ساختار داخلی آنها است که با دیگر پردازنده ها تفاوت دارد.
با افتخار، ما در گروه مهندسی آریادنا با تجربه انجام پروژه های مختلف پردازش سیگنال با FPGA در زمینه های مهندسی مخابرات، مهندسی پزشک، مهندسی نفت و … با پیشنهاد بهترین زمان، هزینه و کیفیت به بهترین پاداش یعنی رضایت کارفرما رسیده ایم.