
Работы / laba 2
.docxФЕДЕРАЛЬНОЕ АГЕНСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА
Федеральное государственное бюджетное образовательное учреждение высшего образования
«ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ ИМПЕРАТОРА АЛЕКСАНДРА 1»
КАФЕДРА «Методы и приборы неразрушающего контроля»
Дисциплина «Обнаружение и фильтрация сигналов»
Отчёт
По лабораторной работе № 2
«Исследование спектрального состава акустического сигнала»
ВАРИАНТ 5
Выполнил студент: Сабитов И.А.
Факультет: АИТ
Проверил: Кособоков Д.В.
Санкт-Петербург 2020
Цель работы:
- изучить метод визуализации акустических сигналов путем представления их на плоскости амплитуда-время, амплитуда-частота, время-частота;
- освоить синтаксис команд математического пакета Matlab, используемых при вводе-выводе акустических сигналов и при построении спектрограмм.
Ход выполнения работы:
Строим графики исходного, зондирующего и эхо-сигнала в двух плоскостях: амплитуда-частота и амплитуда-время. (Рис.1)
(а)
(б)
(в)
Рис. 1 – Графики зондирующего (а), эхо-сигнала(б) и исходного (в) сигнала.
Далее получаем два графика спектрограммы сигнала. (Рис.2)
(а)
(б)
Рис. 2 – Спектрограммы сигнала без шумов (а) и зашумленного (б).
Расчетные данные основных параметров спектрограммы, выполненных с помощью Matlab:
Длительность анализируемого сигнала T = 2.5600
Диапазон анализируемых частот = 0 50
Разрешающая способность по частоте df = 0.3906
Разрешение по времени dt = 1.2800
Коды программ
- построение графика исходного сигнала;
fx = load('Echo5.txt');
subplot(1, 2, 1), plot(fx), grid;
title('Амплитуда-время', 'fontname', 'arial');
n=512;
fs=100;
fy = fft(fx, n);
Sxx = abs(fy);
f = (1:n/2) * fs / n;
subplot(1, 2, 2), plot(f, Sxx(1:n/2)), grid;
title('Амплитуда-частота', 'fontname', 'arial');
- построение графика зондирующего импульса;
fx = load('Zond.txt');
subplot(1, 2, 1), plot(fx), grid;
title('Амплитуда-время', 'fontname', 'arial');
n=512;
fs=100;
fy = fft(fx, n);
Sxx = abs(fy);
f = (1:n/2) * fs / n;
subplot(1, 2, 2), plot(f, Sxx(1:n/2)), grid;
title('Амплитуда-частота', 'fontname', 'arial');
- построение графика эхо-сигнала;
fx = load('O15_5.txt');
subplot(1, 2, 1), plot(fx), grid;
title('Амплитуда-время', 'fontname', 'arial');
n=256;
fs=20;
fy = fft(fx, n);
Sxx = abs(fy);
f = (1:n/2) * fs / n;
subplot(1, 2, 2), plot(f, Sxx(1:n/2)), grid;
title('Амплитуда-частота', 'fontname', 'arial');
- построение спектрограммы чистого сигнала;
fx = load('Echo5.txt');
subplot(2, 1, 1), plot(fx), grid;
title('Амплитуда-время', 'fontname', 'arial');
fs=100;
n1=256;
win = hamming(n1, 'symmetric');
nover=length(win)/2;
subplot (2, 1, 2), specgram(fx, n1, fs, win, nover);
title('Спектрограмма', 'fontname', 'arial');
- построение спектрограммы зашумленного сигнала и расчет параметров спектрограммы.
fx = load('Sgn+noise5.txt');
subplot(2, 1, 1), plot(fx), grid;
title('Амплитуда-время', 'fontname', 'arial');
fs=100;
n1=256;
win = hamming(n1, 'symmetric');;
nover=length(win)/2;
subplot (2, 1, 2), specgram(fx, n1, fs, win, nover);
title('Спектрограмма', 'fontname', 'arial');
T=n1/fs
[0, fs/2]
df=fs/n1
dt=n1/(2*fs)
Выводы
В ходе лабораторной работы ознакомились с методом визуализации сигналов путем представления их на плоскости амплитуда-время, амплитуда-частота и время-частота. Получили спектрограммы сигналов с шумами и без них. На первых сигнал теряется, что говорит о вреде шумов.
2.1 В самом простом случае для сохранения и последующей загрузки каких-либо данных в MatLab предусмотрена функция load. Формат вызова команды:
load <имя_файла> <имена переменных> % загрузка данных
Основное средство для построения графиков в MATLAB – это команда plot и различные ее модификации. Она может вызываться с одним или несколькими входными аргументами.
Стандартный вариант ее вызова – это plot(x,y), где x и y – два массива чисел, содержащие абсциссы и ординаты точек графика функции y= f(x).
Команда выполняется перед обращением к функциям построения графиков для одновременной выдачи нескольких графиков в различных частях графического окна.
Команды subplot(mnp) или subplot(m, n, p), где mnp - 3 цифры, производит разбивку графического окна на несколько подокон, создавая при этом новые объекты axes; значение m указывает, на сколько частей разбивается окно по горизонтали, n - по вертикали, а p - номер подокна, куда будет выводиться очередной график. Эти же команды могут использоваться для перехода от одного подокна к другому.
Функция fft() переводит сигнал в частотную область по алгоритму Быстрого Преобразования Фурье (Fast Fourier Transform) - строит спектр периодического сигнала.
2.2