Я работаю над фильтрацией сигналов в MATLAB. Я написал сигнал с 3-мя различными частотами:Проектирование узкого полосового фильтра в MATLAB
Fs = 8000; %// Sampling frequency
T = 1/Fs; %// Sample time
L = 16000; %// Length of signal
t = (0:L-1)*T; %// Time vector
y = 40*sin(2*pi*50*t) + 500*sin(2*pi*51*t) + 500*sin(2*pi*49*t);
Теперь я хочу, чтобы извлечь сигнал 50 Гц с помощью окна полосовой фильтрации с использованием окна Ханнинга.
Вот мой код, чтобы проектировать фильтр:
function Hd = HannFilter1
Fs = 8000; %// Sampling Frequency
N = 4096; %// Order
Fc1 = 49.5; %// First Cutoff Frequency
Fc2 = 50.5; %// Second Cutoff Frequency
flag = 'scale'; %// Sampling Flag
win = hann(N+1);
b = fir1(N, [Fc1 Fc2]/(Fs/2), 'bandpass', win, flag);
Hd = dfilt.dffir(b);
После этого, я фильтрации с использованием filter
так:
yfilter = filter(Hd.Numerator,1,y);
NFFT = 2^nextpow2(L);
Y = fft(yfilter,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
figure;
subplot(2,1,1);
plot(yfilter);
subplot(2,1,2);
plot(f,2*abs(Y(1:NFFT/2+1)))
- Почему этот фильтр не в состоянии извлечь сигнал 50 Гц?
- Я делаю что-то не так в этой симуляции?
- Как отфильтровать сигнал 50 Гц?
Какая максимальная частота дискретизации для сигнала 50 Гц? и очень важный вопрос! в реальном мире, как и система балансировки, основной сигнал составляет около 20 Гц, а среда слишком шумная, и фильтрация по моему решению не дает правильного ответа. в этом случае, как я могу использовать или выбрать лучший алгоритм фильтрации?
если моя ставка образца будет 8000Цем и я могу буферный только 20000 образцов, как можно Проектирование узкополосного фильтра?
Это абсурдная полоса пропускания. Вы проверили частотную характеристику фильтра? –
Да, ответ фильтра в порядке, есть забавный момент, что я нашел его! когда я уменьшаю амплитуду сигнала 49 Гц и 51 Гц до 10 (от 500), все отлично работает! Зачем?! –
есть еще один момент! максимум амплитуды отфильтрованного сигнала, сильно связанного с другими сигналами! (49 Гц и 51 Гц), если амплитуда сигнала 49 Гц вырастает до 2000, (от 500), амплитуда результата фильтрации растет! но фиксированная амплитуда основного сигнала (50 Гц)! я сойду с ума !!!!! –