Параметры вашего вопроса делают ответ тривиален:
- 640 Гц составляет ровно половину 1280 Гц, так что это самая высокая частота (Найквиста) в разложении Фурье;
- 0,1 Гц ниже 1/500 мс = 2 Гц, что является частотным разрешением вашего разложения Фурье и, следовательно, самой низкой положительной частотой, которую вы можете контролировать.
Так что в вашем случае «ограниченной полосой» ограничение тривиально, и вы можете просто генерировать нужный шум с:
duration = 500e-3;
rate = 1280;
amplitude = 500;
npoints = duration * rate;
noise = amplitude * randn(1, npoints); % normally distributed white noise
time = (0:npoints-1)/rate;
Однако, в более общем плане, создавая шум в определенной полосе частот с ограничениями на форму спектра (например, плоские) и статистикой значений (например, нормально распределенными) может быть сложно. Есть два простых приближения я могу думать:
- Работа во временной области, первое исполнение ограничений по статистике стоимости рисуя от распределения выбора, а затем фильтрации результирующего сигнала с использованием КИХ-фильтра полосовой например. Для этого приближения обратите внимание, что фильтр также повлияет на распределение значений, и поэтому в целом ваши ограничения на статистику значений будут плохо соблюдены, если вы не тщательно разработаете фильтр.
- Работая назад от домена Фурье, сначала применяя ограничения на амплитудные коэффициенты, принимая случайный шум для фазы и используя обратное преобразование, чтобы вернуться во временную область. Для этого приближения обратите внимание, что распределение фаз будет влиять на временное распределение значений нетривиальными способами в зависимости от ограничений амплитуды и что, если ваша частота дискретизации намного больше, чем частота среза, вам может потребоваться принудительное ограничение гармоник амплитуды также, чтобы избежать артефактов.
Не могли бы вы подтвердить, что ваше сообщение можно резюмировать следующим образом: «Как я могу генерировать шум 500 мс, отбираемый при 1280 Гц, с плоским распределением частот между 0,1 - 640 Гц и нормальными значениями амплитуды?» – Sheljohn
@ Шелджон да, это, безусловно, гораздо более сжатый способ поставить его! Извиняюсь за мою многословие! Единственное дополнение, которое я бы сделал, это то, что значения амплитуды должны нормально распределяться в диапазоне от -500 до +500 (ну, по крайней мере, например, 99,7% амплитуд лежат в пределах диапазона выше). – Hans
Это излишне ограничительно; любой нормально распределенный выход можно линейно масштабировать до любого требуемого диапазона. Я могу отредактировать ваш пост, чтобы сделать его более кратким, но хотите ли вы это сделать? – Sheljohn