2016-10-28 9 views
-4

У меня есть матрица комплексных чисел в MATLAB (в частности, 2D-FFT изображения).Как рандомизировать только амплитуду или только фазу сигнала (комплексные числа)

Я пытаюсь придумать простой способ выполнения (а) и (б). Любая помощь и предложения были бы очень желанными!

(а) рандомизации величины спектра, при этом оставляя фазу нетронутой

(б) рандомизировать фазу, оставляя при этом величине нетронутую

+0

Почему бы не просто выполнить его в частотной области, где у вас есть свободный доступ к ним? Если вы хотите добавить их во временную область, подумайте о свойствах преобразования Fourier. – mpaskov

+0

Почему этот вопрос ниспровергнут? –

+0

«никаких исследовательских усилий» - там много информации, это едва ли неясная тема. В течение примерно двух минут googling я нашел: http://dsp.stackexchange.com/questions/18645/ (рандомизированная фаза) http://matlabgeeks.com/tips-tutorials/how-to-do-a-2-d- fier-transform-in-matlab/(фаза переключения и величина между двумя изображениями - в основном одна и та же концепция) – nkjt

ответ

-1

Преобразования его к полярным координатам в первую очередь. Перемешать. конвертировать назад. Он работает и отвечает требованиям простой, но не быстрой мысли.

Чтобы сделать это быстро:

  1. Для фазовой рандомизации - использование матрицы вращения для поворота вектора на угол. Это сохранит амплитуду.

  2. Для амплитудной рандомизации - умножить оба значения Re и Im на случайное значение. Это сохранит фазу.

 Смежные вопросы

  • Нет связанных вопросов^_^