{"id":327288,"date":"2022-01-10T08:50:08","date_gmt":"2022-01-10T08:50:08","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=327288"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=327288","title":{"rendered":"<span>\u041e\u043f\u044b\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0442\u0435\u043e\u0440\u0435\u043c\u044b \u043e \u0441\u0432\u0435\u0440\u0442\u043a\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c scipy.fft<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\" class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><a href=\"https:\/\/mathworld.wolfram.com\/ConvolutionTheorem.html\" rel=\"noopener noreferrer nofollow\">\u0422\u0435\u043e\u0440\u0435\u043c\u0430 \u043e \u0441\u0432\u0451\u0440\u0442\u043a\u0435<\/a> \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442,\u00a0\u0447\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435\u00a0\u043e\u0442\u00a0\u0441\u0432\u0451\u0440\u0442\u043a\u0438\u00a0\u0434\u0432\u0443\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f\u00a0\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c\u00a0\u0438\u0445 \u0424\u0443\u0440\u044c\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432: <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\mathcal{F}\\{f*g\\} = \\mathcal{F}\\{f\\}\\cdot\\mathcal{F}\\{g\\}.\" alt=\"\\mathcal{F}\\{f*g\\} = \\mathcal{F}\\{f\\}\\cdot\\mathcal{F}\\{g\\}.\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/38b\/eac\/6d1\/38beac6d136126f9c328056e0f93eff4.svg\" width=\"205\" height=\"22\"\/><\/p>\n<p>\u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u0441\u0432\u0451\u0440\u0442\u043a\u0443 \u0434\u0432\u0443\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043f\u0443\u0442\u0451\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0424\u0443\u0440\u044c\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"(f*g)(x)\\equiv\\int\\limits_{-\\infty}^{\\infty}f(t)g(x-t)dt=\\mathcal{F}^{-1}\\bigl\\{\\mathcal{F}\\{f\\}\\cdot\\mathcal{F}\\{g\\}\\bigr\\}.\" alt=\"(f*g)(x)\\equiv\\int\\limits_{-\\infty}^{\\infty}f(t)g(x-t)dt=\\mathcal{F}^{-1}\\bigl\\{\\mathcal{F}\\{f\\}\\cdot\\mathcal{F}\\{g\\}\\bigr\\}.\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e76\/c1c\/73b\/e76c1c73b007ba1bbb197bf26318beb6.svg\" width=\"435\" height=\"71\"\/><\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0441\u0432\u0451\u0440\u0442\u043a\u0443 \u043d\u0435 \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043e\u0440\u0435\u043c\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u043c\u0435\u0441\u0442\u043e \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0424\u0443\u0440\u044c\u0435 \u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439. \u0412 \u0445\u043e\u0434\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0435\u0439 \u0443 \u043c\u0435\u043d\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u043d\u0435 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u0435\u0433\u043e \u0437\u0434\u0435\u0441\u044c, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043a\u0430\u043a \u043f\u0430\u043c\u044f\u0442\u043a\u0443 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0438 \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043a\u043e\u043c\u0443-\u0442\u043e \u0435\u0449\u0451. \u041d\u0435 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0443\u044f \u043d\u0430 \u043e\u0431\u0449\u043d\u043e\u0441\u0442\u044c \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0438\u0436\u0435 \u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043e\u0442 \u043e\u0434\u043d\u043e\u0439 \u0438 \u043e\u0442 \u0434\u0432\u0443\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.<\/p>\n<h2>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439<\/h2>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0441\u0432\u0451\u0440\u0442\u043a\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"f(x)=\\frac{1}{\\pi\\sqrt{1-x^2}}\\hspace{5mm}\\text{\u0438}\\hspace{5mm}g(x)=\\frac{1}{\\sqrt{2\\pi}\\sigma}\\exp\\left(-\\frac{x^2}{2\\sigma^2}\\right),\" alt=\"f(x)=\\frac{1}{\\pi\\sqrt{1-x^2}}\\hspace{5mm}\\text{\u0438}\\hspace{5mm}g(x)=\\frac{1}{\\sqrt{2\\pi}\\sigma}\\exp\\left(-\\frac{x^2}{2\\sigma^2}\\right),\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/49e\/13f\/f56\/49e13ff56634164ee9a0bba2ac723ba1.svg\" width=\"421\" height=\"51\"\/><\/p>\n<p>\u043f\u0440\u0438\u0447\u0451\u043c \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<img decoding=\"async\" class=\"formula inline\" source=\"f(x)\" alt=\"f(x)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/12b\/f1e\/89b\/12bf1e89b86c3d8ea6a3b1ca7530b0ab.svg\"\/>, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0435\u0451 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043b\u0435\u0436\u0438\u0442 \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"x \\in [-1,1]\" alt=\"x \\in [-1,1]\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f19\/e25\/8a8\/f19e258a8ac8dc83c71e46343c458173.svg\"\/>. \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u044d\u0442\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 \u0440\u0430\u0432\u0435\u043d 1, \u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435 <a href=\"https:\/\/www.wolframalpha.com\/input\/?i=integrate+exp%28-2*pi*i*u*x%29%2Fsqrt%281-x%5E2%29+dx+from+-1+to+1\" rel=\"noopener noreferrer nofollow\">\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438<\/a>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\mathcal{F}(f(x))= \\int\\limits_{-1}^{+1}\\frac{\\exp(-2\\pi i u x)}{\\pi\\sqrt{1-x^2}}dx = J_0 (2\\pi u),\" alt=\"\\mathcal{F}(f(x))= \\int\\limits_{-1}^{+1}\\frac{\\exp(-2\\pi i u x)}{\\pi\\sqrt{1-x^2}}dx = J_0 (2\\pi u),\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/817\/cdd\/644\/817cdd64464ae23ae9b4a2f376130790.svg\" width=\"348\" height=\"75\"\/><\/p>\n<p>\u0433\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"J_0\" alt=\"J_0\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/658\/19d\/61a\/65819d61af8aa1eac5145e973cb803cc.svg\"\/>&#8212; <a href=\"https:\/\/www.wolframalpha.com\/input\/?i=%CF%80+BesselJ%280%2C+2+%CF%80+x%29\" rel=\"noopener noreferrer nofollow\">\u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0411\u0435\u0441\u0441\u0435\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u043e\u0434\u0430<\/a>. \u0424\u0443\u0440\u044c\u0435 \u043e\u0431\u0440\u0430\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0413\u0430\u0443\u0441\u0441\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\mathcal{F}(g(x)) = \\exp(-2\\,\\pi^2\\sigma^2u^2).\" alt=\"\\mathcal{F}(g(x)) = \\exp(-2\\,\\pi^2\\sigma^2u^2).\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/427\/c88\/e82\/427c88e82dc16b34080222935b4a7953.svg\" width=\"226\" height=\"24\"\/><\/p>\n<p>\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0424\u0443\u0440\u044c\u0435 (\u0414\u041f\u0424) \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0438 \u0435\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0430\u043c\u0438. \u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435 (\u0411\u041f\u0424) \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0441\u043f\u043e\u0441\u043e\u0431\u0443 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0414\u041f\u0424 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0438 \u0432 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445.\u00a0\u0421\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u044f \u043d\u0430\u0438\u0432\u044b\u0441\u0448\u0430\u044f, \u043a\u043e\u0433\u0434\u0430 \u0447\u0438\u0441\u043b\u043e \u0443\u0437\u043b\u043e\u0432<img decoding=\"async\" class=\"formula inline\" source=\"N_x\" alt=\"N_x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3ba\/01e\/b34\/3ba01eb34e632723b215b51e4a682777.svg\"\/>, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0438 \u0447\u0438\u0441\u043b\u043e \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a<img decoding=\"async\" class=\"formula inline\" source=\"N_u\" alt=\"N_u\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5be\/d9a\/14f\/5bed9a14f96de4fdc3158b27f40d0f56.svg\"\/>, \u00a0\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f  \u0441\u0442\u0435\u043f\u0435\u043d\u044c\u044e \u0434\u0432\u043e\u0439\u043a\u0438.  \u0412 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 <a href=\"https:\/\/scipy.org\/\" rel=\"noopener noreferrer nofollow\">SciPy<\/a> \u0441\u00a0\u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c\u00a0\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0411\u041f\u0424 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u043c\u043e\u0434\u0443\u043b\u044c <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/tutorial\/fft.html\" rel=\"noopener noreferrer nofollow\">scipy.fft<\/a>. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0438\u0441\u043a\u043e\u043c\u0443\u044e \u0441\u0432\u0451\u0440\u0442\u043a\u0443 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0411\u0424\u041f, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0443\u044e \u043d\u0430\u0441 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0437\u043b\u043e\u0432 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0432\u0451\u0440\u0442\u043a\u0438. <\/p>\n<p>\u0412\u044b\u0431\u0435\u0440\u0435\u043c \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f <img decoding=\"async\" class=\"formula inline\" source=\"x\\in[-R+D_x\/2,R-D_x\/2]\" alt=\"x\\in[-R+D_x\/2,R-D_x\/2]\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/24a\/4d4\/022\/24a4d4022f25313c6f9b394a089ce64b.svg\"\/>, \u0433\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"D_x\" alt=\"D_x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e05\/922\/d69\/e05922d6984d7f90e179daa2f2ee2aa4.svg\"\/>\u0438<img decoding=\"async\" class=\"formula inline\" source=\"R\" alt=\"R\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d6e\/046\/68d\/d6e04668d0d0a6a0263e9dd8820c2f67.svg\"\/>&#8212; \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u044b\u043c\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0441\u0430\u043d\u0442\u0438\u043c\u0435\u0442\u0440\u044b. \u0420\u0430\u0437\u043e\u0431\u044a\u0451\u043c \u044d\u0442\u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043d\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"N_x\" alt=\"N_x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/113\/0aa\/cb0\/1130aacb0befe4aa88e0f5ce454b4131.svg\"\/>\u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432, \u0434\u043b\u0438\u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0430\u0432\u043d\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"D_x = 2R\/N_x\" alt=\"D_x = 2R\/N_x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/00e\/36e\/212\/00e36e2127e44b9c584338b8ce48d0ec.svg\"\/>.  \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b <img decoding=\"async\" class=\"formula inline\" source=\"D_x\\ll R\" alt=\"D_x\\ll R\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d51\/986\/0f2\/d519860f2735f4730bc4c5a29568a381.svg\"\/>\u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0448\u0430\u0433\u043e\u043c \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0448\u043a\u0430\u043b\u044b <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/72a\/255\/58f\/72a25558f802451876c75d6a3452b71b.svg\"\/>. \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0445 \u0441\u0430\u043d\u0442\u0438\u043c\u0435\u0442\u0440\u0430\u0445. <\/p>\n<p>\u0412 \u0448\u043a\u0430\u043b\u0435 \u0447\u0430\u0441\u0442\u043e\u0442 \u043d\u0430\u0448\u0435\u043c\u0443 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0443 \u0448\u043a\u0430\u043b\u044b<img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/14b\/48c\/a34\/14b48ca34f43fbc2826956516b3d786a.svg\"\/>\u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u0438\u0437 <img decoding=\"async\" class=\"formula inline\" source=\"N_x\" alt=\"N_x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/611\/ae3\/a17\/611ae3a17ab5207be2f3c399eb287484.svg\"\/> \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0424\u0443\u0440\u044c\u0435. \u0415\u0441\u043b\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"N_x\" alt=\"N_x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f5f\/28f\/f5d\/f5f28ff5d920c95531cdf92827425866.svg\"\/>&#8212; \u0447\u0451\u0442\u043d\u043e\u0435, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.fftfreq.html#scipy.fft.fftfreq\" rel=\"noopener noreferrer nofollow\">scipy.fft.fftfreq<\/a>, \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0430\u044f:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"u=\\Bigl[0,\\;\\frac{1}{2R},\\;\\dots,\\;\\frac{(N_x-1)\/2}{2R},\\; -\\frac{N_x\/2}{2R},\\;\\dots,\\; -\\frac{1}{2R} \\Bigr].\" alt=\"u=\\Bigl[0,\\;\\frac{1}{2R},\\;\\dots,\\;\\frac{(N_x-1)\/2}{2R},\\; -\\frac{N_x\/2}{2R},\\;\\dots,\\; -\\frac{1}{2R} \\Bigr].\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/adc\/d64\/943\/adcd6494319e33b1f2df5c19bf0ef2bf.svg\" width=\"437\" height=\"45\"\/><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0438\u0449\u0435\u043c, \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430 (\u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043c\u043d\u0438\u043c\u043e\u0439 \u0447\u0430\u0441\u0442\u0438), \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043e\u043f\u0440\u044f\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430\u043c\u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442, \u0437\u0430 \u0441\u0447\u0451\u0442 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0443\u043a\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u043e\u0439 (\u0431\u0435\u0437 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442) \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.rfftfreq.html#scipy.fft.rfftfreq\" rel=\"noopener noreferrer nofollow\">scipy.fft.rfftfreq<\/a>.  \u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0424\u0443\u0440\u044c\u0435 \u0434\u043b\u044f \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.rfft.html#scipy.fft.rfft\" rel=\"noopener noreferrer nofollow\">scipy.fft.rfft<\/a> \u0438 <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.irfft.html#scipy.fft.irfft\" rel=\"noopener noreferrer nofollow\">scipy.fft.irfft<\/a> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0424\u0443\u043d\u043a\u0446\u0438\u044f <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.fftshift.html#scipy.fft.fftshift\" rel=\"noopener noreferrer nofollow\">scipy.fft.fftshift<\/a> \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u0441 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430, \u0430 <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.ifftshift.html#scipy.fft.ifftshift\" rel=\"noopener noreferrer nofollow\">scipy.fft.ifftshift<\/a> \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d \u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u0451\u0440\u0442\u043a\u0438:<\/p>\n<pre><code class=\"python\">import numpy as np from scipy.special import j0 as BesselJ0  import scipy.fft as FFT from matplotlib import pyplot as plt  \u03c0    = np.pi \u03c3    = 0.01 R    = 1.5    # \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u0451\u0440\u0442\u043a\u0430 Nx   = 4096   # \u0447\u0438\u0441\u043b\u043e \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0439 \u043f\u043e \u043e\u0441\u0438 x Dx   = 2*R\/Nx # \u0448\u0430\u0433 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 x    = np.linspace(0.5*Dx-R, R-0.5*Dx, num = Nx) u    = FFT.rfftfreq(Nx\/\/16, d = 16*Dx) # \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0424\u041d\u0427 J0   = BesselJ0(2*\u03c0*u)*np.exp(-2*(\u03c0*\u03c3*u)**2) y    = FFT.ifftshift(FFT.irfft(J0, n=Nx, norm='forward'))  plt.subplot(211) plt.plot(u, J0, 'r-', label='\u0441\u043f\u0435\u043a\u0442\u0440 \u0447\u0430\u0441\u0442\u043e\u0442') plt.xlabel('u, [1\/\u0441\u043c]') plt.grid(True); plt.legend() plt.subplot(212) plt.plot(x, y, 'r-', label='\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0432\u0451\u0440\u0442\u043a\u0438') plt.xlabel('x, [\u0441\u043c]') plt.grid(True); plt.legend() plt.show()<\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435. \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0447\u0430\u0441\u0442\u043e\u0442, \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0440\u043e\u0441\u0442\u043e\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u044b (\u0438\u0437-\u0437\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"\\mathcal{F}(g(x))\" alt=\"\\mathcal{F}(g(x))\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7a7\/9b1\/ff8\/7a79b1ff8aa28ff24432bd8babe92643.svg\"\/>, \u0441\u043c. \u0432\u044b\u0448\u0435) , \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043e \u0432 16 \u0440\u0430\u0437 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e &#171;\u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0433\u043e \u0424\u041d\u0427&#187;.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"578\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f1a\/b88\/2b4\/f1ab882b48f1002ebb5676798bfbe1ee.png\" data-width=\"1016\"\/><figcaption><\/figcaption><\/figure>\n<h2>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442 \u0434\u0432\u0443\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445<\/h2>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u043e\u043c\u0443 \u0441\u043b\u0443\u0447\u0430\u044e. \u041f\u0443\u0441\u0442\u044c<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"f(x,y)=\\frac{1}{\\pi\\sqrt{1-x^2-y^2}}\\hspace{5mm}\\text{\u0438}\\hspace{5mm}g(x,y)=\\frac{1}{2\\pi\\sigma_x\\sigma_y}\\exp\\left(-\\frac{x^2}{2\\sigma_x^2} - \\frac{y^2}{2\\sigma_y^2}\\right),\" alt=\"f(x,y)=\\frac{1}{\\pi\\sqrt{1-x^2-y^2}}\\hspace{5mm}\\text{\u0438}\\hspace{5mm}g(x,y)=\\frac{1}{2\\pi\\sigma_x\\sigma_y}\\exp\\left(-\\frac{x^2}{2\\sigma_x^2} - \\frac{y^2}{2\\sigma_y^2}\\right),\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6e1\/375\/5e8\/6e13755e81d585784c40cdf3d447a891.svg\" width=\"575\" height=\"55\"\/><\/p>\n<p>\u0433\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"\\sigma_x\" alt=\"\\sigma_x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e75\/a6b\/8d7\/e75a6b8d7abad545adca7bfc95b337a1.svg\"\/>\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"\\sigma_y\" alt=\"\\sigma_y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1a7\/598\/9d3\/1a75989d38879d8b48bf747284dfbb36.svg\"\/>\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b. \u041f\u043e\u043b\u044c\u0437\u0443\u044f\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u044b\u0448\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c\u0438 \u0438 \u0440\u0435\u0446\u0435\u043f\u0442\u0430\u043c\u0438, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u0451\u0440\u0442\u043a\u0438 \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<pre><code class=\"python\">import numpy as np from scipy.special import j0 as BesselJ0  import scipy.fft as FFT import matplotlib.pyplot as plt  \u03c0    = np.pi \u03c3x   = 0.1  \u03c3y   = 0.05 R    = 1.5 N    = 2048 D    = 2*R\/N s    = np.linspace(0.5*D-R, R-0.5*D, num = N) f    = FFT.fftshift(FFT.fftfreq(N\/\/4, d = 4*D)) x,y  = np.meshgrid(s,s) u,v  = np.meshgrid(f,f) J    = BesselJ0(2*\u03c0*(u**2 + v**2)**0.5)*np.exp(-2*\u03c0*\u03c0*((\u03c3x*u)**2 + (\u03c3y*v)**2)) z    = np.abs(FFT.ifftshift(FFT.ifft2(J, s=[N,N], workers=-1, norm='forward')))  plt.figure(figsize=(16, 9)) levels = np.linspace(J.min(), J.max(), 16) plt.subplot(121) plt.contourf(u, v, J, levels) plt.colorbar() plt.xlim(-5,5); plt.xlabel('u, [1\/\u0441\u043c]') plt.ylim(-5,5); plt.ylabel('v, [1\/\u0441\u043c]') plt.subplot(122) levels = np.linspace(z.min(), z.max(), 16) plt.contourf(x, y, z, levels) plt.colorbar() plt.xlabel('x, [\u0441\u043c]') plt.ylabel('y, [\u0441\u043c]') plt.show()<\/code><\/pre>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u0434\u0435, \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.fftfreq.html#scipy.fft.fftfreq\" rel=\"noopener noreferrer nofollow\">scipy.fft.fftfreq<\/a> \u0432\u043c\u0435\u0441\u0442\u043e scipy.fft.rfftfreq \u0438 <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.ifft2.html#scipy.fft.ifft2\" rel=\"noopener noreferrer nofollow\">scipy.fft.ifft2<\/a> \u0432\u043c\u0435\u0441\u0442\u043e scipy.fft.irfft. \u041e\u043f\u0446\u0438\u044f <code>workers=-1<\/code> \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 ifft2 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"762\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7f7\/e6d\/0b0\/7f7e6d0b0e3e564035c38735c222d324.png\" data-width=\"1748\"\/><figcaption><\/figcaption><\/figure>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412\u043e\u0442 \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u0438 \u0432\u0441\u0451 \u043e \u0447\u0451\u043c \u044f \u0445\u043e\u0442\u0435\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c. \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u043a\u0440\u0438\u0442\u0438\u043a\u0435, \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c. \u0412\u0441\u0435\u0445 \u0441 \u043d\u0430\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u043c 2022!<\/p>\n<\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/598289\/\"> https:\/\/habr.com\/ru\/post\/598289\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\" class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><a href=\"https:\/\/mathworld.wolfram.com\/ConvolutionTheorem.html\" rel=\"noopener noreferrer nofollow\">\u0422\u0435\u043e\u0440\u0435\u043c\u0430 \u043e \u0441\u0432\u0451\u0440\u0442\u043a\u0435<\/a> \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442,\u00a0\u0447\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435\u00a0\u043e\u0442\u00a0\u0441\u0432\u0451\u0440\u0442\u043a\u0438\u00a0\u0434\u0432\u0443\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f\u00a0\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c\u00a0\u0438\u0445 \u0424\u0443\u0440\u044c\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432: <\/p>\n<p>\u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u0441\u0432\u0451\u0440\u0442\u043a\u0443 \u0434\u0432\u0443\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043f\u0443\u0442\u0451\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0424\u0443\u0440\u044c\u0435:<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0441\u0432\u0451\u0440\u0442\u043a\u0443 \u043d\u0435 \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043e\u0440\u0435\u043c\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u043c\u0435\u0441\u0442\u043e \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0424\u0443\u0440\u044c\u0435 \u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439. \u0412 \u0445\u043e\u0434\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0435\u0439 \u0443 \u043c\u0435\u043d\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u043d\u0435 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u0435\u0433\u043e \u0437\u0434\u0435\u0441\u044c, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043a\u0430\u043a \u043f\u0430\u043c\u044f\u0442\u043a\u0443 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0438 \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043a\u043e\u043c\u0443-\u0442\u043e \u0435\u0449\u0451. \u041d\u0435 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0443\u044f \u043d\u0430 \u043e\u0431\u0449\u043d\u043e\u0441\u0442\u044c \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0438\u0436\u0435 \u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043e\u0442 \u043e\u0434\u043d\u043e\u0439 \u0438 \u043e\u0442 \u0434\u0432\u0443\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.<\/p>\n<h2>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439<\/h2>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0441\u0432\u0451\u0440\u0442\u043a\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/p>\n<p>\u043f\u0440\u0438\u0447\u0451\u043c \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0435\u0451 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043b\u0435\u0436\u0438\u0442 \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 . \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u044d\u0442\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 \u0440\u0430\u0432\u0435\u043d 1, \u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435 <a href=\"https:\/\/www.wolframalpha.com\/input\/?i=integrate+exp%28-2*pi*i*u*x%29%2Fsqrt%281-x%5E2%29+dx+from+-1+to+1\" rel=\"noopener noreferrer nofollow\">\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438<\/a>:<\/p>\n<p>\u0433\u0434\u0435 &#8212; <a href=\"https:\/\/www.wolframalpha.com\/input\/?i=%CF%80+BesselJ%280%2C+2+%CF%80+x%29\" rel=\"noopener noreferrer nofollow\">\u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0411\u0435\u0441\u0441\u0435\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u043e\u0434\u0430<\/a>. \u0424\u0443\u0440\u044c\u0435 \u043e\u0431\u0440\u0430\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0413\u0430\u0443\u0441\u0441\u0430:<\/p>\n<p>\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0424\u0443\u0440\u044c\u0435 (\u0414\u041f\u0424) \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0438 \u0435\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0430\u043c\u0438. \u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435 (\u0411\u041f\u0424) \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0441\u043f\u043e\u0441\u043e\u0431\u0443 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0414\u041f\u0424 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0438 \u0432 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445.\u00a0\u0421\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u044f \u043d\u0430\u0438\u0432\u044b\u0441\u0448\u0430\u044f, \u043a\u043e\u0433\u0434\u0430 \u0447\u0438\u0441\u043b\u043e \u0443\u0437\u043b\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0438 \u0447\u0438\u0441\u043b\u043e \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a, \u00a0\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f  \u0441\u0442\u0435\u043f\u0435\u043d\u044c\u044e \u0434\u0432\u043e\u0439\u043a\u0438.  \u0412 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 <a href=\"https:\/\/scipy.org\/\" rel=\"noopener noreferrer nofollow\">SciPy<\/a> \u0441\u00a0\u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c\u00a0\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0411\u041f\u0424 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u043c\u043e\u0434\u0443\u043b\u044c <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/tutorial\/fft.html\" rel=\"noopener noreferrer nofollow\">scipy.fft<\/a>. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0438\u0441\u043a\u043e\u043c\u0443\u044e \u0441\u0432\u0451\u0440\u0442\u043a\u0443 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0411\u0424\u041f, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0443\u044e \u043d\u0430\u0441 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0437\u043b\u043e\u0432 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0432\u0451\u0440\u0442\u043a\u0438. <\/p>\n<p>\u0412\u044b\u0431\u0435\u0440\u0435\u043c \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f , \u0433\u0434\u0435 \u0438- \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u044b\u043c\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0441\u0430\u043d\u0442\u0438\u043c\u0435\u0442\u0440\u044b. \u0420\u0430\u0437\u043e\u0431\u044a\u0451\u043c \u044d\u0442\u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043d\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432, \u0434\u043b\u0438\u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0430\u0432\u043d\u0430 .  \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0448\u0430\u0433\u043e\u043c \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0448\u043a\u0430\u043b\u044b . \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0445 \u0441\u0430\u043d\u0442\u0438\u043c\u0435\u0442\u0440\u0430\u0445. <\/p>\n<p>\u0412 \u0448\u043a\u0430\u043b\u0435 \u0447\u0430\u0441\u0442\u043e\u0442 \u043d\u0430\u0448\u0435\u043c\u0443 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0443 \u0448\u043a\u0430\u043b\u044b\u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u0438\u0437  \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0424\u0443\u0440\u044c\u0435. \u0415\u0441\u043b\u0438 &#8212; \u0447\u0451\u0442\u043d\u043e\u0435, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.fftfreq.html#scipy.fft.fftfreq\" rel=\"noopener noreferrer nofollow\">scipy.fft.fftfreq<\/a>, \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0430\u044f:<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0438\u0449\u0435\u043c, \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430 (\u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043c\u043d\u0438\u043c\u043e\u0439 \u0447\u0430\u0441\u0442\u0438), \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043e\u043f\u0440\u044f\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430\u043c\u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442, \u0437\u0430 \u0441\u0447\u0451\u0442 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0443\u043a\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u043e\u0439 (\u0431\u0435\u0437 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442) \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.rfftfreq.html#scipy.fft.rfftfreq\" rel=\"noopener noreferrer nofollow\">scipy.fft.rfftfreq<\/a>.  \u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0424\u0443\u0440\u044c\u0435 \u0434\u043b\u044f \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.rfft.html#scipy.fft.rfft\" rel=\"noopener noreferrer nofollow\">scipy.fft.rfft<\/a> \u0438 <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.irfft.html#scipy.fft.irfft\" rel=\"noopener noreferrer nofollow\">scipy.fft.irfft<\/a> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0424\u0443\u043d\u043a\u0446\u0438\u044f <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.fftshift.html#scipy.fft.fftshift\" rel=\"noopener noreferrer nofollow\">scipy.fft.fftshift<\/a> \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u0441 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430, \u0430 <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.ifftshift.html#scipy.fft.ifftshift\" rel=\"noopener noreferrer nofollow\">scipy.fft.ifftshift<\/a> \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d \u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u0451\u0440\u0442\u043a\u0438:<\/p>\n<pre><code class=\"python\">import numpy as np from scipy.special import j0 as BesselJ0  import scipy.fft as FFT from matplotlib import pyplot as plt  \u03c0    = np.pi \u03c3    = 0.01 R    = 1.5    # \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u0451\u0440\u0442\u043a\u0430 Nx   = 4096   # \u0447\u0438\u0441\u043b\u043e \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0439 \u043f\u043e \u043e\u0441\u0438 x Dx   = 2*R\/Nx # \u0448\u0430\u0433 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 x    = np.linspace(0.5*Dx-R, R-0.5*Dx, num = Nx) u    = FFT.rfftfreq(Nx\/\/16, d = 16*Dx) # \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0424\u041d\u0427 J0   = BesselJ0(2*\u03c0*u)*np.exp(-2*(\u03c0*\u03c3*u)**2) y    = FFT.ifftshift(FFT.irfft(J0, n=Nx, norm='forward'))  plt.subplot(211) plt.plot(u, J0, 'r-', label='\u0441\u043f\u0435\u043a\u0442\u0440 \u0447\u0430\u0441\u0442\u043e\u0442') plt.xlabel('u, [1\/\u0441\u043c]') plt.grid(True); plt.legend() plt.subplot(212) plt.plot(x, y, 'r-', label='\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0432\u0451\u0440\u0442\u043a\u0438') plt.xlabel('x, [\u0441\u043c]') plt.grid(True); plt.legend() plt.show()<\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435. \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0447\u0430\u0441\u0442\u043e\u0442, \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0440\u043e\u0441\u0442\u043e\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u044b (\u0438\u0437-\u0437\u0430 , \u0441\u043c. \u0432\u044b\u0448\u0435) , \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043e \u0432 16 \u0440\u0430\u0437 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e &#171;\u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0433\u043e \u0424\u041d\u0427&#187;.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<h2>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442 \u0434\u0432\u0443\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445<\/h2>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u043e\u043c\u0443 \u0441\u043b\u0443\u0447\u0430\u044e. \u041f\u0443\u0441\u0442\u044c<\/p>\n<p>\u0433\u0434\u0435 \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b. \u041f\u043e\u043b\u044c\u0437\u0443\u044f\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u044b\u0448\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c\u0438 \u0438 \u0440\u0435\u0446\u0435\u043f\u0442\u0430\u043c\u0438, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u0451\u0440\u0442\u043a\u0438 \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<pre><code class=\"python\">import numpy as np from scipy.special import j0 as BesselJ0  import scipy.fft as FFT import matplotlib.pyplot as plt  \u03c0    = np.pi \u03c3x   = 0.1  \u03c3y   = 0.05 R    = 1.5 N    = 2048 D    = 2*R\/N s    = np.linspace(0.5*D-R, R-0.5*D, num = N) f    = FFT.fftshift(FFT.fftfreq(N\/\/4, d = 4*D)) x,y  = np.meshgrid(s,s) u,v  = np.meshgrid(f,f) J    = BesselJ0(2*\u03c0*(u**2 + v**2)**0.5)*np.exp(-2*\u03c0*\u03c0*((\u03c3x*u)**2 + (\u03c3y*v)**2)) z    = np.abs(FFT.ifftshift(FFT.ifft2(J, s=[N,N], workers=-1, norm='forward')))  plt.figure(figsize=(16, 9)) levels = np.linspace(J.min(), J.max(), 16) plt.subplot(121) plt.contourf(u, v, J, levels) plt.colorbar() plt.xlim(-5,5); plt.xlabel('u, [1\/\u0441\u043c]') plt.ylim(-5,5); plt.ylabel('v, [1\/\u0441\u043c]') plt.subplot(122) levels = np.linspace(z.min(), z.max(), 16) plt.contourf(x, y, z, levels) plt.colorbar() plt.xlabel('x, [\u0441\u043c]') plt.ylabel('y, [\u0441\u043c]') plt.show()<\/code><\/pre>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u0434\u0435, \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.fftfreq.html#scipy.fft.fftfreq\" rel=\"noopener noreferrer nofollow\">scipy.fft.fftfreq<\/a> \u0432\u043c\u0435\u0441\u0442\u043e scipy.fft.rfftfreq \u0438 <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.fft.ifft2.html#scipy.fft.ifft2\" rel=\"noopener noreferrer nofollow\">scipy.fft.ifft2<\/a> \u0432\u043c\u0435\u0441\u0442\u043e scipy.fft.irfft. \u041e\u043f\u0446\u0438\u044f <code>workers=-1<\/code> \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 ifft2 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412\u043e\u0442 \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u0438 \u0432\u0441\u0451 \u043e \u0447\u0451\u043c \u044f \u0445\u043e\u0442\u0435\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c. \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u043a\u0440\u0438\u0442\u0438\u043a\u0435, \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c. \u0412\u0441\u0435\u0445 \u0441 \u043d\u0430\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u043c 2022!<\/p>\n<\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/598289\/\"> https:\/\/habr.com\/ru\/post\/598289\/<\/a><br \/><\/br><\/br><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-327288","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/327288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=327288"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/327288\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=327288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=327288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=327288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}