تبلیغات
" /> باران الکترونیک - مطالب DSP
یکشنبه 18 بهمن 1394  12:03 ق.ظ
نوع مطلب: (DSP ،برنامه نوسی C ،) توسط: امیرحسین رستمی

هدف از این مقاله تبدیل یک کد ‏floating-poing‏ به ‏fixed-point‏ و مقایسه این دو کد از نظر زمان اجرا ‏می باشد. برای این منظور از کد تولید صدای ناقوس در ‏MATLAB‏ استفاده شد و آن را در پردازنده ‏DSP‏ به ‏شماره قطعه ‏TMS320C5509A‏ پیاده سازی کردیم.‏
می توانید صدای نهایی را از لینک زیر دریافت کنید:
پیاده سازی پروژه نهایی روی پردازنده  DSP در ویدیوی زیر نشان داده شده است:
 
[http://www.aparat.com/v/dsigR]

صوت دیجیتال
 
از کاربردهای صوت دیجیتال می توان به تولید صدا و افکت گذاری روی صدا اشاره کرد. برای تولید صدا به صورت دیجیتال ‏روش های زیادی وجود دارد که عبارتند از:‏
  • مدولاسیون فرکانسی (‏Frequency Modulation‏)‏
                     در این روش از یک موج فرکانسی پیچیده برای تولید صدا به کار می رود‎.‎‏ فرمول کلی به صورت زیر می باشد:‏
    sound = A sin(αt+Isin(βt))‎
 
  • جدول موج ‏Wavetable synthesis
             در این روش صدا از نمونه برداری صدای دستگاه های موسیقی ساخته می شود.‏
 
  • افزایشی ‏Additive synthesis
            در این روش صدا نهایی از ترکیب صداهای ساده تر و کوتاه تر ساخته می¬شود.‏
 
  • کاهشی ‏Subtractive synthesis
              در این روش از یک شکل موج پیچیده (مانند دندان اره ای) به عنوان ورودی استفاده می شود سپس با فیلتر کردن سعی در ‏تولید صدای نهایی می شود.‏
 
  • دانه ای ‏Granular Synthesis
             در این روش از قطعات کوتاه برای ساخت صدای جدید استفاده می شود.‏
 
  • مدل فیزیکی ‏Physical Modelling
             در این روش صدای تولید شده از دستگاه با مدل کردن شکل دستگاه و پیدا کردن معادله موج (ریاضیات مهندسی) ساخته ‏می شود.‏
 
  • مبتنی بر نمونه ‏Sample-based synthesis
             در این روش از ذخیره و بازپخش صدای ضبط شده استفاده می شود. معمولا صدای ضبط شده کوتاه است و همراه با پردازش ‏صوت می باشد.‏

تولید صدا زنگ ناقوس با استفاده از روش ‏FM
 
کد متلب
 
کد ‏MATLAB‏ برای تولید صدای زنگ به صورت زیر می باشد:‏

% bell.m

%

% A Matlab script to compute a bell-like sound using frequency modulation.

%

% by Gary Scavone, McGill University, 2004.

  

% Signal parameters

fs = 22050;

T = 1/fs;

dur = 4.0;

t = 0:T:dur;

T60 = 1.0;

env = 0.95*exp(-t/T60);

  

% FM parameters

fc = 200;

fm = 280;

Imax = 10;

I = Imax.*env;

  

y = env.*sin(2*pi*fc*t + I.*sin(2*pi*fm*t));

plot(t, y);

 

sound(y, fs);


wavwrite(y,fs,16,'sound_bell_float')

% dospectrum = input('\nPlot spectrum? Y/[N]:\n\n', 's');

 

% if dospectrum == 'y',

  specgram(y, 512, fs, [], 256)

% end


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

صدای ناقوس در حوزه زمان


پنجشنبه 5 آذر 1394  11:25 ب.ظ
نوع مطلب: (DSP ،برنامه نوسی C ،) توسط: امیرحسین رستمی

نوآوری با پردازش سیگنال شروع می شود ...‏

در این مقاله ابتدا به بررسی تفاوت های پردازنده های ممیز ثابت و شناور می پردازیم، سپس با انجام ‏محاسبات ریاضی در پردازنده ممیز ثابت توضیح می دهیم.‏

Fixed-point‏ در مقابل ‏Floating-point

در پردازنده ‏DSP‏ ‏Floating-point‏ ضرب و جمع اعشاری در یک کلاک انجام می پذیرد ولی در ‏پردازنده ‏Fixed-point‏ برای ضرب یا جمع اعشاری تعداد زیادی کلاک لازم است.‏
پردازنده های ممیز شناور 32 بیتی و پردازنده های‎‏ ممیز ثابت‎ ‎‏16 بیتی می باشند.‏
در پردازنده های ممیز شناور زمان نوشتن برنامه سریع تر می باشد زیرا برنامه نویس نگران سرریز و ‏خطای گردن کردن نیست. در مقابل نوشتن برنامه برای پردازنده ممیز ثابت سخت تر است و برنامه ‏نویس باید برنامه بیش تری بنویسد تا از سریز جلوگیری کند.‏
پردازنده های ممیز شناور گران تر هستند و توان بیش تری مصرف می کنند اما پردازنده های ممیز ‏ثابت ارزان قیمت می باشند، توان مصرفی کمتری دارند و برای کارهای قابل حمل مناسب ترند.‏
مزیت اصلی که پردازنده ممیز شناور نسبت به ممیز ثابت دارد این است که نرخ سیگنال به نویز ‏‏(گرد کردن اعداد) در پردازنده ممیز شناور ‏ بسیار بالاتر از ممیز ثابت ‏است.‏

پردازنده ممیز ثابت
برای این که محاسبات اعشاری در ‏DSP‏ ممیز ثابت با سرعت بالا انجام شود، ابتدا اعداد اعشاری را بین 1- و ‏‏1+ نرمالیزه می کنند. سپس این اعداد را در ‏‎215 = 32768‎‏ ضرب می کنند. در انتها اعداد را گرد می کنند تا ‏بخش اعشاری حذف شود. به این فرمت نمایش ‏Q0.15‎‏ و یا به طور خلاصه ‏Q15‎‏ می گویند. یک بیت برای ‏علامت و 15 بیت برای قسمت صحیح می باشد که در مجموع 16 بیت می شود.‏
فرمت ‏Q3.12‎
در فرمت ‏Q15‎، 15 بیت اعشاری و صفر بیت صحیح می باشد. می توان ترکیبی از بیت های اعشاری و صحیح نیز داشت. برای ‏مثال 3 بیت صحیح و 12 بیت اعشاری برای نمایش اعداد بین ‏‎(-‎32768‎)   ⁄  2^12 ‎‏ تا ‏‎(+32768‎)   ⁄  2^12 ‎‏ یا 8- تا 9997/7 ‏داشت.‏
به عنوان یک مثال کاربردی بست تیلور سینوس را در نظر بگیرید:‏
sin(x) = c1*x + c2*x^2 + c3*x^3 + c4*x^4 + c5*x^5‎
c1 = 3.140625x
c2 = 0.02026367‎
c3 = − 5.3251‎
c4 = 0.5446778‎
c5 = 1.800293‎
همان که مشاهده می کنید ضرایب بین 5- تا 3 می باشند. به جای نرمالیزه کردن و نمایش اعداد به فرمت ‏Q15‎‏ می توان از فرمت ‏Q3.12‎‏ برای دقت به تر استفاده کرد. کافی است تا ضرایب را در 212‏‎ ‎‏ ضرب کنیم و نتیجه نهایی را گرد کنیم تا اعداد به فرمت ‏Q3.12‎‏ ‏نشان داده شوند.‏
(برای ادامه مطلب به ادامه مطلب بروید)


نظرات()       

(From Simulation to Implementation)

هدف

در بسیاری از کاربردها لازم است تا نرخ نمونه برداری سیگنال تغییر کند. در این پروژه هدف این است که نرخ نمونه برداری سیگنال را افزایش دهیم. این فرایند در MATLAB شبیه سازی و در DSP سری 5000 شرکت TI پیاده سازی می­شود. این کار را با  استفاده از upsampling، فیلتر پایین گذر و downsampling انجام می­دهیم. نمودار بلوکی پروژه در شکل 1 نشان داده شده است.

شکل 1: نمودار بلوکی پروژه 

مقدمه

در این پروژه یک سیگنال سینوسی با فرکانس KHz 5/1 که با نرخ  KHz‏‏8 نمونه برداری شده است را با استفاده از نرم­افزار MATLAB تولید می­کنیم. می­خواهیم نرخ نمونه برداری سیگنال سینوسی را به KHz‏ ‏6/9 افزایش دهیم. ابتدا مروری بر روابط ریاضی حاکم بر این فرایند می­کنیم. با استفاده از متلب فیلتر مناسب را طراحی می­کنیم سپس به شبیه سازی این فرایند می­پردازیم. در نهایت بعد از رسیدن به نتایج مطلوبمان، از کتابخانه پردازش سیگنال شرکت TI برای پیاده سازی این پروژه روی پردازنده DSP سری 5000 استفاده میکنیم.



نظرات()       

برنامه M-file برای تغییر نرخ نمونه برداری سیگنال

اکنون می­خواهیم با نوشتن چند خط برنامه متلب یک سیگنال سینوسی با فرکانس KHz 1/5 که با نرخ KHz‏‏8   نمونه برداری شده است را تولید می­ کنیم. سپس نرخ نمونه برداری سیگنال را به KHz‏ 9/6 افزایش میدهیم.

مقدار دهی اولیه برنامه

%% Initialization

up_sample = 6;

down_sample = 5;

Fs= 8000;                       % Sampling frequency

T = 1/Fs;                       % Sample time

L = 1000;                       % Length of signal

t = (0:L-1)*T;                  % Time vector

1) تولید سیگنال سینوسی با فرکانس ‏KHz‏ 5/1 و نرخ نمونه برداری ‏KHz‏‏8‏

%% Produce input: sin 1.5 KHz, sample rate 8000

x=round(2^15*sin(2*pi*1500*t));

i=find(x>2^15-1);

x(i)=2^15-1;

i=find(x<-2^15);

x(i)=2^15;

plot(1000*t(1:50),x(1:50))

title('Sin 1.5 KHz, Sample Rate : 8KHz')

xlabel('time (milliseconds)')

% Plot frequency of signal

NFFT = 2^nextpow2(L); % Next power of 2 from length of y

X = fft(x,NFFT)/L;

f = Fs/2*linspace(0,1,NFFT/2+1);

% Plot single-sided amplitude spectrum.

figure

plot(f,2*abs(X(1:NFFT/2+1)))

title('Single-Sided Amplitude Spectrum of x(t)')

xlabel('Frequency (Hz)')

ylabel('|X(f)|')

بقیه مقاله در ادامه مطلب


نظرات()       

پیاده سازی در DSP

در این قسمت از سیگنال سینوسی با فرکانس ‏KHz‏ 1/5 و نرخ نمونه برداری ‏KHz‏‏8‏ در نرم­افزار متلب تولید شده است ‏به عنوان ورودی برنامه C استفاده می­کنیم. همان طور که مشاهده کردیم بین هر دو نمونه 5 تا صفر اضافه می­کنیم تا نرخ نمونه برداری 6 برابر شود. سپس با استفاده فیلتر FIR و ضرایب فیلتر fixed-point که توسط برنامه متلب طراحی کردیم سیگنال ورودی را فیلتر می­کنیم. برای این منظور می­توانیم از فیلتر FIR که در کتابخانه پردازش سیگنال پردازنده DSP وجود دارد (شکل 8) استفاده کنیم. برای مثال می­توانیم از تابع fir برای این منظور استفاده کنیم.

شکل 8: بخشی از کتابخانه پردازش سیگنال

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

در این رابطه r خروجی فیلتر، h ضرایب فیلتر و x ورودی فیلتر می­باشد. همان­طور که مشاهده می­کنید صفرهای اضافه شده به ورودی در محاسبات وارد نمی­شود و بار پردازشی به شدت کاهش می­یابد. تابع C این فیلتر به صورت زیر میباشد:

ushort oflag = firinterp (DATA *x, DATA *h, DATA *r, DATA *dbuffer , ushort nh, ushort nx, ushort I)

 

برای این که این تابع به درستی کار کند باید طول فیلتر مضرب صحیحی از l باشد و از سه برابر آن بیشتر باشد.



نظرات()       
یکشنبه 29 تیر 1393  06:18 ب.ظ
نوع مطلب: (DSP ،) توسط: امیرحسین رستمی

در ابتدا شما باید به برنامه C آشنایی داشته باشید. پس از نصب برنامه code composer 3.3 به آیکون Setup CCStudio v3.3 که در Desktop قرار دارد رفته و simulator مورد نظر را، برای نمونه c5510 device Simulator، add کنید و روی Save & Quit کلیک کنید. (برای کار کردن با برد باید درایو آن را از روی CD برد نصب کنید. برای کسب اطلاعات بیشتر به Quick Start Installation  Guide برد خود مراجعه کنید:  C:\CCS\docs\pdf) با ظاهر شدن پنجره بعدی، گزینه yes را انتخاب کنید تا برنامه CCStudio باز شود. با رفتن به قسمت Help > contents ، برنامه ccs را به طور کامل یاد بگیرید.

برای این که بتوانید به صورت real-time با DSP ارتباط برقرار کنید لازم است تا از MATLAB استفاده کنید. برای یاد گیری آن در MATLAB 7.6 به قسمت help > Embedded IDE Link CC رفته و آن را یاد بگیرید. سپس نوبت یادگیری help بردی است که با آن کار می کنید. در قسمت C:\CCStudio_v3.3\docs\hlp دنبال آن بگردید. اگر نبود باید ccs مربوط به بردی را که با آن کار می کنید، نصب کنید. اگر با dsk5510 کار می کنید می توانید dsk5510_setup.exe را نصب کنید. با نصب این فایل، مثال ها و راهنما های کاربری مربوط به dsk5510 در مسیر C:\CCStudio_v3.1 نصب می شوند. این فایل از سایت http://www.spectrumdigital.com دانلود شده است. سپس نوبت خواندن user manuals مربوط به تراشه DSP ای است، که با آن کار می کنید. این user manuals به صورت pdf می باشند و برای سری 5000، در مسیر C:\CCStudio_v3.3\docs\PDF\manuals_ccs_full_c5000.html قرار دارند. در زیر تعدادی از pdf های مهم ذکر شده است:

TMS320C55x DSP Library Programmer's Reference

TMS320C55x Image/Video Processing Library Programmer's Reference

TMS320C55x DSP Mnemonic Instruction Set Reference Guide

برای یادگیری DSP کتاب زیر خیلی مفید است:

real time digital signal processing tmsc320c55x

ایجاد پروژه جدید

ابتدا باید یک پروژه جدید ایجاد کنید(project > new). برنامه ی خود را که به زبان c یا اسمبلی است در File > new > Source File بنویسید و با فرمت مناسب در پوشه ای  که ایجاد کرده اید، ذخیره کنید. سپس باید آن را به پروژه خود add کنید: Project > Add files to project. برای این که بتوانید پروژه ای را که ساخته اید build  کنید لازم است تا چند فایل دیگر به آن اضافه کنید. برای اضافه کردن کتاب خانه rts برای DSPهای سری 5500 مسیر زیر را دنبال کنید:

Project > Add files to project > C:\CCStudio_v3.3\C5500\cgtools\lib

rst55x.lib را به پروژه خود اضافه کنید. (x بیان گر این است که شما از Large memory model استفاده می کنید. برای قرار دادن memory model در حالت large : Project > Built options > compiler > advanced > Memory Model > Large)

فایل دیگری که باید اضافه کنید، فایل cmd است. این فایل مشخص می کند که هر قسمت از برنامه در کدام قسمت از حافظه DSP ذخیره شود. لازم نیست تا آن را بنویسید بلکه می توانید آن را از مثال های موجود در پوشه ccs ، copy کنید و SECTIONS خود را به آن اضافه کنید. (در صورتی که SECTION  ای با استفاده از #pragma ایجاد کرده باشید.)

برای مثال:

C:\CCStudio_v3.3\tutorial\dsk5510\sinewave\ sinewave.cmd

فایل های هدری(.h)  که به برنامه C  ، include می کنید را نباید به صورت دستی به پروژه اضافه کنید بلکه ccs به پروژه شما اضافه می کند.

حالا می توانید برنامه خود را built  کنید:

Project > Rebuild All

اگر برنامه شما error ی نداشته باشد فایل .out تولید خواهد شد. شما می توانید این فایل را وارد DSP کنید و یا توسط شبیه ساز اجرا کنید:

File > Load Program > Debug > *.out

چند نکته:

·         هنگامی که پروژه ای را ایجاد می کنید لازم است تا چند فایل را به آن اضافه کنید که یکی از این ها، فایلی با پسوند .cmd می باشد . شما لازم نیست تا این فایل را بنویسید بلکه می توانید آن را از مثال هایی که در پوشه ccs موجود است و مربوط به برد شما است کپی کرده و در پروژه های خود استفاده کنید.

·         هنگامی که از  DSP/BIOS در CCS3.3 استفاده می کنید باید ورژن تراشه و سیلیکن را در مسیر زیر اضافه کنید:

o   Project > Built Option > compiler > Preprocessor > Pre-Define Symbol(-d)

برای مثال برای dsk5510 باید عبارت زیر را اضافه کنید:

;CHIP_5510PG2_2

·         اگر می خواهید از RTDX که توسط DSP/BIOS درست کرده اید در simulator استفاده کنید باید RTDX Mode   را در مسیر زیر روی simulator قرار دهید:

 

*.pjt > DSP/BIOS Config > *.tcf > Input/Output  > RTDX > right click > properties

 

·         برای تولید ضرایب فیلترها در MATLAB و ذخیره آن ها به صورت هدر فایل و استفاده از آن در پروژه خود به  صورت زیر عمل کنید:

MATLAB > start > Toolboxes > Filter Design > Filter Design & Analysis Tool (fdatool)

 

پس از طراحی فیلتر مورد نظر می توانید آن را به صورت زیر با فرمت مناسب ذخیره کنید:

Targets > Generate c header > Export as : signed 16-bit integer

 

·         برای رسم پاسخ فرکانسی یک سیگنال :

در قسمت Display Type ، FFT Magnitude را انتخاب کنید. در قسمت Start Address، نام سیگنال را وارد کنید.

در قسمت  Acquisition Buffer Size و  FFT Framesize طول سیگنال را وارد کنید. در قسمت DSP Data Type نوع مربوطه را انتخاب کنید. در قسمت Sampling Rate(Hz) ، نرخ نمونه برداری را وارد کنید.

دانلود فایل PDF

یک مقاله خوب در این زمینه

How to Learn DSP Programming


نظرات()   
   

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

دوربین دیجیتال

معمولا دو باس ارتباطی بین دوربین و پردازنده وجود دارد:

باس کنترلی: در بیشتر مواقع به فرمت i2c می­باشد و برای مقدار دهی رجیسترهای داخلی حسگر تصویر مورد استفاده قرار می­گیرد. این رجیسترها وظیفه تعیین فرمت پیکسل خروجی، اعمال فیلترهای مختلف به تصویر و .. را بر عهده دارند.

باس داده: داده­هایی که از دوربین به پردازنده منتقل می­شود می­تواند به صورت سریال یا موازی باشد:

الف) ارتباط موازی یا Camera Parallel Interface (CPI)

ارتباط موازی شامل 8 خط داده برای انتفال تصویر و چند خط sync برای کنترل دریافت این داده­ها می­باشد:

Vsync: شروع و پایان یک فریم تصویر را مشخص می­کند.

Hsync: شروع و پایان یک خط تصویر را مشخص می­کند.

Pixel clock: آمدن هر پیکسل را مشخص می­کند.

ب) ارتباط سریال Camera Serial Interface (CSI)

بیش­تر دوربین­هایی که در تلفن­های هوشمند و تبلت­های امروزی استفاده می­شوند از حسگرهای MIPI (Mobile Industry Processor Interface) استفاده می­کنند. رابط غالب برای این نوع حسگرهای تصویر CSI-2 (Camera Serial Interface 2) می­باشد.

سیگنال داده: تا چهار خط دیفرانسیلی

سیگنال کلاک: یک خط دیفرانسیلی (بیشینه سرعت Gbit/s 1)


نظرات()       

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

دوربین دیجیتال

معمولا دو باس ارتباطی بین دوربین و پردازنده وجود دارد:

باس کنترلی: در بیشتر مواقع به فرمت i2c می­باشد و برای مقدار دهی رجیسترهای داخلی حسگر تصویر مورد استفاده قرار می­گیرد. این رجیسترها وظیفه تعیین فرمت پیکسل خروجی، اعمال فیلترهای مختلف به تصویر و .. را بر عهده دارند.

باس داده: داده­هایی که از دوربین به پردازنده منتقل می­شود می­تواند به صورت سریال یا موازی باشد:

الف) ارتباط موازی یا Camera Parallel Interface (CPI)

ارتباط موازی شامل 8 خط داده برای انتفال تصویر و چند خط sync برای کنترل دریافت این داده­ها می­باشد:

Vsync: شروع و پایان یک فریم تصویر را مشخص می­کند.

Hsync: شروع و پایان یک خط تصویر را مشخص می­کند.

Pixel clock: آمدن هر پیکسل را مشخص می­کند.

ب) ارتباط سریال Camera Serial Interface (CSI)

بیش­تر دوربین­هایی که در تلفن­های هوشمند و تبلت­های امروزی استفاده می­شوند از حسگرهای MIPI (Mobile Industry Processor Interface) استفاده می­کنند. رابط غالب برای این نوع حسگرهای تصویر CSI-2 (Camera Serial Interface 2) می­باشد.

سیگنال داده: تا چهار خط دیفرانسیلی

سیگنال کلاک: یک خط دیفرانسیلی (بیشینه سرعت Gbit/s 1)


نظرات()       
شنبه 7 دی 1392  10:25 ب.ظ
نوع مطلب: (DSP ،) توسط: امیرحسین رستمی

امروزه انواع مختلفی از پردازنده های DSP به صورت تجاری در دسترس هستند. در جدول زیرتعدادی از پردارنده های DSP رایج خلاصه شده اند.

پردازنده­های DSP رایج

در گروه ساده و ارزان قیمت، از شرکت TI خانوادهء TMS320C2000 (C24x and C28x)، از شرکت Analog Devices خانوادهء ADSP-218x و از شرکت Freescale خانواده­ی DSP568xx قرار دارند. این پردازنده­های DSP شامل واحد ضرب کننده و شیفت رجیستر سخت افزاری می­باشند. همچنین در هر سیکل یک دستورعمل را اجرا می کنند. این پردازنده­ها از دستورعمل­های پیچیده­ای که شامل چندین عملیات از قبیل ضرب، جمع و به روز رسانی آدرس اشاره­گر می­شود، پشتیبانی می­کنند. آن­ها کارایی خوب را همراه با مصرف توان و حافظه­ی مورد استفاده­ی کم، فراهم می­آورند. بنابراین به طور گسترده در وسایل موتوری، مصرف کننده­های الکترونیکی، درایورهای هارد دیسک و مودم­ها به کار می­روند. برای مثال خانواده­های TMS320C2000 و DSP568xxبرای کاربردهای موتوری از قبیل کنترل موتور و کنترل اتومبیل با جمع کردن خیلی از ویژگی های میکروکنترلرها و دستگاه­های جانبی داخل یک تراشه، بهینه هستند.


نظرات()       
دوشنبه 2 دی 1392  05:57 ب.ظ
نوع مطلب: (DSP ،) توسط: امیرحسین رستمی

مقدمه:

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

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

 سیگنال های دیجیتال دارای مقدارهای گسسته هم در زمان و هم در دامنه هستند. بنابراین آن ها می توانند توسط کامپیوترها و میکروپروسسورها پردازش شوند.

مزیت های سیستم های آنالوگ:

·         قیمت ارزان و سادگی در بعضی از کاربردها:

o       تضعیف کننده ها و تقویت کننده ها

o       فیلترهای ساده

·         پهنای باند وسیع(GHz)

·         میزان سیگنال کم

·         نرخ نمونه برداری موثر بی نهایت

o       دقت بی نهایت در فرکا نس

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

·         دقت بی نهایت در دامنه

o       نبود نویز کوا نتیزایسیون

مزیت های پردازش سیگنال های دیجیتال (DSP):

·         تکرارپذیری

o       حساسیت کم به خطای مولفه ها

o       حساسیت کم به تغیرات دما

o       حساسیت کم به عوامل زمانی

§         عملکرد تقریباً یکسان در همهء دستگاه ها

§         مدارهای تطبیق یافته با قیمت کمتر

·         مصونیت از اختلال بالا

·         در بسیاری از کاربردها DSP، عملکرد بهتر و قیمت ارزان تر را فراهم می کند. برای مثال:

o       پخش کننده های CD در برابر صفحه های گرامافون

الگوریتم های DSP  می توانند توسط زبان های سطح بالا از قبیل  C/C++  و   MATLAB  کامل، تحلیل و شبیه سازی شوند. عملکرد الگوریتم ها می توانند توسط یک کامپیوتر شخصی بررسی شوند. بنابراین یک سیستم DSP از نظر طراحی، تکامل، تحلیل، شبیه سازی، آزمایش و نگه داری نسبتاً آسان است.


نظرات()       
شنبه 30 آذر 1392  10:43 ب.ظ
نوع مطلب: (DSP ،FPGA ،) توسط: امیرحسین رستمی

یک تفاوت اساسی بین پردازنده های DSP ساختار محاسباتی آن ها است: ممیز ثابت یا ممیز شناور. برای طراحان سیستم، این مهمترین عاملی است که به کمک آن تشخیص می دهند که آیا یک پردازنده DSP برای یک کاربرد مشخص مناسب است یا نه. پردازنده های DSP ممیز ثابت ممکن است 16 بیتی یا 24 بیتی باشند، در حالی که پردازنده های ممیز شناور معمولاً 32 بیتی هستند. یک پردازنده 16 بیتی ممیز ثابت رایج مانند TMS320C55x، اعداد را به فرمت صحیح یا اعشاری 16 بیتی در یک محدوده ثابت ذخیره می کنند. اگرچه ضرایب و سیگنال ها با دقت 16 بیتی ذخیره می شوند، مقادیر میانی برای کاهش خطاهای رند کردن تجمعی، ممکن است با دقت 32 بیتی  در accumulator ، 40 بیتی ذخیره شوند. DSPهای ممیز ثابت معمولاً از DSPهای ممیز شناور ارزان تر و سریع تر هستند چون آن ها از سیلیکون کمتری استفاده می کنند، مصرف توان کمتری دارند و به پین های خارجی کمتری نیاز دارند. موارد استفادهء پردازنده های ممیز ثابت عبارتند از: کنترل دستگاه های برقی، موبایل، درایو هارد دیسک، مودم ها پخش کننده های صوتی و دوربین های دیجیتالی.

حساب ممیز شناور محدوده دینامیکی اعداد را به شدت افزایش می دهد. یک پردازنده DSP ممیز شناور 32 بیتی رایج مانند TMS320C67x، اعداد را به صورت 24 بیت مانتیس و 8 بیت نما نمایش می دهد. مانتیس یک عدد اعشاری را در محدوده 1- و 1+ نمایش می دهد در حالی که نما یک عدد صحیح است که تعداد مکانهایی که ممیز باینری باید به چپ یا راست منتقل شود تا یک مقدار حقیقی بدست آید، را نمایش می دهد. یک فرمت ممیز شناور 32 بیتی، محدوده دینامیکی وسیعی را نمایش می دهد. بنابراین محدودیت هایی که روی حدود دینامیکی داده وجود دارند، ممکن است در یک طراحی با استفاده از پردازنده های DSP ممیز شناور نادیده گرفته شوند. این در نقطه مقابل طراحی با استفاده از ممیز ثابت قرار دارد. در طراحی با استفاده از ممیز ثابت طراح باید ضرایب مقیاس بندی و تکنیک های دیگری را اعمال کند تا از سرریز محاسبات جلوگیری کند، که یک فرایند خیلی مشکل و وقت گیر می باشد. از این رو، به طور کلی پردازنده های DSP ممیز شناور از نظر برنامه نویسی و استفاده آسان هستند، اما معمولاً گران تر هستند و توان بیشتری مصرف می کنند.

دقت و حدود دینامیکی پردازنده های DSP ممیز ثابت 16 بیتی رایج در جدول زیر خلاصه شده است.

 

دقت پردازنده های DSP ممیز شناور 32 بیتی، 23-^2 است. چون دارای 24 بیت مانتیس می باشند. همچنین حدود دینامیکی آن ها    1.18 ×10−38x ≤ 3.4 × 1038  می­باشد.

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


نظرات()   
   
جمعه 22 آذر 1392  07:03 ب.ظ
نوع مطلب: (DSP ،FPGA ،برد مدار چاپی ،Altera ،) توسط: امیرحسین رستمی

هدف طراحی و ساخت یک سخت افزار برای پردازنده DSP ساخت شرکت TI، سری 5000 یعنی A 5509 و یک FPGA ساخت شرکت Altera سری Cyclone III می­باشد.

طراحی شماتیک

طراحی مدار شامل طراحی مدار تغذیه، مدار ارتباطی بین FPGA و DSP، حافظه­­ی uSD، پورت سریال، حافظه­ی فلش برای ذخیره­ی برنامه­ی DSP و مدار واسط دوربین می­باشد. در ادامه به طراحی قسمت­های مختلف مدار پرداخته شده است.

مدار تغذیه

با توجه به برگه­ی اطلاعات برای راه­اندازی FPGA و DSP، مدار تغذیه باید ولتاژهای 3/3، 6/1، 5/2، 2/1 ولت را فراهم آورد. برای این منظور از 5 رگولاتور استفاده کردیم. ابتدا ولتاژ ورودی را با استفاده از یک رگولاتر به سطح 5 ولت رساندیم. سپس با 4 رگولاتور دیگر ولتاژهای مناسب را ساختیم. مدار تغذیه­ی طراحی شده در شکل 1 نشان داده شده است.

لطفا به ادامه مطلب مراجعه کنید (به همرا دانلود فایل PDF و پروژه (protel (Altium و فوت پرینت ها)


نظرات()       
جمعه 14 تیر 1392  09:39 ب.ظ
نوع مطلب: (FPGA ،DSP ،ARM ،) توسط: امیرحسین رستمی

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

میکرو کنترلر AVR

میکرو کنترلرهای AVR دارای معماری RISC (Reduced Instruction Set Architecture) می­باشند یعنی در هر کلاک می­توانند یک دستور ساده، مانند جابجایی عدد از حافظه به رجیستر را انجام دهند. این میکروها عموما 8 بیتی می­باشند. میکرو کنترلرهای ‏AVR‏ ‏ شامل 5 خانواده می­باشد که در ادامه به همراه ویژگی هر خانواده آورده شده است:


برای دیدن مقاله کامل به همراه دانلود فایل PDF روی ادامه مطلب کلیک کنید.




نظرات()       

DSP چیست؟

 

واژه DSP مخفف Digital Signal Processing یا Digital Signal Processor می باشد.

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

DSP  (Digital Signal Processor) مدار مجتمعی است كه برای پردازش دیتا با سرعت بالا طراحی شده است و در صدا، تصویر، مخابرات و ... كاربرد دارد.

در این پروژه ابتدا به معرفی پردازنده های DSP و انواع و کاربردهای آن پرداخته شده است. سپس تبدیل ویولت (موجک) معرفی شده است. و در انتها طراحی و پیاده سازی تبدیل موجک روی DSK5510 شرح داده شده است.

DSK5510

فهرست مطالب

فصل اول

معرفی ‏DSP

مقدمه‏

گزینه های موجود برای پردازش سیگنال های دیجیتال

DSPچیست؟

نحوهء عملکرد پردازش سیگنال های دیجیتالی

دلیل استفاده از ‏Digital Signal Processors

تاریخچه ضرب كننده

تاریخچه ‏DSP

انواع پردازنده های ‏DSP

ماشین با برنامهء ذخیره شده(‏(Stored Program Machines

كدام معماری برای ‏DSPمناسب تر است؟‏

اجزای یك سیستم ‏DSP ‏ رایج

کاربردهای عملی سیستم های ‏DSP

طراحی یک سیستم ‏DSP

رتبه بندی بازار ‏DSP

DSPهای شرکت ‏Texas Instruments‏ خانوادهء ‏TMS320‏‏

DSP‏ ممیز ثابت ‏TMSVC5510‏‏

TMS320VC5510 DSK‏‏

فصل دوم‏

تبدیل WAVELET

چکیده

انواع تبدیلات

کاربردهای ویولت

ویولت هار(‏The Haar Wavelet Family‏)‏

ویولت ها وتجزیه متعامد(‏wavelets and orthogonal decompositions‏)‏‏

تئوری تجزیه متعامد(‏The Orthogonal Decomposition Theorem‏)‏‏

ویولت پسر(‏the wavelet sons‏)

تحلیل ‏Multiresolution

خاصیت چگالی(‏DENSITY PROPERTY‏)

رابطه بین ویولت های مادر و ویولت های پدر

ویولت های ‏DAUBECHIES

پیاده سازی ویولت ها با استفاده از فیلترهای بالا گذر و فیلترهای پایین گذر‏

تبدیل عکس ویولت

فصل سوم‏

الگوریتم ها‏

الگوریتم مورد استفاده برای پیاده سازی تبدیل ویولت‏

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

فصل چهارم‏

مقایسه برنامه تبدیل ویولت  نوشته شده با برنامه نوشته شده توسط ‏TI‏ و ‏MATLAB

ضمیمه ها

برنامه تبدیل ویولت روی تراشه های ‏DSP‏ سری ‏c55x‏:‏‏

شرح برنامه

توضیح برنامه

منابع

دانلود فایل PDF


نظرات()   
   
آخرین پست ها