fftshift
перегруппировывает результат БПФ, сдвигая нулевую частоту в центр спектра
Синтаксис
y = fftshift(x) y = fftshift(x, along)
Аргументы
- x, y
векторы, матрицы или гиперматрицы одинакового размера.
- along
1 | "r" | 2 | "c" | 0<along<=ndims(x): размерность, вдоль которой половинки меняются местами.
Описание
Если x
является результатом вычисления БПФ, то
y=fftshift(x)
или y=fftshift(x,"all")
двигает нулевую частоту в центр спектра, что иногда является более удобной формой.
x = [x1 x2 ] даёт y = [x2 x1 ] // вектор [x11 x12] [x22 x21] x = | | даёт y = | | // матрица [x21 x22] [x12 x11] и т.д.
y=fftshift(x,n)
меняет местами только вдоль n
-ой размерности.
Примеры
x = [1 2 3 4 5 6 7] fftshift(x)
--> x = [1 2 3 4 5 6 7] x = 1. 2. 3. 4. 5. 6. 7. --> fftshift(x) ans = 5. 6. 7. 1. 2. 3. 4.
x = matrix(1:36,6,6) fftshift(x) fftshift(x, "r") fftshift(x, "c")
--> x = matrix(1:36,6,6) x = 1. 7. 13. 19. 25. 31. 2. 8. 14. 20. 26. 32. 3. 9. 15. 21. 27. 33. 4. 10. 16. 22. 28. 34. 5. 11. 17. 23. 29. 35. 6. 12. 18. 24. 30. 36. --> fftshift(x) // Углы переходят в центр ans = 22. 28. 34. 4. 10. 16. 23. 29. 35. 5. 11. 17. 24. 30. 36. 6. 12. 18. 19. 25. 31. 1. 7. 13. 20. 26. 32. 2. 8. 14. 21. 27. 33. 3. 9. 15. --> fftshift(x, "r") // Внешние строки становятся строками в середине ans = 4. 10. 16. 22. 28. 34. 5. 11. 17. 23. 29. 35. 6. 12. 18. 24. 30. 36. 1. 7. 13. 19. 25. 31. 2. 8. 14. 20. 26. 32. 3. 9. 15. 21. 27. 33. --> fftshift(x, "c") // Внешние столбцы становятся столбцами в середине ans = 19. 25. 31. 1. 7. 13. 20. 26. 32. 2. 8. 14. 21. 27. 33. 3. 9. 15. 22. 28. 34. 4. 10. 16. 23. 29. 35. 5. 11. 17. 24. 30. 36. 6. 12. 18.
Смотрите также
Report an issue | ||
<< fft2 | transforms | hilb >> |