Функции > Чтение и запись файлов > Пример. Работа с 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 показаны ниже:
Щелкните для копирования этого выражения
Было ли это полезно?