Сказать, что в вашем сигнале шум, очень расплывчато и вообще не передает много информации.Вот некоторые из вопросов:
- Является ли шум высокой частотой или низкой частотой?
- Хорошо ли он отделен от полосы частот вашего сигнала или смешан в?
- Соответствует ли шум статистической модели?Можно ли его описать как стационарный процесс?
- Является ли шум еще одним детерминированным мешающим сигналом?
Ваш подход, безусловно, будет зависеть от ответов на поставленные выше вопросы.
Однако, исходя из экспериментальной установки, которую вы описали, я предполагаю, что ваш шум - это просто фоновый шум, который в большинстве случаев может быть приблизительно белым. Белый шум относится к модели статистического шума, которая имеет постоянную мощность на всех частотах.
Простейшим подходом будет использование фильтра нижних частот или полосового фильтра для сохранения только тех частот, которые вас интересуют (быстрый взгляд на частотный спектр должен показать это, если вы этого не знаетеуже).В моем предыдущем ответе на связанный вопрос о фильтрации с использованием MATLAB я привожу примеры создания фильтров нижних частот и распространенных ошибок.Вы, вероятно, можете прочитать это и посмотреть, поможет ли это вам.
Простой пример:
Рассмотрим синусоиду с частотой 50 Гц, с выборкой при 1000 Гц.К этому я добавляю гауссовский белый шум, так что SNR составляет ~ -6 дБ.Исходный сигнал и зашумленный сигнал можно увидеть в верхнем ряду на рисунке ниже (показаны только 50 образцов).Как вы можете видеть, это выглядит так, как будто нет надежды с шумным сигналом, поскольку вся структура, кажется, была разрушена.Однако, взяв БПФ, выявляет скрытую синусоиду (показана в нижнем ряду)
![enter image description here](https://i.stack.imgur.com/BGf6A.png)
Фильтрация зашумленного сигнала с помощью узкополосного фильтра от 48 до 52 Гц дает нам«убран» сигнал.Там, конечно, будут некоторые потери в амплитуде из-за шума.Однако сначала сигнал был получен из того, что выглядело как безнадежное дело.
![enter image description here](https://i.stack.imgur.com/kpWUe.png)
Порядок действий зависит от вашего конкретного применения.Но я надеюсь, что это помогло вам понять некоторые основы фильтрации шума.
РЕДАКТИРОВАТЬ
@ Shabnam: это было почти 50 комментариев, и я действительно не вижу васприлагая какие-либо усилия, чтобы понять или, по крайней мере, попробовать вещи самостоятельно.Вы действительно должны научиться читать документацию, изучать концепции и пробовать ее вместо того, чтобы возвращаться к каждой отдельной ошибке.В любом случае, пожалуйста, попробуйте следующее (изменено из вашего кода) и покажите вывод в комментариях.
[y,fs]=wavread('100cmfreefall.wav');
ch1=y(:,1);
time=(1/fs)*length(ch1);
t=linspace(0,time,length(ch1));
L=length(ch1);
NFFT = 2^nextpow2(L);
f = fs/2*linspace(0,1,NFFT/2+1);
[b,a]=butter(10,3e3/(fs/2),'high');
y1=filtfilt(b,a,ch1);
figure(1)
subplot(2,1,1)
Y=fft(ch1,NFFT)/L;
plot(f,log10(abs(Y(1:NFFT/2+1))))
title('unfiltered')
subplot(2,1,2)
Y1=fft(y1,NFFT)/L;
plot(f,log10(abs(Y1(1:NFFT/2+1))))
title('filtered')