що краще: вгору чи пониження?


13

Я хочу порівняти два сигнали чи криві. крива, відібрана при 30 Гц вибірки кривої при 2000 Гц

На жаль, вони мають різні показники вибірки. Перший дискретизується при 30 Гц, другий - у 2000 Гц. У Matlab є функція "переутворювати", і я подумав, що це значно полегшить порівняння.

Моє запитання: чи розумніше зменшити вибір другої кривої чи збільшити вибір першої?

Правка: Я зробив так, як мені сказали. На малюнку зліва - оригінальні криві. Криві праворуч перекомпоновані. Правий верхній верхній вибір внизу, нижній правий внизу.

Я знаю, що криві мають різну довжину, коли їх повторно виділяють. Однак другий сигнал буде обрізаний на першу довжину сигналів. порівняння


1
Я підтримав ваше запитання. Як ви вважаєте, що мудріше.

якщо дуже висока точність не має значення (в цьому випадку я думаю, що це не так), ви можете зробити вибірку, особливо якщо це робить процес набагато швидшим і ви цінуєте свій час на роботі
user1306322

@Stanley Pawlukiewicz, очевидно, я втрачаю всі маленькі вершини шляхом зниження часу. Таким чином, можливе підвищення подій. Тоді мені знову не потрібні маленькі вершини. Я навіть думав про згладжування другого сигналу. Тож у моєму випадку це, мабуть, не має значення, якщо я підбираю проби вгору чи вниз.
NelsonOrange

Потрібні будь-які відгуки та відповіді?
Лоран Дюваль

Відповіді:


18

Коротко:

  • Підвищення розміщення : чи / не має втрачати інформацію (якщо зроблено розумно), тоді безпечніше ,
  • Зниження дозволу : може втратити інформацію (якщо зроблено необережно), ще більш обчислювально ефективними .

Таким чином , якщо порівнювати дані з різною швидкістю, і в фазі оцінки , коли один намагається визначити , як порівняння повинно бути зроблено (які функції порівнюються з тим, що метрика, з якої зовнішні, як точність, ефективно, надійність і т.д.), Першочерговим підходом було б збільшити вибірку обох сигналів цілим фактором для узгодження їх вибірки . Тут це цілком нормально, 6000 Гц може працювати для обох.

Причини, що стосуються практики DSP:

  • при цілому підвищеному розмірі ви не зобов'язані використовувати складні методи фільтрації, а проста лінійна інтерполяція - це легко. Пам’ятайте, хоча цей підсилювач додає деяку інформацію.
  • із сигналами однакової шкали, ви можете витягнути функції та порівняти їх: шум, мінливість, нахили, похідні тощо. Ви можете застосувати правильну корекцію масштабу / зміщення (вони не мають однакової амплітуди), використовувати лінійну чи не- лінійні перетворення (Фур'є та ін.), щоб перевірити, чи існують функції подібності в різних областях
  • на цьому етапі ви повинні мати можливість якісно та кількісно оцінити функції / показники, необхідні для побудови алгоритму. І ви можете оцінити, що можна втратити з обох даних. Наприклад, ви можете створити свій алгоритм і побачити, наскільки надійно подавати сигнал про пониження потужності та наскільки далеко ви можете пройти. Тут ваш алгоритм починає бути більш ефективним.

Після того, як ви витратили на це деякий час, ви готові почати з нуля знову і вирішити, чи слід зменшувати вибірку, чи ні, за допомогою якого методу і т.д., щоб досягти і безпеки, і ефективності .

Для надання альтернатив, якщо ви вирішили порівнювати дані про домен Фур'є, ви можете легко передавати два сигнали різної довжини та частоти дискретизації до однакової кількості коефіцієнтів Фур'є, допомагаючи порівнянню в частотній області.


14
Даунслімплінг майже завжди втрачає інформацію, навіть якщо це не робиться нерозумно. Однак втрата інформації насправді може бути мудрою справою, тому ...
ліворуч приблизно

@leftaroundabout У яких кращих випадках може бути скасованим, щоб не втратити інформацію?
Віллем

2
@leftaroundabout Я не згоден. Втрата інформації завжди гірша, ніж її збереження. Єдине розумне - знати, яку інформацію викинути для кращого подання сигналу, а не саму втрату інформації.
AlexTP

5
@Willem: Як надзвичайно очевидний випадок, сигнал постійного струму може бути відібраний в один зразок. Загалом, будь-який сигнал, у якого немає компонентів, що перевищують (новий) ліміт Nyquist, можна сміливо проаналізувати.
MSalters

1
Можна стверджувати, що від сигналу постійного струму до сигналу 1 вибірки інформація не втрачається, оскільки ви можете перетворити назад в сигнал, ідентичний вихідному, з 1 вибірки. Можна стверджувати, що інформація втрачається, оскільки якщо ви подаєте 1 зразок сигналу людині без додаткової інформації і запитаєте "Чи це сигнал постійного струму?" відповідь буде "Не знаю, недостатньо інформації з одним зразком".
Анонімний боягуз

7

Якщо ви використовуєте таку функцію, як ділянка (x, y), найпростіший спосіб відобразити їх на одному графіку - це просто не перепропонувати жоден з них взагалі, а просто заповнити кожен x вектор правильними значеннями для кожного сигналу, так що обидва з'являються де ви хочете на дисплеї.

Ви також можете встановити сюжет, щоб мати дві різні осі x (по одній для кожної кривої) з різними мітками та легендами, якщо хочете.

Тепер про переустановку. Я буду використовувати Fs для частоти вибірки.

Вибірений сигнал не може містити частотні компоненти вище Fs / 2. Він обмежений.

Також сигнал, який містить лише частотні компоненти до частоти F, може бути точно представлений зі швидкістю вибірки 2F.

Зауважте, що це "точне" подання є математичним, а не наочним. Для гарного візуального зображення 5-10 зразків на період (таким чином, не помітні частотні компоненти вище Fs / 10 або більше) справді допомагає мозку з'єднати точки. Дивіться цей малюнок: той же сигнал, нижня крива має меншу швидкість вибірки, втрати інформації немає, оскільки частота нижча, ніж Fs / 2, але все ще виглядає як лайно.

введіть тут опис зображення

Це точно той же сигнал. Якщо ви перепробовуєте (реконструюєте) той, що внизу, за допомогою фільтра sinc, ви отримаєте той у верхній частині.

Зрізання (зменшення тиску) призведе до того, що всі компоненти частоти, що перевищують новий Fs / 2, згортають у сигнал. Ось чому ми зазвичай ставимо крутий фільтр низьких частот перед дециматором. Наприклад, для зменшення вибірки з Fs = 2000 Гц до Fs = 30 Гц, спершу ми застосуємо низькочастотний сигнал високого порядку з відсіченням трохи нижче 15 Гц, і лише потім зменшуємо.

Однак цей фільтр введе проблеми перехідної реакції, він матиме затримку фаз на певних частотах, і він може змінити візуальний аспект вашого сигналу, чого ви не хочете робити, якщо ідея візуально порівняти їх. Правило, наведене вище, стосується не занадто великої кількості вибірки, завжди тримайте Fs як 5-10x найвищу частоту, що цікавить, якщо ви хочете, щоб форма сигналу щось означала. Ось чому діапазон 200 МГц повинен здійснювати вибірку з частотою 1-2 Gsps.

Моє запитання: чи розумніше зменшити вибір другої кривої чи збільшити вибір першої?

Як було сказано вище, наймудріше - взагалі не возитися з даними та просто подавати їх кожному зі своєю віссю x на одному графіку.

Перетворення швидкості вибірки буде потрібно в деяких випадках. Наприклад, щоб зменшити кількість точок, зменшити використання пам’яті, пришвидшити її… або зробити так, щоб обидва сигнали використовували однакові координати «х» для виконання обчислень по них.

У цьому випадку ви також можете використовувати проміжний Fs, зменшуючи вибірку сигналу з високим Fs і збільшуючи вибірку сигналу з низьким Fs. Або просто зменшити зразок з високим Fs.

Зважайте на критерії Nyquist і не вибирайте занадто низьку частоту вибірки, або ви втратите вірність форми сигналу на високому сигналі Fs, ви отримаєте фазові зрушення через фільтр низьких частот тощо. Або якщо ви знаєте вміст високої частоти це незначно, ви можете зробити усвідомлений вибір. Я

Якщо ви використовуєте лінійну інтерполяцію для узгодження координат "х", пам’ятайте, що вона також потребує досить високих Fs. Інтерполяція працювала б на верхньому сигналі в сюжеті вище, вона не працювала б на сигналі знизу. Те саме, якщо вас цікавлять хв, макс і таке.

І ... зауважте, що пересимплінг / надмірне моделювання також буде псуватися з тимчасовою реакцією, принаймні візуально. Наприклад, якщо переоцінити крок, ви отримаєте багато дзвінків через імпульсну відповідь фільтра sinc. Це тому, що ви отримуєте смуговий сигнал, і хороший крок з квадратними кутами насправді має нескінченну пропускну здатність.

Я візьму квадратну хвилю як приклад. Подумайте про вихідний дискретизований сигнал: 0 0 0 1 1 1 0 0 0 1 1 1 ... Ваш мозок бачить квадратну хвилю.

Але реальність така, що ви повинні зобразити кожен зразок крапкою, і між крапками нічого немає. Це вся суть вибірки. Між зразками нічого немає. Отже, коли цю квадратну хвилю перепробовано за допомогою синхронізованої інтерполяції ... це виглядає смішно.

введіть тут опис зображення

Це просто візуальне зображення квадратної хвилі з обмеженою смугою. Вигойдування ніби існують ... а може й ні. Немає можливості дізнатися, були вони там у вихідному сигналі чи ні. У цьому випадку рішенням було б придбати початкову квадратну хвилю з більшою швидкістю вибірки, щоб отримати кращу роздільну здатність по краю, в ідеалі ви хочете кілька зразків на вашому краю, щоб це більше не виглядало, підкреслюючи крок нескінченної пропускної здатності. Тоді при перенапруженні такого сигналу в результаті не буде візуальних артефактів.

У всякому разі. Як бачите ... просто заплутайтеся з осями x. Це набагато простіше.


4

Даунслінг втрачає інформацію. Підвищення розміру без втрат, коли фактор є цілим числом (якщо ви також пам’ятаєте коефіцієнт), але деяка інформація втрачається, коли коефіцієнт не є цілим числом. Підвибірка часу теоретично може втратити більше інформації, ніж зменшення розміру, для дуже конкретних факторів перекомпонування.

Який ви повинні використовувати? Це залежить від необхідного рівня визначеності.

Якщо вам не потрібна математична визначеність і ви просто хочете евристику, зменшення розміру проходить швидше, а побірна вибір - точніша .

Якщо вам потрібно встановити межі точності вашого обчислення: можливо, але я не можу вам у цьому допомогти.


+1, тому що вам вдалося вичавити кілька важливих відомостей у дуже стислій відповіді.
dsp_user

3

Це залежить від того, що ви маєте на увазі під "порівнянням" та "мудрішим". Найрозумніша річ, яка не є складною в Matlab - це робити це обома способами та вирішувати самостійно.

Насправді, якби ви доповнили своє запитання результатами обох підходів, я б схвалив ваше запитання, і більшість людей вважають його цікавим і, швидше за все, допоможуть у з'ясуванні "порівняння"


1

Я хотів би зазначити проблему, яка виникає під час перегляду вибору, яка може бути вирішальною в цій операції. Якщо сигнал є вибірковим, а кінцеві точки даних далекі від нульових значень, то відбувається крайовий ефект . На практичному досвіді цей небажаний ефект слід усунути. Я ділюся з цією спільнотою коротким нарисом із написаними ними зображеннями та кодом, які могли б допомогти зрозуміти.

https://medium.com/@davidpinyol91/edge-effects-when-resampling-a-signal-on-matlab-how-to-solve-it-cc6458ab1306

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.