سیگنال بازگشت مثبت

ساخت وبلاگ

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

نحو

شرح

S = STFT (X ، FS) STFT X را با استفاده از نرخ نمونه FS برمی گرداند.

S = stft (x ، ts) STFT X را با استفاده از نمونه TS بازگرداند.

s = stft (___ ، name = مقدار) گزینه های اضافی را با استفاده از آرگومان های ارزش نام مشخص می کند. گزینه ها شامل پنجره FFT و طول است. این آرگومان ها را می توان به هر یک از نحوهای ورودی قبلی اضافه کرد.

[s ، f] = stft (___) فرکانس های f را که در آن STFT ارزیابی می شود ، برمی گرداند.

[s ، f ، t] = stft (___) زمانهایی را که STFT ارزیابی می شود ، برمی گرداند.

STFT (___) بدون آرگومان خروجی ، بزرگی مربع STFT را در دسی بل در پنجره شکل فعلی ترسیم می کند.

مثال ها

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

یک چیرپ با فرکانس مختلف سینوسی ایجاد کنید. این سیگنال به مدت دو ثانیه در 10 کیلوهرتز نمونه برداری می شود.

محاسبه تبدیل کوتاه مدت فوریه از Chirp. سیگنال را به بخش های 256 نمونه و پنجره با استفاده از یک پنجره Kaiser با پارامتر شکل β = 5 تقسیم کنید. 220 نمونه از همپوشانی بین بخش های مجاور و طول DFT 512 را مشخص کنید. واد

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

Figure contains an axes object. The axes object contains an object of type surface.

با فراخوانی عملکرد STFT بدون آرگومان خروجی ، همان طرح را بدست آورید.

Figure contains an axes object. The axes object with title Short-Time Fourier Transform contains an object of type image.

stft از chirp درجه دوم

یک chirp درجه دوم که در 1 کیلوهرتز به مدت 2 ثانیه نمونه برداری شده است ، تولید کنید. فرکانس آنی 100 هرتز در t = 0 است و از 200 هرتز در t = 1 ثانیه عبور می کند.

STFT از chirp درجه دوم را با مدت زمان 1 میلی ثانیه محاسبه و نمایش دهید.

Figure contains an axes object. The axes object with title Short-Time Fourier Transform contains an object of type image.

توابع طیف سنجی و STFT را مقایسه کنید

یک سیگنال متشکل از یک Chirp نمونه برداری شده در 1. 4 کیلوهرتز به مدت 2 ثانیه ایجاد کنید. فرکانس chirp به طور خطی از 600 هرتز به 100 هرتز در طول زمان اندازه گیری کاهش می یابد.

پیش فرض های STFT

STFT سیگنال را با استفاده از توابع طیف سنجی و STFT محاسبه کنید. از مقادیر پیش فرض عملکرد STFT استفاده کنید:

سیگنال را به بخش های 128 نمونه ای تقسیم کنید و هر بخش را با یک پنجره هان دوره ای تقسیم کنید.

96 نمونه از همپوشانی بین بخش های مجاور را مشخص کنید. این طول معادل 75 ٪ طول پنجره است.

128 نقطه DFT را مشخص کنید و STFT را در فرکانس صفر قرار دهید ، با فرکانس بیان شده در هرتز.

تأیید کنید که دو نتیجه برابر هستند.

برای ترسیم دو خروجی از تابع مش استفاده کنید.

Figure contains 2 axes objects. Axes object 1 with title spectrogram contains an object of type surface. Axes object 2 with title stft contains an object of type surface.

پیش فرض طیف سنجی

محاسبه را با استفاده از مقادیر پیش فرض عملکرد طیف سنجی تکرار کنید:

سیگنال را به بخش های طول m = ⌊ n x / 4 تقسیم کنید. 5 ⌋ ، جایی که n x طول سیگنال است. پنجره هر بخش با یک پنجره چکش.

50 ٪ همپوشانی بین بخش ها را مشخص کنید.

برای محاسبه FFT ، از نقاط حداکثر (256 ، 2 ⌈ log 2 متر) استفاده کنید. طیف سنجی را فقط برای فرکانسهای عادی مثبت محاسبه کنید.

برای ترسیم دو خروجی از عملکرد WaterPlot استفاده کنید. محور فرکانس را در هر دو مورد تقسیم کنید. برای خروجی STFT ، تعداد نمونه ها را با نرخ نمونه مؤثر ، 2 π تقسیم کنید.

Figure contains 2 axes objects. Axes object 1 with title spectrogram contains an object of type patch. Axes object 2 with title stft contains an object of type patch.

دامنه فرکانس stft

یک سیگنال نمونه برداری شده در 5 کیلوهرتز به مدت 4 ثانیه تولید کنید. این سیگنال از مجموعه ای از پالس های کاهش مدت زمان جدا شده توسط مناطقی از دامنه نوسان و فرکانس نوسان با روند فزاینده تشکیل شده است. سیگنال را ترسیم کنید.

Figure contains an axes object. The axes object contains an object of type line.

محاسبه تبدیل های یک طرفه ، دو طرفه و محور کوتاه مدت فوریه سیگنال را محاسبه کنید. در همه موارد ، از یک پنجره کایزر 202 نمونه ای با فاکتور شکل β = 10 استفاده کنید تا بخش های سیگنال را پنجره کنید. محدوده فرکانس مورد استفاده برای محاسبه هر تبدیل را نمایش دهید.

Figure contains 3 axes objects. Axes object 1 with title

محاسبه را تکرار کنید ، اما اکنون طول پنجره Kaiser را به 203 تغییر دهید ، یک عدد عجیب و غریب. فاصله فرکانس "دوقلوی" تغییر نمی کند. دو فرکانس فرکانس دیگر در انتهای بالاتر باز می شوند.

Figure contains 3 axes objects. Axes object 1 with title

stft از سیگنال های چند کاناله

یک سیگنال سه کانال متشکل از سه قطعه مختلف نمونه برداری شده در 1 کیلوهرتز برای یک ثانیه ایجاد کنید.

کانال اول شامل یک chirp درجه دوم مقعر با فرکانس فوری 100 هرتز در t = 0 و از 300 هرتز در t = 1 ثانیه عبور می کند. این یک مرحله اولیه برابر با 45 درجه است.

کانال دوم شامل یک chirp درجه دوم محدب با فرکانس فوری 100 هرتز در t = 0 و از 500 هرتز در t = 1 ثانیه عبور می کند.

کانال سوم شامل یک کیرپ لگاریتمی با فرکانس آنی 300 هرتز در t = 0 است و از 500 هرتز در t = 1 ثانیه عبور می کند.

STFT از سیگنال چند کاناله را با استفاده از یک پنجره چکش زدن دوره ای به طول 128 و طول همپوشانی 50 نمونه محاسبه کنید.

STFT هر کانال را به عنوان یک طرح آبشار تجسم کنید. رفتار محورها را با استفاده از HelpergraphicsOpt Helper Function کنترل کنید.

Figure contains an axes object. The axes object with title Input Channel: 1 contains an object of type patch.

Figure contains an axes object. The axes object with title Input Channel: 2 contains an object of type patch.

Figure contains an axes object. The axes object with title Input Channel: 3 contains an object of type patch.

این عملکرد یاور ظاهر و رفتار محورهای فعلی را تعیین می کند.

استدلال های ورودی

X - بردار سیگنال ورودی |ماتریس |جدول زمانی

سیگنال ورودی ، به عنوان یک بردار ، یک ماتریس یا یک جدول زمانی Matlab.

توجه داشته باشید

اگر می خواهید X و S یکسان باشد ، مقدار (طول (x) -noverlap)/(طول (پنجره) -Noverlap) باید یک عدد صحیح باشد. برای مشخص کردن Noverlap از پنجره برای مشخص کردن طول پنجره و طول همپوشانی استفاده کنید.

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

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

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

هر کانال X باید طول بیشتر یا مساوی با طول پنجره داشته باشد.

مثال: Chirp (0: 1/4E3: 2،250،1،500 ، "درجه دوم") یک chirp یک کانال را مشخص می کند.

مثال: جدول زمانی (RAND (5،2) ، نمونه = 1) یک متغیر تصادفی دو کانال نمونه برداری شده در 1 هرتز را به مدت 4 ثانیه مشخص می کند.

مثال: جدول زمانی (RAND (5،1) ، RAND (5،1) ، Samplerate = 1) یک متغیر تصادفی دو کانال نمونه برداری شده در 1 هرتز را به مدت 4 ثانیه مشخص می کند.

انواع داده ها: دو برابر |پشتیبانی از شماره مجتمع واحد: بله

FS - نرخ نمونه 2 π (پیش فرض) |مقیاس پذیر

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

انواع داده ها: دو برابر |تنها

TS - مقیاس مدت زمان نمونه

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

مثال: ثانیه ها (1) یک مقیاس طول مدت است که نشان دهنده اختلاف زمانی 1 ثانیه ای بین نمونه های سیگنال متوالی است.

انواع داده ها: مدت زمان

استدلال های ارزش نام

جفت آرگومان های اختیاری را به عنوان Name1 = Value1 مشخص کنید. namen = valuen ، که در آن نام نام و مقدار آرگومان است مقدار مربوطه است. آرگومان های ارزش نام باید پس از سایر استدلال ها ظاهر شوند ، اما ترتیب جفت ها اهمیتی ندارند.

مثال: پنجره = چکش (100) ، همپوشانی = 50 ، FFTL طول = 128 ویندوز داده ها را با استفاده از یک پنجره چکش 100 نمونه ای ، با 50 نمونه از همپوشانی بین بخش های مجاور و یک FFT 128 نقطه ای.

قبل از R2021A ، از کاما برای جدا کردن هر نام و مقدار استفاده کنید و نام را در نقل قول ها محصور کنید.

مثال: 'Window' ، Hamming (100) ، 'همپوشانی طول' ، 50 ، 'fftl طول' ، 128 ویندوز داده ها را با استفاده از یک پنجره چکش 100 نمونه ای ، با 50 نمونه از همپوشانی بین بخش های مجاور و یک FFT 128 نقطه ای.

پنجره - پنجره طیفی هان (128 ، "دوره ای") (پیش فرض) |بردار

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

برای لیستی از ویندوزهای موجود ، به ویندوز مراجعه کنید.

مثال: هان (N + 1) و (1-COS (2*PI*(0: N) '/N))/2 هر دو پنجره Hann از طول N + 1 را مشخص می کنند.

انواع داده ها: دو برابر |تنها

طول همپوشانی - تعداد نمونه های همپوشانی 75 ٪ از طول پنجره (پیش فرض) |عدد صحیح

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

انواع داده ها: دو برابر |تنها

FFTL طول - تعداد نقاط DFT 128 (پیش فرض) |عدد صحیح مثبت

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

انواع داده ها: دو برابر |تنها

فرکانس RANGE - دامنه فرکانس STFT "محور" (پیش فرض) |"دوقلوی" |"

دامنه فرکانس STFT ، به عنوان "متمرکز" ، "دوقلوی" یا "OneSed" مشخص شده است.

"محور"-یک STFT دو طرفه و محور محاسبه کنید. اگر طول fftl یکنواخت باشد ، پس از آن در فاصله ( - π ، π] راد/نمونه محاسبه می شود. سپس فواصل ( - Fs، fs/2] چرخه/زمان واحد و ( - fs، fs/2) چرخه/زمان واحد ، به ترتیب ، جایی که fsنرخ نمونه مؤثر است.

"Twosided"-یک STFT دو طرفه را در فاصله زمانی [0 ، 2 π) راد/نمونه محاسبه کنید. اگر اطلاعات زمانی را مشخص کنید ، فاصله آن [0 ، f استs) چرخه/زمان واحد.

"Onesided"-یک STFT یک طرفه را محاسبه کنید. اگر طول fftl یکنواخت باشد ، پس از آن S در فاصله فاصله [0 ، π] راد/نمونه محاسبه می شود. اگر طول fftl عجیب باشد ، پس از آن S در فاصله [0 ، π) راد/نمونه محاسبه می شود. اگر اطلاعات زمانی را مشخص کنید ، فواصل [0 ، f هستندs/2] چرخه/زمان واحد و [0 ، fs/2) چرخه/زمان واحد ، به ترتیب ، جایی که fsنرخ نمونه مؤثر است. این گزینه فقط برای سیگنال های واقعی معتبر است.

توجه داشته باشید

هنگامی که این استدلال روی "OneSed" تنظیم شده است ، STFT مقادیر را در محدوده مثبت Nyquist خروجی می کند و قدرت کل را حفظ نمی کند.

انواع داده ها: char |رشته

OutputTimedImension - ابعاد زمان خروجی "Aroncolumns" (پیش فرض) |"Downrows"

ابعاد زمان خروجی ، به عنوان "collumns" یا "downrows" مشخص شده است. اگر می خواهید بعد زمان S پایین ردیف ها و بعد فرکانس در ستون ها ، این مقدار را روی "Downrows" قرار دهید. اگر می خواهید بعد زمان S در ستون ها و ابعاد فرکانس در ردیف ها ، این مقدار را روی "collumns" تنظیم کنید. اگر عملکرد بدون آرگومان خروجی فراخوانی شود ، این ورودی نادیده گرفته می شود.

استدلال های خروجی

S-ماتریس تبدیل کوتاه مدت فوریه |آرایه 3 بعدی

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

اگر سیگنال X N داشته باشدxنمونه زمان ، سپس S دارای ستون های K است ، جایی که k = ⌊ (nx- l)/(m - l) ⌋ ، m طول پنجره است ، l طول همپوشانی است ، و نمادهای ⌊ ⌋ عملکرد کف را نشان می دهند.

تعداد ردیف های موجود در S برابر با مقدار مشخص شده در طول FFTL است.

انواع داده ها: دو برابر |تنها

F - بردار فرکانس

فرکانس هایی که STFT در آن ارزیابی می شود ، به عنوان یک بردار برگردانده می شود.

انواع داده ها: دو برابر |تنها

t - بردار نمونه زمان

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

اگر نرخ نمونه FS ارائه شود ، بردار حاوی مقادیر زمانی در ثانیه است.

اگر یک زمان نمونه TS ارائه شود ، بردار یک آرایه مدت با همان زمان ورودی است.

اگر اطلاعات زمانی ارائه نشود ، بردار حاوی شماره نمونه است.

انواع داده ها: دو برابر |تنها

بیشتر در مورد

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

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

STFT یک سیگنال با کشویی یک پنجره تجزیه و تحلیل G (N) طول M بر روی سیگنال و محاسبه تبدیل گسسته فوریه (DFT) هر بخش از داده های پنجره محاسبه می شود. پنجره ها بر روی سیگنال اصلی در فواصل نمونه R ، معادل نمونه L = M - R از همپوشانی بین بخش های مجاور. بیشتر عملکردهای پنجره برای جلوگیری از زنگ طیفی ، در لبه ها خاموش می شوند. DFT هر بخش پنجره ای به یک ماتریس با ارزش پیچیده اضافه می شود که حاوی بزرگی و فاز برای هر نقطه از زمان و فرکانس است. ماتریس STFT دارد

k = ⌊ n x - l m - l ⌋

ستون ها ، جایی که nxطول سیگنال X (n) است و نمادهای ⌊⌋ عملکرد کف را نشان می دهند. تعداد ردیف های موجود در ماتریس برابر استDFT، تعداد نقاط DFT ، برای تبدیل های متمرکز و دو طرفه و یک عدد عجیب و غریب نزدیک به nDFT/2 برای تبدیل یک طرفه سیگنال های با ارزش واقعی.

ستون M از ماتریس STFT X (f) = [x 1 (f) x 2 (f) x 3 (f) ⋯ x k (f)] حاوی dft از داده های پنجره ای است که در حدود زمان MR است:

x m (f) = ∑ n = - ∞ ∞ x (n) g (n - m r) e - j 2 π f n.

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

عملکرد ISTFT STFT یک سیگنال را معکوس می کند.

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

STFTMAG2SIG تخمینی از سیگنال بازسازی شده از بزرگی STFT خود را برمی گرداند.

بازسازی کامل

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

اندازه ورودی - اگر خروجی STFT را با استفاده از ISTFT معکوس کنید و می خواهید نتیجه همان طول سیگنال ورودی X باشد ، مقدار آن

باید یک عدد صحیح باشد. در معادله ، nxطول سیگنال است ، m طول پنجره است و l طول همپوشانی است.

انطباق COLA-از ویندوز سازگار با COLA استفاده کنید ، با فرض اینکه شما تغییر کوتاه مدت فوریه سیگنال را اصلاح نکرده اید.

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

منابع

[1] Mitra ، Sanjit K. پردازش سیگنال دیجیتال: یک رویکرد مبتنی بر رایانه. چاپ دوم. نیویورک: مک گرا-هیل ، 2001.

[2] شارپ ، بروس. قابلیت استفاده از پردازش ADD همپوشانی. https://gauss256. github.io/blog/cola.html ، دسترسی به ژوئیه 2019.

[3] اسمیت ، جولیوس اوریون. پردازش سیگنال صوتی طیفی. https://ccrma. stanford. edu/~JOS/SASP/، کتاب آنلاین ، نسخه 2011 ، دسترسی به نوامبر 2018.

قابلیت های گسترده

آرایه های بلند با آرایه هایی محاسبه می شوند که ردیف های بیشتری نسبت به حافظه دارند.

یادداشت ها و محدودیت های استفاده:

OutputTimedImension همیشه باید مشخص شود و روی "DownRows" تنظیم شود.

برای اطلاعات بیشتر ، به آرایه های بلند مراجعه کنید.

C/C ++ تولید کد C و C ++ با استفاده از Coder Matlab®.

تولید کد GPU کد CUDA® را برای GPU های NVIDIA® با استفاده از Coder GPU in تولید کنید.

یادداشت ها و محدودیت های استفاده:

جدول زمانی برای تولید کد پشتیبانی نمی شود.

محیط مبتنی بر موضوع کد را در پس زمینه با استفاده از MATLAB® BackgroundPool اجرا کنید یا کد را با جعبه ابزار محاسباتی موازی ™ ThreadPool تسریع کنید.

یادداشت ها و محدودیت های استفاده:

نحو بدون آرگومان خروجی پشتیبانی نمی شود.

آرایه های GPU با اجرای یک واحد پردازش گرافیکی (GPU) با استفاده از جعبه ابزار محاسباتی موازی ، کد را تسریع می کنند.

این عملکرد کاملاً از آرایه های GPU پشتیبانی می کند. برای اطلاعات بیشتر ، به عملکردهای MATLAB در GPU (جعبه ابزار محاسبات موازی) مراجعه کنید.

تجارت با گزینه‌‌های باینری...
ما را در سایت تجارت با گزینه‌‌های باینری دنبال می کنید

برچسب : نویسنده : حمیدرضا پگاه بازدید : 32 تاريخ : يکشنبه 31 ارديبهشت 1402 ساعت: 15:16