Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lesson 7.doc
Скачиваний:
10
Добавлен:
11.07.2019
Размер:
401.92 Кб
Скачать

Частота генерируемой осциллограммы

Частота генерируемой осциллограммы зависит от частоты регенерации (update rate) и числа циклов осциллограммы, находящихся в буфере. Эта ситуация показана на следующем рисунке.

Частоту выходного сигнала можно вычислить по следующей формуле:

Частота сигнала = [(циклы)(частота регенерации)]/(кол-во точек в буфере)

Следующий пример иллюстрирует, как частота регенерации (обновления) и число циклов осциллограммы в буфере влияют на частоту сигнала. Предположим, что у вас имеется 1000 точек в буфере, которые составляют один период осциллограммы. Если вы производите генерацию сигнала с частотой обновления 1 кГц, то частота сигнала определяется как

[(1 цикл) (1000 точек в секунду)]/(1000 точек) = 1 Гц

Если вы удвоите частоту регенерации, а все остальные параметры оставите прежними, то частота сигнала изменится:

[(1 цикл) (2000 точек в секунду)]/(1000 точек) = 2 Гц

Если вы удвоите число циклов в буфере, а все остальные параметры оставите прежними, то частота сигнала будет равна:

[(2 цикла) (1000 точек в секунду)]/(1000 точек) = 2 Гц

Таким образом, при удвоении частоты регенерации или числа циклов вы удваиваете частоту выходной осциллограммы.

Упражнение 7-3. Буферизированная генерация сигнала.

Задача: Создать ВП для генерации осциллограммы.

Примечание. Данное упражнение предусматривает использование звуковых колонок со встроенным усилителем. Если в вашей системе такого оборудования нет, замените данное упражнение упражнением 7-4.

В данном упражнении вы создадите ВП, проигрывающий WAV файл при помощи DAQ устройства.

1. Присоедините один провод от колонок к аналоговому выводу 0 на испытательной коробке. Другой провод от колонок присоедините к контакту GND также на испытательной коробке. О полярности подключения можно не заботиться.

2. Откройте новый ВП.

Блок-диаграмма

3. Создайте блок-диаграмму, как показано на следующем рисунке.

a. Поместите функцию File Dialog, расположенную в палитре Functions»All Functions»File I/O»Advanced File I/O Functions, на блок-диаграмму. Эта функция отображает диалоговое окно для выбора файла. Чтобы облегчить поиск WAV файлов на компьютере, щелкните правой кнопкой мыши на вводе pattern и выберите Create»Constant из появившегося контекстного меню. Введите *.wav для поиска только WAV файлов.

b. Поместите ВП Snd Read Wave File, расположенный в палитре Functions»All Functions»Graphics & Sound»Sound»Sound File, на блок-диаграмму. Этот ВП извлекает волновой файл ПК (.wav), считывает его заголовок и возвращает двоичные звуковые данные, находящиеся в файле. Выберите выход, совпадающий с типом WAV файла, который вы считываете. В данном случае используйте выход формата mono 16-bit.

c. Поместите функцию деления, расположенную в палитре Functions»Arithmetic & Comparison»Express Numeric, на блок-диаграмму. В данном упражнении эта функция будет менять масштаб 16-битных (216 = 65536) данных, чтобы они принимали значение в диапазоне от -1 до 1.

d. Поместите функцию Array Size, расположенную в палитре Functions»All Functions»Array на блок-диаграмму. Эта функция возвращает количество выборок, находящихся в WAV файле. Эту величину мы будем использовать для определения количества выборок на канал (размер буфера), которое будет задавать ВП DAQmx Timing.

e. Поместите ВП DAQmx Create Virtual Channel, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx – Data Acquisition на блок-диаграмму. Этот ВП создает виртуальный канал для заданного физического канала. Выберите из выпадающего меню конфигуратора этого ВП опции Analog Output»Voltage. Щелкните правой кнопкой мыши на вводе physical channels и выберите Create»Control из появившегося контекстного меню.

f. Поместите ВП DAQmx Timing, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx – Data Acquisition на блок-диаграмму. Этот ВП настраивает тактирование задачи. Щелкните правой кнопкой мыши на вводе rate и выберите Create»Constant из появившегося контекстного меню. Используемый для примера WAV файл оцифрован с частотой 44100 Гц, так что для ввода rate введите 44100.

g. Поместите ВП DAQmx Write, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx – Data Acquisition на блок-диаграмму. Этот ВП записывает данные в буфер для выполнения операции буферизированного аналогового вывода сигнала конечной длительности. Из выпадающего меню конфигуратора последовательно выберите следующие опции Analog»Single Channel»Multiple Samples»1D DBL.

h. Поместите ВП DAQmx Start Task, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx – Data Acquisition на блок-диаграмму. Этот ВП запускает буферизированную генерацию аналогового сигнала.

i. Поместите ВП DAQmx Wait Until Done, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx – Data Acquisition на блок-диаграмму. Этот ВП ожидает завершения выполнения задачи.

j. Поместите ВП DAQmx Stop Task, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx – Data Acquisition на блок-диаграмму. Этот ВП останавливает задачу аналогового вывода.

k. Поместите ВП Simple Error Handler, расположенный в палитре Functions»All Functions» Time & Dialog на блок-диаграмму. В случае возникновения ошибки этот ВП вызовет диалоговое окно с информацией об ошибке и месте ее возникновения.

Лицевая панель

4. Установите для элемента управления физические каналы значение Dev X/ao0, где X соответствует номеру вашего DAQ устройства.

5. Сохраните ВП с именем Tone Generation (7-3).vi в директории C:\Exercises\LabVIEW DAQ.

6. Установите ручку громкости динамиков в среднее положение.

7. Запустите ВП. Возникнет диалоговое окно, запрашивающее WAV файл. Выберите NISoundFile.wav, расположенный в директории C:\Exercises\LabVIEW DAQ. Вы должны услышать WAV файл из динамиков.

8. Закройте ВП.

Конец упражнения 7-3

Упражнение 7-4 (Необязательное). Буферизированная генерация сигнала

Задача: Создать ВП для генерации осциллограммы.

Примечание. Замените этим упражнением предыдущее для систем, не имеющих динамиков со встроенным усилителем.

В этом упражнении вы создадите ВП, производящий звуковой сигнал путем генерации синусоидальной волны в акустическом диапазоне частот (от 20 Гц до 16 кГц) и использующий синусоиду для управления динамиком.

1. На испытательной коробке присоедините аналоговый вывод 0 к аналоговому вводу 1.

Лицевая панель

2. Откройте ВП Tone Generation (7-4), расположенный в директории C:\Exercises\LabVIEW DAQ. Отобразится следующая лицевая панель.

Блок-диаграмма

3. Создайте следующую блок-диаграмму.

a. Поместите ВП DAQmx Create Virtual Channel, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx – Data Acquisition на блок-диаграмму. Этот ВП создает виртуальный канал для заданного физического канала. Выберите из выпадающего меню конфигуратора этого ВП опции Analog Output»Voltage. Щелкните правой кнопкой мыши на вводе physical channels и выберите Create»Control из появившегося контекстного меню.

b. Поместите ВП Sine Waveform, расположенный в палитре Functions»All Functions»Waveform»Waveform Generation, на блок-диаграмму. Этот ВП генерирует синусоидальный сигнал.

c. Поместите ВП DAQmx Timing, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx – Data Acquisition на блок-диаграмму. Этот ВП настраивает тактирование задачи.

d. Поместите ВП DAQmx Write, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx – Data Acquisition на блок-диаграмму. Этот ВП записывает данные в буфер для выполнения операции буферизированного аналогового вывода сигнала конечной длительности. Из выпадающего меню конфигуратора последовательно выберите следующие опции Analog»Single Channel»Multiple Samples»Waveform.

e. Поместите ВП DAQmx Start Task, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx – Data Acquisition на блок-диаграмму. Этот ВП запускает буферизированную генерацию аналогового сигнала.

f. Поместите ВП DAQmx Wait Until Done, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx – Data Acquisition на блок-диаграмму. Этот ВП ожидает завершения выполнения задачи.

g. Поместите ВП DAQmx Stop Task, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx – Data Acquisition на блок-диаграмму. Этот ВП останавливает задачу аналогового вывода.

h. Поместите ВП Simple Error Handler, расположенный в палитре Functions»All Functions» Time & Dialog на блок-диаграмму. В случае возникновения ошибки этот ВП вызовет диалоговое окно с информацией об ошибке и месте ее возникновения.

4. Сохраните ВП.

5. Откройте ВП Continuous Acquire with MIO, расположенный в директории C:\Exercises\LabVIEW DAQ. Используйте этот ВП для наблюдения выходного сигнала, сгенерированного при помощи ВП Tone Generation (7-4).

6. Установите следующие значения для элементов управления на лицевой панели ВП Continuous Acquire with MIO:

  • Физические каналы: Dev X/ai1, где X cсоответствует номеру вашего DAQ устройства

  • #выборок на канал: 5000

  • Частота выборки: 10000

7. Запустите ВП Continuous Acquire with MIO.

8. На лицевой панели ВП Tone Generation (7-4) установите следующие значения для элементов управления:

  • Физический канал: Dev X/ao0, где X соответствует номеру вашего DAQ устройства

  • Амплитуда: 1

  • Частота: 10000

  • Параметры выборки

Fs: 100000— Определяет частоту выборки осциллограммы, которую генерирует ВП Sine Waveform.

#s: 100000— Задает число выборок осциллограммы, которую генерирует ВП Sine Waveform.

9. Запустите ВП Tone Generation (7-4). Синусоидальный сигнал появится на графике. Если аналоговый выход 1 присоединен к динамику ПК, вы услышите звуковой сигнал одного тона.

10. После остановки ВП Tone Generation (7-4), измените значения следующих элементов управления на лицевой панели:

  • Частота: 10

  • Параметры выборки

Fs: 1000

#s: 1000

11. Запустите ВП Tone Generation (7-4) снова.

12. Закройте все ВП.

Конец упражнения 7-4

E. Непрерывная буферизированная генерация сигналов

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

Следующий рисунок похож на буферизированную генерацию сигналов, за исключением некоторых отличий:

  • ВП DAQmx Timing установлен в режим непрерывной выборки Continuous Samples.

  • В цикле по условию вместо ВП DAQmx Wait Until Done используется ВП DAQmx Is Task Done.

Настройка виртуального канала и параметров тактирования начинается с использования ВП Create Virtual Channel и ВП Timing. Затем происходит запись в буфер при помощи ВП DAQmx Write, и ВП DAQmx Start Task начинает выполнение задачи.

Цикл по условию совместно с ВП DAQmx Is Task Done используется для опроса задачи на предмет окончания ее выполнения. Генерация будет прекращена либо когда пользователь нажмет кнопку стоп, либо когда возникнет ошибка. После того, как данные в буфере будут целиком обработаны, они будут непрерывно регенерироваться. После остановки цикла по условию ВП DAQmx Stop Task прекратит выполнение задачи и, если ошибки имели место, появится сообщение об ошибках.

Примечание. На каждой итерации цикла вы можете записывать новые данные в буфер. Для этого необходимо поместить ВП Write внутрь цикла и присоединить новые данные к терминалу данных этого ВП. Используя узел свойств Write property node, выберите свойство Regeneration Mode и установите его в состояние don’t Allow Regeneration. Вы должны быть уверены, что достаточно быстро генерируете новые данные во избежание выдачи из буфера старых данных. Эта ситуация напоминает операцию непрерывного буферизированного сбора данных. Тогда вам нужно было быть уверенным, что вы считываете данные из буфера достаточно быстро, прежде чем они будут переписаны новой порцией данных.

Упражнение 7-5. Непрерывная буферизированная генерация сигнала.

Задача: Создать ВП для непрерывной генерации осциллограммы.

Примечание. Это упражнение предусматривает использование звуковых колонок (динамиков) со встроенным усилителем. Если в ваше системе их нет, то перейдите к выполнению упражнения 7-6.

В данном упражнении вы создадите ВП, который будет непрерывно проигрывать WAV файл при помощи DAQ устройства.

1. Присоедините один провод от колонок к аналоговому выводу 0 на испытательной коробке. Другой провод от колонок присоедините к контакту GND также на испытательной коробке. О полярности подключения можно не заботиться.

2. Откройте ВП Tone Generation (7-3), который вы создали в упражнении 7-3.

3. Сохраните ВП под именем Continuous Tone Generation (7-5).vi в директории C:\Exercises\LabVIEW DAQ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]