Затухающая синусоидальная форма БПФ сигнала - PullRequest
0 голосов
/ 11 октября 2018

Я выполняю задание для курса «Анализ сигналов», где мне нужно анализировать сигнал.Я уже пробовал кое-что, но меня все еще беспокоит, что БПФ выглядит странно и не похоже на БПФ «нормального вида», которое мы изучали в классе.

БПФ (абсолютные значения комплексных значений): БПФ, значения абс. - БПФ, значения абс. Увеличены в

БПФ (без абсолютных значений): БПФ, увеличены в

БПФ, показанное на изображении выше, увеличено в диапазоне частот 0-30 Гц.Остальная часть частотного диапазона не показывает много (высоких) пиков, которые, вероятно, вызваны шумом.

Сигнал создается во время метода сварки с использованием осциллографа с частотой дискретизации 1000 Гц.Я отфильтровал сигнал для удаления шума, и после этого сигнал преобразуется в частотный спектр с использованием функции fft в MATLAB.

Сигнал до и после фильтрации: Исходный сигнал и отфильтрованный сигнал

Мой общий вопрос: может ли показанный БПФ быть действительным или я допустил ошибку?Я оценил частоту земли около 5,5 Гц, могу ли я сказать это, когда я беру один период большой синусоидальной волны?Я также заметил, что в течение одного (основного) периода существует около 64 маленьких синусоидальных волн, это форма волны высокой гармоники?.

Если моя теория верна, что заставляет БПФ быть затухающей синусоидальной формой??

Код, который я использую, в основном следующий.Я оставляю часть фильтрации шума, потому что я не думаю, что это необходимо для этого вопроса.Набор данных представляет собой матрицу из 40100 строк.

fs = 1000;
cleanSignaal = data(:,4);
fftSignal = fft(cleanSignaal)/lenght(cleanSignaal);
f = fs/(2*length(fftSignal)):fs/length(fftSignal):fs;
plot(f,abs(fftSignal));
xlim([0 fs(m)/2]);
title('Fast Fourier Transform')
xlabel('Frequentie (Hz)')
ylabel('Magnitude')

Спасибо!

1 Ответ

0 голосов
/ 12 октября 2018

То, что у вас есть, выглядит правильно: ваш сигнал - это импульс с некоторым шумом, а БПФ - это, в основном, функция sinc (или abs sinc, как вы должны нарисовать дляFFT), что и следовало ожидать для импульса.

Вот простая демонстрация этого.(Кстати, я сделал импульс немного уже, чем ваш, чтобы увеличить sinc, что работает, так как ширина обратно пропорциональна. Таким образом, мне не нужно увеличивать масштаб.)

enter image description here

import numpy as np
import matplotlib.pyplot as plt # For ploting

N = 1000
t = np.linspace(0, 1., N)
y = ( (t>0.46) & (t<0.54)).astype(float)

f = np.abs(np.fft.rfft(y))
faxis = np.fft.rfftfreq(y.size, 1./N)

plt.figure()
plt.subplot(211)
plt.plot(t, y)
plt.ylim(-.1, 1.1)
plt.subplot(212)
plt.plot(faxis, f)
plt.ylim(0, 90)
plt.show()

Вдобавок к импульсу у вас много резких шумов, которые добавляются к БПФ.Как правило, это будет иметь спектральные качества, в основном вдали от низких частот сигнала, но это может зависеть от точного характера шума.

...