کدک ها ( یا همون voice codec ) با a/d تفاوت داره...
a/d سنکرون با کلاک از سیگنال ورودی نمونه برداری می کنه و به صورت پارالل یا سریال در خروجی قرار میده...
کدک نمونه گیری خودشو با توجه نمونه قبلی میگیره...اگوریتم های متفاوت دارن که نیاز به دونستنش نیست...
خروجی این کدک ها به صورت سریال هستش و سنکرون با کلاک..فقط برای کارهای صوتی بهینه شدن و داخلشون فیلترهای صوتی ،تقویت کننده صوتی،و... قرار داده شده که کار شما رو راحت کرده..
به عنوان مثال میتونی خانواده tlv320aic12k رو ببینی:
http://pdf1.alldatasheet.com/datasheet-pdf/view/196570/TI/TLV320AIC12K.html
کدک ها ( یا همون voice codec ) با a/d تفاوت داره...
a/d سنکرون با کلاک از سیگنال ورودی نمونه برداری می کنه و به صورت پارالل یا سریال در خروجی قرار میده...
کدک نمونه گیری خودشو با توجه نمونه قبلی میگیره...اگوریتم های متفاوت دارن که نیاز به دونستنش نیست...
خروجی این کدک ها به صورت سریال هستش و سنکرون با کلاک..فقط برای کارهای صوتی بهینه شدن و داخلشون فیلترهای صوتی ،تقویت کننده صوتی،و... قرار داده شده که کار شما رو راحت کرده..
به عنوان مثال میتونی خانواده tlv320aic12k رو ببینی:
http://pdf1.alldatasheet.com/datasheet-pdf/view/196570/TI/TLV320AIC12K.html
ممنون از راهنماییتون ولی ظاهراً استفاد از این قطعه خیلی هم آسون نیست، کاربردهایی هم که توی دیتاشیت اومده خیلی فراتر از کاریه که من میخوام بکنم، توی دیتاشیت کاربردش رو گفته:
• Digital Still Cameras
• Wireless Accessories
• Hands-Free Car Kits
• VOIP
• Cable Modem
ولی من فقط میخوام پردازش صوتی ساده انجام بدم. قطعه ساده تری به نظرتون نمیرسه؟
این قطعه راحت توی بازار پیدا میشه؟ توی اینترنت سرچ زدم فقط یه سایت داشت...
شما توسط یک ADC یا رزولوشن 16 بیت و نرخ نمونه برداری 48 KSPS میتونی از صدا نمونه بگیری. فقط باید با همین سرعت خروجی ADC رو بخونی و توی یک RAM قرار بدی یا ADC استفاده کنی که پایان هر تبدیل رو بهت خبر بده و در زمان خبر دادن مقدار خروجی ADC رو بخونی و تو RAM ثبت کنی. حالا شما توی این RAM اطلاعات سیگنال رو بصورت گسسته داری و میتونی روش پردازش کنی
خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...
شما توسط یک ADC یا رزولوشن 16 بیت و نرخ نمونه برداری 48 KSPS میتونی از صدا نمونه بگیری. فقط باید با همین سرعت خروجی ADC رو بخونی و توی یک RAM قرار بدی یا ADC استفاده کنی که پایان هر تبدیل رو بهت خبر بده و در زمان خبر دادن مقدار خروجی ADC رو بخونی و تو RAM ثبت کنی. حالا شما توی این RAM اطلاعات سیگنال رو بصورت گسسته داری و میتونی روش پردازش کنی
میشه لطفاً یه ADC با این مشخصاتی که گفتید معرفی کنید، من از یه برد spartan3 که کلاک را از یک کریستال 25MHZ دریافت میکنه استفاده میکنم، پس فکر نکنم بتونم با این نرخی که شما گفتید خروجی را دریافت کنم، از طرفی میخوام مجدداً صوت پردازش شده را تبدیل به آنالوگ کنم پس احتمالاً به دوتا ADC نیاز دارم، اگه بیشتر راهنمایی کنید ممنون میشم.
میشه لطفاً یه ADC با این مشخصاتی که گفتید معرفی کنید، من از یه برد spartan3 که کلاک را از یک کریستال 25MHZ دریافت میکنه استفاده میکنم، پس فکر نکنم بتونم با این نرخی که شما گفتید خروجی را دریافت کنم، از طرفی میخوام مجدداً صوت پردازش شده را تبدیل به آنالوگ کنم پس احتمالاً به دوتا ADC نیاز دارم، اگه بیشتر راهنمایی کنید ممنون میشم.
با سرعت 48 کیلوهرتز باید اطلاعات رو بخونی و توی یک RAM ثبت کنی، چرا نتونی؟
برای بازگردوندن به DAC نیاز داری و با همین سرعت دوباره سیگنال رو بازسازی می کنی.
خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...
با سرعت 48 کیلوهرتز باید اطلاعات رو بخونی و توی یک RAM ثبت کنی، چرا نتونی؟
برای بازگردوندن به DAC نیاز داری و با همین سرعت دوباره سیگنال رو بازسازی می کنی.
25 مگا مضرب صحیحی از 48 کیلو نیست، اگه بخوام اطلاعات را از ورودی بخونم نمیتونم یه کانتر بزارم بگم هر چند سیکل یک بار ورودی را برام بخون، مگر اینکه خود ADC بهم یه سیگنال بده که بفهمم تبدیل تموم شده. میشه لطفاً یه ADC و DAC با مشخصاتی که گفتید معرفی کنید.
یک کانتر به همراه یک مقایسه کننده قرار میدی و عدد دقیق تقسیم رو به ورودی دیگر مقایسه کننده میدی. از خروجی برابری مقایسه کننده میدی به ریست کانتر و از همون خروجی به کلاک یک ram میدی که ورودی ram به پایه های خارجی و خروجی adc متصل شده. خروجی مقایسه کننده رو به کلاک یک کانتر دیگه میدی که خروجیش به آدرس ram متصل شده. با هر لبه خروجی مقایسه کننده، هم ثبت انجام میشه هم آدرس عوض میشه. اصولا در این حالت ram باید حساس به لبه بالا و کانتر آدرس حساس به لبه پایین باشه. تو سایت جوان یه گذری کن پیدا میکنی. الان چیزی خاطرم نیست
خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...
یک کانتر به همراه یک مقایسه کننده قرار میدی و عدد دقیق تقسیم رو به ورودی دیگر مقایسه کننده میدی. از خروجی برابری مقایسه کننده میدی به ریست کانتر و از همون خروجی به کلاک یک ram میدی که ورودی ram به پایه های خارجی و خروجی adc متصل شده. خروجی مقایسه کننده رو به کلاک یک کانتر دیگه میدی که خروجیش به آدرس ram متصل شده. با هر لبه خروجی مقایسه کننده، هم ثبت انجام میشه هم آدرس عوض میشه. اصولا در این حالت ram باید حساس به لبه بالا و کانتر آدرس حساس به لبه پایین باشه. تو سایت جوان یه گذری کن پیدا میکنی. الان چیزی خاطرم نیست
ممنون به خاطر توضیحتون، @};-
ولی بازم به نظر من این طوری درست نمیشه، کانتر من باید تا 25000/48=520.8333 را بشماره و عدد مقایسه کننده هم همین باشه، حالا سوال اینجاست که من چطوری یه عدد اعشاری را بشمارم، اگه از عدد 520 هم استفاده کنم، بعد از هر چند سیکل یه داده اشتباه (تکراری) دارم.
به سایتی که گفتید سر زدم، از نوع Parallel استفاده کنم یا Serial؟ اگه بخوام از 16 بیتی استفاده کنم هزینه زیاد میشه(حدود 80 هزار تومن برای Serial) ، اشکالی داره از 8 بیتی استفاده کنم، قطعه ای نیست که ADC و DAC را با هم داشته باشه، مثله کدکی که آقای زین العابدینی معرفی کردن؟؟؟
ممنون به خاطر توضیحتون، @};-
ولی بازم به نظر من این طوری درست نمیشه، کانتر من باید تا 25000/48=520.8333 را بشماره و عدد مقایسه کننده هم همین باشه، حالا سوال اینجاست که من چطوری یه عدد اعشاری را بشمارم، اگه از عدد 520 هم استفاده کنم، بعد از هر چند سیکل یه داده اشتباه (تکراری) دارم.
به سایتی که گفتید سر زدم، از نوع Parallel استفاده کنم یا Serial؟ اگه بخوام از 16 بیتی استفاده کنم هزینه زیاد میشه(حدود 80 هزار تومن برای Serial) ، اشکالی داره از 8 بیتی استفاده کنم، قطعه ای نیست که ADC و DAC را با هم داشته باشه، مثله کدکی که آقای زین العابدینی معرفی کردن؟؟؟
ببین بلاخره این محدودیت ها رو داری با فرکانسی که گفتی. برای تبدیل باید نرخ نمونه برداری مناسبی انتخاب کنی و رزولوشن خوب. در غیر اینصورت کیفیت افت می کنه. دیگه بسته به کارتونه
خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...
برای تبدیل فرکانس داخل FPGA میتونی از DCM ها استفاده کنی . هرچند این کار رو پیشنهاد نمیکنم.
شما یک ADC هشت بیتی هم که داشته باشی کفایت میکنه یا 10 بیتی . با استفاده از oversample کیفیت سیگنال دریافتی رو میتونی تا 14 بیت
افزایش بدی علاوه بر اینکه مشکل فرکانست هم حل میشه .
منم تو این زمینه از راهنماییآهای دوستان استفاده میآکنم. میشه در مورد کدک هم توضیح بدید؟ دلیل استفاده از اون چیه؟
oversampling?
:read:
اگه مطلب آموزشی تو این زمینه میشناسید معرفی کنید ممنون میشم
دیدگاه