Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МТ_ЛР1_Иванова_4117.docx
Скачиваний:
0
Добавлен:
29.04.2025
Размер:
1.06 Mб
Скачать

Листинг 4. Код построения спектрограммы сигнала.

g_std = 0.2*Fd # кол-во точек в окне

# симметричное Гауссовское окно:

window = gaussian(round(2*g_std), std=g_std, sym=True)

SFT = ShortTimeFFT(window, hop=round(0.1*Fd), fs=Fd, scale_to='magnitude')

Sx = SFT.stft(input_signal[0,:]) # краткоременное преобразование Фурье

print(sys.getsizeof(Sx) / (2**30) , 'Гб') # используемая память в Гб

# построение графика спектрограммы:

fig1, ax1 = plt.subplots(figsize=(6, 4))

t_lo, t_hi = SFT.extent(N)[:2] # time range of plot

ax1.set_title(rf"STFT ({SFT.m_num*SFT.T:g}$\,s$ Gauss window,"+ rf"$\sigma_t={g_std*SFT.T}\,$s)")

ax1.set(xlabel=f"Time $t$ in seconds ({SFT.p_num(N)} slices,"+ rf"$\Delta t = {SFT.delta_t:g}\,$s)",

ylabel=f"Freq. $f$ in Hz ({SFT.f_pts} bins, "+ rf"$\Delta f = {SFT.delta_f:g}\,$Hz)",

xlim=(t_lo, t_hi))

epss=np.max(abs(Sx))*1e-6 # для масштаба

im1 = ax1.imshow(20*np.log10(abs(Sx+epss),origin='lower', aspect='auto', extent=SFT.extent(N), cmap='viridis')

fig1.colorbar(im1, label="Magnitude $|S_x(t, f)|$")

ax1.semilogy()

ax1.set_xlim([0, T])

ax1.set_ylim([10, Fd/2])

ax1.grid(which='major', color='#bbbbbb', linewidth=0.5)

ax1.grid(which='minor', color='#999999', linestyle=':',linewidth=0.5)

ax1.minorticks_on()

plt.show()

Рисунок 6 — Спектрограмма сигнала

Дополнительное задание:

Из сети Интернет [2] взят моно аудиофайл формата .mp3. При использовании ранее написанного кода выполнена визуализация звукового сигнала. Отображение в общем виде представлено на Рисунке 7.

Видно, что после резкого нарастания вначале громкость звучания постепенно снижается, пока амплитуда к 1 секунде не достигает значения 0.2, после чего начинается поведение подобное синусоидальной форме: с постепенным нарастанием до 1.3 секунды и затуханием к концу файла. Подробнее этот фрагмент рассмотрен на Рисунке 8.

Рисунок 7 — Визуализация выбранного сигнала (общий вид)

Рисунок 8 — Визуализация выбранного сигнала (фрагмент с 1 по 1.6)

Построен график амплитудного спектра данного сигнала (Рисунок 9). На нем видно скачкообразное увеличение громкости вплоть до 50 дБ, по мере увеличения частоты от 10 до 1000 Гц и затем снижение громкости. На основе этого графика можно сделать вывод о том, что для данного аудиосигнала характерен в начале быстро нарастающий звук переходящий из гула (низкий тон) в писк (высокий).

Рисунок 9 — Амплитудный спектр сигнала

В заключении построена спектрограмма исследуемого сигнала (Рисунок 10). На ней видно, что в файле звучат высокие тона, и одновременно в одни и те же моменты времени проявляется разная частота в диапазоне от 1000 до 10 000 Гц. Это говорит о наличие сложного звука, в котором одновременно присутствуют несколько частот, возможно причина в шумах, которые плохо слышны в виду высокой громкости основного звука.

При прослушивании файла слышен неоднородный нарастающий визг. Исследуемый файл — фрагмент озвучки кричащего дройда (робота) (Rd2D) из фильма.

Рисунок 10 — Спектрограмма выбранного сигнала

Выводы:

В результате выполнения лабораторной работы получены навыки формирования и обработки звуковых файлов посредством Python.

Был смоделирован и записан в файл синусоидальный звуковой стереосигнал, особенностью которого является нарастание громкости в левом канале и её уменьшение в правом канале.

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

Также аналогичный анализ был проведён по отношению к файлу, скачанному из сети. Выводы о поведении сигнала в целом сопоставимы с прослушанным звучанием файла: повышение частоты и амплитуды на протяжённости сигнала сопоставимо с нарастающим визгом при прослушивании.