Дискретизація та квантування експериментальних даних

Одержання, обробка і ґенерування сигналу, DAQ, DAQmx

Дискретизація та квантування експериментальних даних

Postby tinomoko on 21 Dec 2012, 15:10

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

Розглянемо приклад дискретизації та квантування сигналу.

Сигнал представлений функцією:
y (t)=C⋅sin(B⋅t)+A⋅sin( D⋅t)
де t є [0 ;3] .
Корисна складова сигналу:
y (t)=C⋅sin(B⋅t) .
А=8, В=9, С=104, D=81

Моделюємо корисний сигнал та сигнал завади, задавшись значеннями частоти та амплітуди корисного сигналу і частоти та амплітуди сигналу завади за допомогою оператора Configure Simulate Signal.

01.JPG


Шляхом сумування цих сигналів отримуємо початковий вхідний сигнал.
За допомогою оператора Conver from Dynamic Data перетворюємо сигнал у числовий. Щоб дискретизувати сигнал по часу задаємося кроком дискретизації і створюємо новий дискретизований сигнал у вигляді масиву даних у Case Structure (відкидаємо кожне N-не значення сигналу (елемент масиву), в данному випадку кожен 10-ий елемент та записуємо залишкові значення у новий масив за допомогою оператора Build array). Записуємо значення початкового та дискретизованого сигналів у файли, за допомогою оператора Write to Spreadsheet File, розділяючи значення комами (документи poch.csv, dуscret.csv для початкового та дискретизованого сигналів відповідно).

02.JPG


Другим етапом є квантування по рівню. Для цього необхідно спочатку визначити амплітуду вхідного сигналу, дискретизованого за часом. Використовуємо Array max&min. Цей оператор дозволяє визначити максимальне та мінімальне значення сигналу, після чого ці значення ми додаємо та округлюємо до більшого. Це необхідно для визначення ціни одного розряду АЦП, яку ми розраховуємо наступним чином: отриману округлену суму ділимо на наперед задану (із завдання) кількість рівнів квантування.

04.JPG


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

06.JPG


Вигляд початкового, дискретизованого та квантованого сигналів відповідно

05.JPG
tinomoko
interested
interested
 
Posts: 1
Joined: 21 Dec 2012, 13:40
LabVIEW Version: 7.1
Karma: 5

Return to Обробка сигналу

Who is online

Users browsing this forum: No registered users and 2 guests

cron