Функции > Чтение и запись файлов > Пример. Работа с WAV-файлами и создание спектрограмм
  
Пример. Работа с WAV-файлами и создание спектрограмм
Используйте функции READWAV и GETWAVINFO, чтобы прочитать и получить информацию о формате из WAV-файлов.
Получение информации WAV
1. Используйте GETWAVINFO, чтобы получить информацию из звукового файла. Этот звуковой файл является образцом звуков, издаваемых продельфинами. Можно использовать любой звуковой проигрыватель, чтобы воспроизвести его.
Нажать для копирования этого выражения
Вектор содержит число каналов, частоту выборки, разрешение (число битов в выборке) и среднее число байтов в секунду, которые должно обработать устройство звукового проигрывателя, чтобы воспроизвести звук в режиме реального времени.
2. Вычислите переменные вектора.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Чтение в звуковой файл
1. Используйте функцию READWAV, чтобы прочитать звуковой файл и сохранить его в вектор.
Нажать для копирования этого выражения
Если READWAV возвращает матрицу, последовательные столбцы представляют отдельные каналы данных.
2. Используйте функцию length, чтобы вычислить общее количество образцов.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
3. Постройте график сигнала.
Нажать для копирования этого выражения
4. Используйте функции match, max и min, чтобы найти выборки с максимальными и минимальными величинами, а затем найдите соответствующие времена выборки.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
5. Постройте график первых 25000 выборок и используйте маркеры, чтобы показать выборку с максимальной величиной.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Создайте спектрограмму
Проанализируйте звуковые данные, разделив данные на малые временные слои, и покажите частотное содержимое каждого слоя. В этом примере используется слой из 128 выборок.
1. Определите вектор размеров слоя по степеням 2.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Где ss - число строк в матрице слоя.
2. Определите вектор коэффициентов перекрытия между 0-90% с приращением 10.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Перекрытие 100% невозможно.
3. Задайте коэффициент перекрытия и используйте функции floor и ceil для определения размера матрицы.
Нажать для копирования этого выражения
Если установлено нулевое перекрытие, вектор Data делится на число блоков ss-long. При увеличении перекрытия также увеличивается число блоков ss-long, как показывает следующее уравнение:
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Каждому сочетанию размера слоя и коэффициента перекрытия соответствуют разные размеры матрицы слоя:
Нажать для копирования этого выражения
При использовании значений ss=128 и overlap=40% получается матрица 128x2602, для компоновки и построения графика которой может потребоваться очень много времени.
4. Создайте вектор TI, чтобы упростить настройку ti на одно из десяти значений, которые равны или меньше значения ti.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
5. Задайте для ti один из средних элементов TI и наблюдайте за контурным графиком в нижней части документа.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Новые размеры матрицы слоя:
Нажать для копирования этого выражения
6. Кадрируйте каждый слой с использованием окна Hamming.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
7. Используйте функцию log, чтобы представить частоты в децибелах.
Нажать для копирования этого выражения
8. Используйте функцию dft (или устаревшую функцию fft), чтобы найти преобразование Фурье для слоя.
Нажать для копирования этого выражения
Чтобы использовать устаревшую функцию fft, отключите верхнюю область и включите нижнюю область.
Нажать для копирования этого выражения
9. Используйте контурный график для построения графика spectra.
Нажать для копирования этого выражения
10. Экспериментируйте с различными значениями размера слоя (ss), overlap и ti. Однако для наблюдения влияния на время вычисления и построения графика рекомендуется изменять параметры по одному, оставляя для двух других значения по умолчанию [128 0.4 82].
Текущие настройки ss, overlap и ti показаны ниже:
Нажать для копирования этого выражения