ОЧ
Ольга Чернышева

Фильтр в матлаб (обрезаем спектр)

Имеется последовательность, стгнал состоит из множества гармоник. Делаю БПФ через s = fft(x,512), домнажаю на комплексное сопряженное conj(s) и делю на 512 (число гармоник) . Скидываю начало кода
t = 0:0.001:0.6;
x = sin(2 * pi * 50 * t) + sin(2 * pi * 120 * t);
y = x + 2 * randn(size(t));
plot(y(1:50)), grid
Y = fft(y, 512);
Pyy = Y.*conj(Y)/512;
f = 1000 * (0:255)/512;
figure(2), plot(f, Pyy(1:256)), grid

Потом с помощью оператора ветвления обрезаю ненужную часть спектра, делю на комплексную сопряженную и делаю ifft(), т. е. обратное преобразование Фурье. Ненужные гармоники действительно обрезались, но что произошло с Амплитудой? И вообще, при моделировании гармонического сигнала методом

for k = 1:1:100

for i = 1:1:100

x(i) = x(i) + sin(2*pi*t(i)*w(k);

end

end

Где w - массив частот, а t - массив временных отсчетов

спектр сигнала получается больше чем диапазон w, так и должно быть? Там какая-то загагулина

Как построить такой фильтр в Матлаб?

НК
Наталья Кожанова

не уверен, что дело в этом, но на на бпф в 512 отсчетов можно реализовать КИХ-фильтр только с 256 отсчетами. если я ниче не путаю конешно, могу и путать. аа, ну и нормировка может там нужна, не знаю, как оно в матлабе

в общем, ты не можешь просто обрезать ненужную часть спектра, этой операции должен соответствовать КИХ-фильтр с реальной, а не комплексной ИХ определенной предельной длины, что налагает определенные ограничения на действия со спектром

Похожие вопросы
как найти точное решение дифференциального уравнения в матлаб?
Помогите написать программу для решения систем уравнений в МатЛаб.
Помогите, пожалуйста, написать программу в МАТЛАБ. У меня ничего не получается ((((((
Очень срочно. Помогите, пожалуйста, написать программу в МАТЛАБ.
Программа в матлабе, помогите с объямнением
ошибка в матлабе. error: ")" Expecte, "(" found что это за ошибка?
как обрезать анимацию?
Как записать вырезанные строки с матрицы в пустую матрицу в матлабе?
Как обрезать изображение
Здравствуйте .Вопрос по Матлабу, как можно отсортировать только одну строку в матрице?