
Добавил:
toykion
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лаб4 / lab4_1
.m clc; clear; close all;
Fd = 44100; % Частота дискретизации в Гц
Td = 1 / Fd; % Период дискретизации
Ts = 60; % Длительность сигнала в секундах
N = Fd * Ts; % Количество отсчетов
% Генерация белого шума
x = randn(N, 1);
% Параметры фильтра
fc_low = 400; % Граница ФНЧ (для имитации основного тон звука моря)
fc_high = 12000; % Граница ФВЧ (для добавления шороха)
% Создаем ФНЧ
[b_low, a_low] = butter(6, fc_low / (Fd / 2), 'low');
% Создаем ФВЧ
[b_high, a_high] = butter(6, fc_high / (Fd / 2), 'high');
% Применяем фильтры
y = filter(b_low, a_low, x) + 0.05 * filter(b_high, a_high, x);
% Имитация эффекта прибоя путем модуляции амплитуды
for i = 1:N
y(i) = y(i) * (1 + 0.3 * sin(2 * pi * (1/5) * i * Td))^2;
end
% Нормализация сигнала
y = 0.99 * y / max(abs(y));
% Перевод в int16
output_signal = int16(y * 32767);
% Запись аудиофайла
audiowrite('simulated_sea.wav', output_signal, Fd);
Fd = 44100; % Частота дискретизации в Гц
Td = 1 / Fd; % Период дискретизации
Ts = 60; % Длительность сигнала в секундах
N = Fd * Ts; % Количество отсчетов
% Генерация белого шума
x = randn(N, 1);
% Параметры фильтра
fc_low = 400; % Граница ФНЧ (для имитации основного тон звука моря)
fc_high = 12000; % Граница ФВЧ (для добавления шороха)
% Создаем ФНЧ
[b_low, a_low] = butter(6, fc_low / (Fd / 2), 'low');
% Создаем ФВЧ
[b_high, a_high] = butter(6, fc_high / (Fd / 2), 'high');
% Применяем фильтры
y = filter(b_low, a_low, x) + 0.05 * filter(b_high, a_high, x);
% Имитация эффекта прибоя путем модуляции амплитуды
for i = 1:N
y(i) = y(i) * (1 + 0.3 * sin(2 * pi * (1/5) * i * Td))^2;
end
% Нормализация сигнала
y = 0.99 * y / max(abs(y));
% Перевод в int16
output_signal = int16(y * 32767);
% Запись аудиофайла
audiowrite('simulated_sea.wav', output_signal, Fd);