Я пытаюсь сгенерировать синтетические данные для сигнала во временной области. Допустим, мой сигнал - прямоугольная волна, и у меня есть какой-то случайный шум. Я буду моделировать шум как гауссовский. Если я сгенерирую данные как вектор длины N, а затем добавлю к нему случайный шум, выбранный из нормального распределения среднего значения 0 и ширины 1, я получу грубое моделирование ситуации, которая меня волнует. Однако это добавляет шум с характерной шкалой времени, установленной частотой дискретизации. Я не хочу этого, поскольку на самом деле шум имеет гораздо более длительную шкалу времени, связанную с ним. Как эффективный способ генерировать шум с определенной шириной полосы?
Я пытался генерировать шум в каждой точке выборки, а затем использовать БПФ, чтобы вырезать частоты выше определенного значения. Однако это сильно ослабляет сигнал.
Моя идея была в основном:
noise = normrnd(0,1);
f = fft(noise);
f(1000:end) = 0;
noise = ifft(f);
Этот вид работает, но сильно ослабляет сигнал.