SP_HW3_solution.pdf

‫به نام خدا‬
‫پردازش گفتار‬
‫نیمسال اول ‪59-59‬‬
‫دکتر صامتی‬
‫دانشکده مهندسی کامپیوتر‬
‫تمرین سری سوم‬
‫پیشبینی خطی و کدینگ شکلموج‬
‫زمان تحویل‪ 32 :‬آبان ‪4259‬‬
‫تمرینهای تئوری‪:‬‬
‫سوال ‪.1‬‬
‫می دانیم که قبل از انجام تحلیل پیشبینی خطی (‪ )LPC‬از تکنیک پنجرهگذاری استفاده میشود‪ .‬به طور دقیقتر‪ ،‬اگر‬
‫سیگنال صوت را با ]‪ ، x[n‬و پنجره را با ]‪ w[n‬نشان دهیم طوریکه ‪ w[n]=0‬برای ‪ n<0‬یا ‪ ،n>=N‬برای تحلیل‬
‫پیشبینی خطی ابتدا یک قسمت از سیگنال را با استفاده از ]𝑚 ‪ 𝑥𝑚 [𝑛] = 𝑥[𝑛]𝑤[𝑛 −‬انتخاب می کنیم و سپس‬
‫تحلیل را بر روی سیگنال ]𝑛[ 𝑚𝑥 که طول محدود ‪ N‬را دارد انجام می دهیم‪.‬‬
‫الف) توضیح دهید چرا از این تکنیک استفاده میشود ؟ چرا تحلیل را روی کل سیگنال ]‪ x[n‬انجام نمیدهیم ؟‬
‫ب) تاثیر نوع پنجره چیست ؟ می دانیم که برای مثال پنجرهی همینگ در دو انتهایش به سمت صفر میل می کند و از‬
‫آنجایی که در سیگنال اولیه ضرب میشود‪ ،‬منجر به کاهش اندازه سیگنال در دو سمت (نسبت به وسط پنجره) میشود‪.‬‬
‫ب‪ )1-‬آیا این مساله مشکلی در محتوای سیگنال ایجاد نمی کند؟‬
‫ب‪ )2-‬چرا با وجود اینکه پنجره مستطیلی این مشکل را ندارد‪ ،‬در عمل پنجره ی همینگ ترجیح داده‬
‫میشود؟‬
‫پ) تاثیر طول پنجره چیست ؟ چه طولی را می توان بهینه دانست؟ آیا طول بهینه به سن‪/‬جنسیت گوینده (در سیگنال‬
‫گفتار) بستگی دارد ؟ اگر بله‪ ،‬چگونه ؟ اگر خیر‪ ،‬چرا ؟‬
‫ت) (نمره اضافه) فرض کنید ‪ w‬یک پنجره ی مستطیلی باشد‪ .‬تبدیل فوریه سیگنال پنجرهشده را بر اساس تبدیل فوریه‬
‫سیگنال اولیه به دست آورید‪.‬‬
‫الف) سیگنال گفتار ایستا نیست‪ ،‬بنابراین هرگونه پردازشی باید روی طولهای محدود از این سیگنال انجام شود تا‬
‫بتوانیم فرض کنیم تا حد خوبی ایستا است‪.‬‬
‫ب) هر پنجره مشخصات خاص خودش را دارد و مطابق آن استفاده می شود‪ .‬برای مثال‪ ،‬پنجره همینگ در دو سمت‬
‫به صفر میل میکند‪ .‬این مشخصه در واقع یک مزیت است‪ ،‬چراکه باعث می شود تغییرات ناگهانی (‪ )sharp‬در سیگنال‬
‫نداشته باشیم‪ .‬پنجره مستطیلی این مشکل را دارد که سیگنال پنجره شده دچار عدم پیوستگی (‪ transition‬ناگهانی از‬
‫‪ 0‬به یک عدد بزرگ و برعکس) می شود و بنابراین مولفه های فرکانسی باال (و نامربوط) در اسپکتروم آن ظهور می‬
‫کند‪.‬‬
‫پ) طول پنجره اگر خیلی کم باشد‪ ،‬رزولوشن فرکانسی کمی خواهیم داشت به این معنی که نمونههای حاصل از ‪ dft‬کم‬
‫هستند و بنابراین تحلیل در حوزهی فرکانس با دقت کمتری انجام خواهد شد‪ .‬از طرف دیگر اگر طول پنجره زیاد باشد‪،‬‬
‫ایستایی سیگنال کمتر و کمتر می شود؛ ضمن اینکه اگر تحلیل ما مبتنی بر واج باشد ممکن است هر فریم شامل بیش‬
‫از ‪ 1‬یا دو واج شود که تحلیل را با مشکل مواجه می کند‪.‬‬
‫بدیهی است برای اینکه مولفه های فرکانسی بتوانند محاسبه شوند‪ ،‬فریم مدنظر باید شامل حداقل یک دوره ‪ pitch‬از‬
‫سیگنال گفتار باشد‪ .‬البته برای پنجرههایی مثل ‪ hamming‬که اندازه سیگنال را تضعیف می کنند باید ‪ 2‬دوره یا بیشتر‬
‫در پنجره قرار بگیرد‪ .‬همچنین می دانیم که فرکانس ‪ pitch‬به طول حنجره بستگی دارد که از طرف دیگر به سن و جنسیت‬
‫بستگی دارد‪ .‬بنابراین‪ ،‬طول پنجره به سن‪/‬جنسیت بستگی دارد ولی معموال آن را طوری در نظر می گیرند تا برای عموم‬
‫افراد مناسب باشد‪ ،‬به جای اینکه برای گروه خاصی بهینه باشد‪.‬‬
‫‪sin(𝑤𝑀/2) −𝑗𝑤𝑀/2‬‬
‫𝑁<𝑛≤‪0‬‬
‫= ) 𝑤𝑗 𝑒(𝑊 →‬
‫𝑒‬
‫𝑒𝑠𝑖𝑤𝑟𝑒‪𝑜𝑡ℎ‬‬
‫)‪sin(𝑤/2‬‬
‫)‪sin(𝑤𝑀/2‬‬
‫)‪sin(𝑤/2‬‬
‫‪1‬‬
‫‪0‬‬
‫{ = ]𝑛[𝑤‬
‫)‪𝑤[𝑛 − 𝑚] → 𝑊(𝑒 𝑗𝑤 ) = 𝑒 −𝑗𝑤(𝑚+𝑀/2‬‬
‫𝜋 ‪1‬‬
‫=)‬
‫𝜃𝑑) )𝑤‪∫ 𝑋(𝑒 𝑗𝜃 )𝑊(𝑒 𝑗(𝜃−‬‬
‫𝜋‪2𝜋 −‬‬
‫𝑤𝑗‬
‫𝑒( 𝑚𝑋‬
‫سوال ‪.2‬‬
‫همانطور که میدانید مدل واقعی تولید گفتار در واقع یک مدل صفر‪-‬قطب می باشد که در زیر مشاهده میکنید‪ .‬برای‬
‫مثال )‪ G(z‬معموال در حالتیکه شامل صفر باشد بهتر عمل میکند‪ .‬همچنین )‪ H(z‬در این نمودار برای واجهایی که از‬
‫حفرههای فرعی برای تولیدشان استفاده میشود (مثل واج های سایشی‪/‬خیشومی) بهتر است دارای صفر باشد‪.‬‬
‫الف) تحقیق کنید چرا در عمل این مدل را با مدل سادهشدهی تمام‪-‬قطب تخمین میزنند ؟‬
‫ب) در اثر این تخمین چه چیزی را از دست میدهیم ؟ آیا این مساله مشکلی در صدای تولید شده با این مدل (مثال در‬
‫ووکدرها) ایجاد می کند ؟‬
‫پ) فرض کنید در این مدل سادهشده‪ ،‬تابع سیستم‬
‫اساس ورودی سیستم ]‪ e[n‬را به دست بیاورید‪.‬‬
‫𝛼‬
‫𝑘‪−‬‬
‫𝑃∑‪ 𝐻(𝑧) = 1−‬باشد‪ .‬رابطهی خروجی سیستم ]‪ s[n‬بر‬
‫𝑧 𝑘𝑎 ‪𝑘=1‬‬
‫پ‪ )1-‬به این مدل تمام قطب همچنین مدل ‪ autoregressive‬نیز اطالق میشود‪ .‬چرا این مدل ‪autoregressive‬‬
‫است ؟‬
‫پ‪ )2-‬به نظر شما آیا توجیهی وجود دارد که بر اساس آن بتوان سیگنال پیچیده گفتار را با یک روش ‪autoregressive‬‬
‫مدل کرد؟‬
‫الف) دو دلیل دارد‪:‬‬
‫‪ .1‬این کار از نظر ریاضی‪ ،‬محاسبات و تحلیل ها را بسیار ساده تر می کند‪.‬‬
‫‪ .2‬می توان نشان داد که با حذف کردن صفرها صرفا فاز سیگنال را از دست می دهیم و از آنجایی که فاز سیگنال‬
‫گفتار در قابلیت فهم (‪ )intelligibility‬آن تاثیر چندانی ندارد‪ ،‬می توانیم آنها را حذف کنیم‪.‬‬
‫ب) در قسمت قبل توضیح داده شد‪.‬‬
‫پ)‬
‫‪𝑆(𝑧) = 𝐻(𝑧)𝐸(𝑧) → 𝑆(𝑧)(1 − ∑𝑃𝑘=1 𝑎𝑘 𝑧 −𝑘 ) = 𝛼𝐸(𝑧) → 𝑆(𝑧) − ∑𝑃𝑘=1 𝑎𝑘 𝑧 −𝑘 𝑆(𝑧) = 𝐸(𝑧) ‬‬
‫𝑃‬
‫𝑃‬
‫]𝑛[𝑒𝛼 ‪𝑠[𝑛] − ∑ 𝑎𝑘 𝑠[𝑛 − 𝑘] = 𝛼𝑒[𝑛] → 𝑠[𝑛] = ∑ 𝑎𝑘 𝑠[𝑛 − 𝑘] +‬‬
‫‪𝑘=1‬‬
‫‪𝑘=1‬‬
‫پ‪ )1-‬به این دلیل است که نمونه های جاری ]‪ s[n‬از نمونه های قبلی به صورت خطی محاسبه می شوند و در واقع از‬
‫دید آماری سیگنال بر روی خودش ‪ regression‬انجام می دهد‪.‬‬
‫پ‪ )2-‬بله ولی این توجیه از طریق غیرمستقیم (تحلیل سیستمی) انجام می شود‪ .‬در واقع ابتدا با استفاده از مدل ‪tube‬‬
‫که در سوال نشان داده شده است یک مدل قوی برای تولید گفتار ارائه می شود‪ ،‬سپس با حذف صفرها و اثبات اینکه‬
‫این مساله مشکلی ایجاد نمی کند‪ ،‬مدل ساده شده تمام قطب به دست می آید‪ .‬بنابراین این ‪ autoregression‬به خوبی‬
‫توجیه می شود‪.‬‬
‫سوال ‪.3‬‬
‫تفاوت روش ‪ LPC‬برای فشرده سازی سیگنال را با روشهای ‪ waveform coding‬شرح دهید‪.‬‬
‫روش ‪ LPC‬در واقع یک مدل تولید گفتار ارائه می کند که با تحلیل گفتار‪ ،‬پارامترهای آن را تخمین می زند و سپس از‬
‫این پارامترها برای تولید (سنتز) مجدد گفتار استفاده می کند و تالشی برای حفظ شکل موج انجام نمی دهد‪ .‬در نتیجه‬
‫کیفیت این روش کمتر است (به خاطر پیچیدگی سیستم تولید گفتار انسان) ولی فشرده سازی آن بیشتر است‪.‬‬
‫در مقابل روشهای ‪ waveform coding‬صرفا تالش در کد کردن شکل موج دارند و محتوای گفتار (یا سیستم تولید‬
‫گفتار) را مدل نمی کنند‪.‬‬
‫سوال ‪.4‬‬
‫فرض کنید در ‪ PCM‬تعداد ‪ B‬سطح 𝐵𝑙 ‪ 𝑙1 , 𝑙2 , … ,‬برای کوانتیزه کردن داریم (‪ B‬بیتی)‪ .‬در این صورت داریم‪:‬‬
‫‪𝑠̃ = 𝑟𝑖 𝑖𝑓𝑓 𝑙𝑖 < 𝑠 ≤ 𝑙𝑖+1‬‬
‫نشان دهید به ازای‬
‫‪𝑙𝑖 +𝑙𝑖+1‬‬
‫توزیع یکنواخت است‪.‬‬
‫‪2‬‬
‫= 𝑖𝑟 خطای ‪ MSE‬کوانتیزه کردن مینیموم می شود‪ .‬فرض کنید ‪ s‬یک متغیر تصادفی با‬
‫ابتدا ‪ MSE‬را محاسبه می کنیم‪:‬‬
‫𝑠𝑑)𝑠(𝑝 ‪(𝑠 − 𝑟𝑖 )2‬‬
‫‪𝑙𝑖+1‬‬
‫𝐵‬
‫∫∑ =‬
‫] ‪)2‬‬
‫𝑖𝑙 ‪𝑖=1‬‬
‫سپس این تابع را با توجه به 𝑖𝑟 با مشتق گیری کمینه می کنیم و جواب موردنظر به دست میآید‪.‬‬
‫̃𝑠 ‪𝑀𝑆𝐸 = 𝐸[(𝑠 −‬‬
‫سوال ‪.5‬‬
‫در روش ‪ DPCM‬فرض کنید که تخمین به صورت ساده زیر انجام شود‪:‬‬
‫)‪𝑠̅(𝑛) = 𝜓(𝑠(𝑛 − 1), 𝑠(𝑛 − 2), … ) = 𝑠(𝑛 − 1‬‬
‫که در آن )𝑛(̅𝑠مقدار تخمین زده شده ی )‪ s(n‬است‪ .‬در نتیجه خطای تخمین عبارت است از‪:‬‬
‫)‪𝑒(𝑛) = 𝑠(𝑛) − 𝑠̅(𝑛) = 𝑠(𝑛) − 𝑠(𝑛 − 1‬‬
‫نشان دهید که اگر ‪> 0.5‬‬
‫)‪𝑟𝑠 (1‬‬
‫‪𝜎𝑠2‬‬
‫)‪𝑟𝑠 (1‬‬
‫=‬
‫)‪𝑟 (0‬‬
‫𝑠‬
‫باشد‪ 𝜎𝑒2 < 𝜎𝑠2 ،‬خواهد بود و در نتیجه متوسط توان سیگنال )‪ e(n‬کمتر‬
‫از )‪ s(n‬خواهد بود و در نتیجه به تعداد بیت کمتری برای کوانتیزه کردن آن نیاز است‪.‬‬
‫راه حل‪ :‬دو طرف رابطه ی )‪ 𝑒(𝑛) = 𝑠(𝑛) − 𝑠(𝑛 − 1‬را به توان دو می رسانیم و سپس ‪ long-term average‬می گیریم در‬
‫نتیجه اثبات کامل می شود‪:‬‬
‫→ 𝑒‪𝑒 2 (𝑛) = 𝑠 2 (𝑛) + 𝑠 2 (𝑛 − 1) − 2𝑠(𝑛)𝑠(𝑛 − 1) → 𝜎2𝑒 = 2𝜎2𝑠 − 2𝑟𝑠 (1) → 2𝑟𝑠 (1) − 𝜎2𝑠 = 𝜎2𝑠 − 𝜎2‬‬
‫∴ → ‪𝜎𝑒2 < 𝜎𝑠2 ≡ 2𝑟𝑠 (1) − 𝜎𝑠2 > 0‬‬
‫سوال ‪.6‬‬
‫برای سیگنال زیر‪ ،‬شکل موج خروجی و دنباله بیت دلتا مدوالتور را با فرض ‪ clock=10kHz‬و 𝑡𝑙𝑜𝑉 ‪ ∆= 0.2‬به‬
‫دست بیاورید‪.‬‬
‫سوال ‪.7‬‬
‫می دانیم که در روش ‪ PCM‬می توان با استفاده از ‪ companding‬خطای کوانتیزه سازی را کم کرد؛ آیا می توان به‬
‫همان ترتیب تکنیک ‪ companding‬را برای روش ‪ DPCM‬نیز اعمال کرد؟ اگر نمی توان‪ ،‬چرا ؟ اگر می توان‪ ،‬چگونه‬
‫؟ آیا همان تاثیر کاهش خطا در ‪ PCM‬را در اینجا هم خواهیم داشت ؟ توضیح دهید‪.‬‬
‫در روش ‪ DPCM‬مقادیری که کوانتیزه می شوند‪ ،‬نمونه های (‪ )sample‬سیگنال گفتار نیستند‪ ،‬بلکه خطای تخمین هر‬
‫نمونه از سیگنال است ( در واقع سیگنال )‪ e(n‬کوانتایز می شود)‪ .‬و می دانیم که توابع ‪ companding‬برای یکواخت‬
‫کردن توزیع احتمالی یک سیگنال گفتار است‪ ،‬در حالی که سیگنال )‪ e(n‬به هیچ وجه یک سیگنال گفتار نیست‪ .‬بنابراین‬
‫انتظار می رود که ‪ companding‬در این مورد تاثیر موردنظر را نداشته باشد‪.‬‬
‫البته به طور کلی در صورتی که سیگنال )‪ ،e(n‬یک توزیع احتمالی غیریکنواخت داشته باشد (باید بررسی شود)‪ ،‬می‬
‫توان با استفاده از تکنیک ‪( companding‬ولی با استفاده از توابعی غیر از توابعی که برای سیگنال گفتار استفاده می‬
‫شود) آن را یکنواخت کرد و در نتیجه خطای کوانتیزه کردن را کاهش داد‪.‬‬