Автор: Пользователь скрыл имя, 20 Февраля 2012 в 10:04, лабораторная работа
Изучение средств работы с типом данных Waveform (Waveform Data Type), получение навыков оперирования сигналами, представленными в этом типе данных.
Изучение средств работы с типом данных Waveform (Waveform Data Type), получение навыков оперирования сигналами, представленными в этом типе данных.
2 Задание
Создайте виртуальный прибор, который выполняет базовые операции над условным сигналом: получение временных характеристик, получение фрагмента сигнала, масштабирование, смещение, нормализацию, добавление фрагмента, нахождение минимального и максимального значения, ресэмплинг, сложение и вычитание сигналов.
3.1 Откройте палитру All Functions->Waveform и ознакомьтесь с её составом. Изучите контекстную и краткую справку на каждый из приборов этой палитры.
3.2 Разместите на блок-диаграмме функцию Build Waveform (из палитры ) All Functions->Waveform и растяните её вниз, чтобы она содержала входы waveform, t0, dt и Y. Подайте на вход t0 константу временной метки (timestamp), вызвав, например, контекстное меню на этом входе и выбрав Create->Constant; на вход dt – числовую константу 0.01, а на вход Y – массив синусоидальных значений, как показано на рисунке ниже.
3.3 Выведите получившийся сигнал с выхода output waveform функции Build Waveform на графический индикатор типа Waveform Graph и запустите программу, чтобы увидеть сигнал на экране. Исследуйте, как влияет на отображение сигнала задание различных значений для t0 и dt, а также размера массива данных.
3.4 Разместите теперь на блок-диаграмме прибор Sine Waveform.vi (из палитры All Functions->Analyze->Waveform Generation), и выведите его выход signal out на еще один графический индикатор типа Waveform Graph. Задайте при этом для первого сигнала количество точек в 1000 и интервал времени dt в 0.01. Запустите программу и сравните два графика.
3.5 Вычислите теперь разность двух сигналов, разместив на блок диаграмме функцию Subtract из палитры All Functions->Numeric, и подав на её входы первый и второй сигналы. Выведите её выход на графический индикатор типа Waveform Graph. Запустите программу и объясните появившееся сообщение об ошибке.
3.6 Измените теперь значение dt для первого сигнала на 0.001 и снова запустите программу. Исследуйте поведение программы при задании различных операций для входных сигналов (сложение, умножение, деление) и для разных значений размера массива данных в первом сигнале (100, 1000, 2000).
3.7 Выведите теперь следующую информацию о результирующем сигнале: конечное значение по оси времени и длительность сигнала. Для этого разместите на блок-диаграмме приборы Get Final Time Value.vi и Waveform Duration.vi (из палитры All Functions-> Waveform). Соедините их входы waveform in с результирующим сигналом. Выведите на переднюю панель индикаторы выходов, соответственно, tf и duration.
3.8 Изучите, как с помощью прибора Scale Delta t.vi осуществлять масштабирование по оси времени, взяв в качестве входного любой из имеющихся сигналов, и выведя результат преобразования на отдельный график Waveform Graph.
3.9 Дополните прибор операциями масштабирования, нормализации, добавления сигнала. Разместите c этой целью на блок-диаграмме приборы Waveform Scale and Offset.vi, Normalize Waveform.vi, Append Waveforms.vi.
3.10 Для масштабирования какого либо имеющегося сигнала задайте на передней панели управляющие элементы ввода чисел смещения и масштаба и соедините их со входами offset и scale прибора Waveform Scale and Offset.vi, а его выход waveform out выведите на индикатор типа Waveform Graph.
3.11 Для нормализации какого либо имеющегося сигнала подайте его на вход waveform in прибора Normalize Waveform.vi, а его выходы normalized waveform, scale и offset выведите на соответствующие индикаторы.
3.12 Для добавления к имеющемуся сигналу другого сигнала подайте на входы waveform A и waveform B прибора Append Waveforms.vi желаемые сигналы, а с выхода waveform out снимите результат добавления сигнала.
3.13 Исследуйте работу приборов для поиска данных в сигнале: нахождения максимального и минимального значений, нахождения превышений порога и нахождения значений с заданной погрешностью. Этим операциям соответствуют приборы Waveform Min Max.vi, Waveform Scalar Limit Comparison.vi, Search Waveform.vi.
3.14 Чтобы найти минимальное и максимальное значения в сигнале, подайте его на вход waveform in прибора Waveform Min Max.vi. Для его выходов max time, Y max, Y min, min time создайте соответствующие индикаторы.
3.15 Чтобы сравнить сигнал с пороговым значением, подайте его на вход data прибора Waveform Scalar Limit Comparison.vi. Задайте один из четырёх критериев сравнения на входе Compare Condition, а значение порога – на входе Limit. Соответствие или несоответствие сигнала порогу можно пронаблюдать на выходе Passed?.
3.16 Чтобы найти значения в сигнале с заданной погрешностью, подайте его на вход waveform in прибора Search Waveform.vi. Задайте значения входов tolerance и value. На выходе можно получить массивы индексов (indices of fits) и соответствующих времен (time of fits) попаданий, а также индекс (index of best fit) и временную метку (time of best fit) наилучшего результата поиска.
3.17 Изучите порядок работы с сигналами с разной частотой дискретизации.
3.17.1 Задайте для входа sampling info прибора Sine Waveform.vi значение константы кластера, содержащее частоту дискретизации 2 кГц, а для первого сигнала задайте значение интервала дискретизации dt в 0.001.
3.17.2 Запустите программу и пронаблюдайте отличия в отображении сигналов с разной частотой дискретизации. При этом удалите арифметическую функцию операции над парой сигналов во избежание вывода сообщения о несоответствии интервала дискретизации.
3.17.3 Используйте теперь прибор Resample Waveforms (single shot).vi (из палитры All Functions->Analyze->Waveform Conditioning) для получения суммы двух сигналов с разной исходной частотой дискретизации. Разместите его на передней панели и подайте на его вход waveform in сигнал с Sine Waveform.vi. На вход interpolation mode подайте одно из возможных константных значений. Задайте также для входа FIR filter specifications управляющий элемент на передней панели. А для входа dt возьмите значение интервала дискретизации с первого сигнала. Для этого разместите на блок-диаграмме функцию Get Waveform Components (палитра All Functions->Waveform), и соедините её вход с источником первого сигнала. Выберите на выходе этой функции вывод dt.
3.17.4 Запустите программу и пронаблюдайте работу при различных методах интерполяции ресэмплируемого сигнала.
3.18 Добавьте в прибор простейший спектральный анализатор, разместив на блок-диаграмме FFT Spectrum (Mag-Phase).vi из палитры All Functions->Analyze->Waveform Measurements. Подайте на его вход time signal сумму сигналов, а с выхода magnitude выведите данные на график. Исследуйте спектры сигналов с разной частотой, например, 10 и 20 Гц.
3.19 Наложите на анализируемый сигнал шум, использовав прибор Uniform White Noise Waveform.vi. Просуммируйте его выход signal out с анализируемым сигналом. Не забудьте при этом задать правильное значение входа sampling info. Проанализируйте спектрограмму смеси сигналов.
3.20 Преобразуйте синусоидальный сигнал в цифровой, представив его в виде Digital Waveform. Для этого разместите на блок-диаграмме прибор Analog to Digital Waveform.vi, и подайте на его вход Analog Waveform синусоидальный сигнал. Выход Digital Waveform заведите на графический индикатор специального типа – Digital Waveform Graph. Задайте разрешение (вход Resolution) в 1, 2, 3, 4 бита и изучите изменения цифрового графика при разных частотах синусоиды.
4.1 Зачем нужен ресэмплинг сигналов?
4.2 В чем особенности и различия различных методов ресэмплинга сигналов?
4.3 Какое максимальное количество гармоник можно получить с помощью FFT Spectrum и от чего зависит это значение?
4.4 Каким образом осуществляется преобразование Analog Waveform в Digital Waveform, если задавать различное разрешение этого преобразования в битах?
8