matlab如何用fft 如何使用matlab的fft

\u5982\u4f55\u5e94\u7528matlab\u8fdb\u884cfft\u5206\u6790

\u3000\u3000FFT\u662f\u79bb\u6563\u5085\u7acb\u53f6\u53d8\u6362\u7684\u5feb\u901f\u7b97\u6cd5\uff0c\u53ef\u4ee5\u5c06\u4e00\u4e2a\u4fe1\u53f7\u53d8\u6362
\u5230\u9891\u57df\u3002\u6709\u4e9b\u4fe1\u53f7\u5728\u65f6\u57df\u4e0a\u662f\u5f88\u96be\u770b\u51fa\u4ec0\u4e48\u7279\u5f81\u7684\uff0c\u4f46\u662f\u5982
\u679c\u53d8\u6362\u5230\u9891\u57df\u4e4b\u540e\uff0c\u5c31\u5f88\u5bb9\u6613\u770b\u51fa\u7279\u5f81\u4e86\u3002\u8fd9\u5c31\u662f\u5f88\u591a\u4fe1\u53f7
\u5206\u6790\u91c7\u7528FFT\u53d8\u6362\u7684\u539f\u56e0\u3002\u53e6\u5916\uff0cFFT\u53ef\u4ee5\u5c06\u4e00\u4e2a\u4fe1\u53f7\u7684\u9891\u8c31
\u63d0\u53d6\u51fa\u6765\uff0c\u8fd9\u5728\u9891\u8c31\u5206\u6790\u65b9\u9762\u4e5f\u662f\u7ecf\u5e38\u7528\u7684\u3002
\u867d\u7136\u5f88\u591a\u4eba\u90fd\u77e5\u9053FFT\u662f\u4ec0\u4e48\uff0c\u53ef\u4ee5\u7528\u6765\u505a\u4ec0\u4e48\uff0c\u600e\u4e48\u53bb
\u505a\uff0c\u4f46\u662f\u5374\u4e0d\u77e5\u9053FFT\u4e4b\u540e\u7684\u7ed3\u679c\u662f\u4ec0\u610f\u601d\u3001\u5982\u4f55\u51b3\u5b9a\u8981\u4f7f\u7528
\u591a\u5c11\u70b9\u6765\u505aFFT\u3002

\u73b0\u5728\u5708\u5708\u5c31\u6839\u636e\u5b9e\u9645\u7ecf\u9a8c\u6765\u8bf4\u8bf4FFT\u7ed3\u679c\u7684\u5177\u4f53\u7269\u7406\u610f\u4e49\u3002
\u4e00\u4e2a\u6a21\u62df\u4fe1\u53f7\uff0c\u7ecf\u8fc7ADC\u91c7\u6837\u4e4b\u540e\uff0c\u5c31\u53d8\u6210\u4e86\u6570\u5b57\u4fe1\u53f7\u3002\u91c7\u6837
\u5b9a\u7406\u544a\u8bc9\u6211\u4eec\uff0c\u91c7\u6837\u9891\u7387\u8981\u5927\u4e8e\u4fe1\u53f7\u9891\u7387\u7684\u4e24\u500d\uff0c\u8fd9\u4e9b\u6211\u5c31
\u4e0d\u5728\u6b64\u7f57\u55e6\u4e86\u3002

\u91c7\u6837\u5f97\u5230\u7684\u6570\u5b57\u4fe1\u53f7\uff0c\u5c31\u53ef\u4ee5\u505aFFT\u53d8\u6362\u4e86\u3002N\u4e2a\u91c7\u6837\u70b9\uff0c
\u7ecf\u8fc7FFT\u4e4b\u540e\uff0c\u5c31\u53ef\u4ee5\u5f97\u5230N\u4e2a\u70b9\u7684FFT\u7ed3\u679c\u3002\u4e3a\u4e86\u65b9\u4fbf\u8fdb\u884cFFT
\u8fd0\u7b97\uff0c\u901a\u5e38N\u53d62\u7684\u6574\u6570\u6b21\u65b9\u3002

\u5047\u8bbe\u91c7\u6837\u9891\u7387\u4e3aFs\uff0c\u4fe1\u53f7\u9891\u7387F\uff0c\u91c7\u6837\u70b9\u6570\u4e3aN\u3002\u90a3\u4e48FFT
\u4e4b\u540e\u7ed3\u679c\u5c31\u662f\u4e00\u4e2a\u4e3aN\u70b9\u7684\u590d\u6570\u3002\u6bcf\u4e00\u4e2a\u70b9\u5c31\u5bf9\u5e94\u7740\u4e00\u4e2a\u9891\u7387
\u70b9\u3002\u8fd9\u4e2a\u70b9\u7684\u6a21\u503c\uff0c\u5c31\u662f\u8be5\u9891\u7387\u503c\u4e0b\u7684\u5e45\u5ea6\u7279\u6027\u3002\u5177\u4f53\u8ddf\u539f\u59cb
\u4fe1\u53f7\u7684\u5e45\u5ea6\u6709\u4ec0\u4e48\u5173\u7cfb\u5462\uff1f\u5047\u8bbe\u539f\u59cb\u4fe1\u53f7\u7684\u5cf0\u503c\u4e3aA\uff0c\u90a3\u4e48FFT
\u7684\u7ed3\u679c\u7684\u6bcf\u4e2a\u70b9\uff08\u9664\u4e86\u7b2c\u4e00\u4e2a\u70b9\u76f4\u6d41\u5206\u91cf\u4e4b\u5916\uff09\u7684\u6a21\u503c\u5c31\u662fA
\u7684N/2\u500d\u3002\u800c\u7b2c\u4e00\u4e2a\u70b9\u5c31\u662f\u76f4\u6d41\u5206\u91cf\uff0c\u5b83\u7684\u6a21\u503c\u5c31\u662f\u76f4\u6d41\u5206\u91cf
\u7684N\u500d\u3002\u800c\u6bcf\u4e2a\u70b9\u7684\u76f8\u4f4d\u5462\uff0c\u5c31\u662f\u5728\u8be5\u9891\u7387\u4e0b\u7684\u4fe1\u53f7\u7684\u76f8\u4f4d\u3002
\u7b2c\u4e00\u4e2a\u70b9\u8868\u793a\u76f4\u6d41\u5206\u91cf\uff08\u53730Hz\uff09\uff0c\u800c\u6700\u540e\u4e00\u4e2a\u70b9N\u7684\u518d\u4e0b\u4e00\u4e2a
\u70b9\uff08\u5b9e\u9645\u4e0a\u8fd9\u4e2a\u70b9\u662f\u4e0d\u5b58\u5728\u7684\uff0c\u8fd9\u91cc\u662f\u5047\u8bbe\u7684\u7b2cN+1\u4e2a\u70b9\uff0c\u4e5f
\u53ef\u4ee5\u770b\u505a\u662f\u5c06\u7b2c\u4e00\u4e2a\u70b9\u5206\u505a\u4e24\u534a\u5206\uff0c\u53e6\u4e00\u534a\u79fb\u5230\u6700\u540e\uff09\u5219\u8868\u793a
\u91c7\u6837\u9891\u7387Fs\uff0c\u8fd9\u4e2d\u95f4\u88abN-1\u4e2a\u70b9\u5e73\u5747\u5206\u6210N\u7b49\u4efd\uff0c\u6bcf\u4e2a\u70b9\u7684\u9891\u7387
\u4f9d\u6b21\u589e\u52a0\u3002\u4f8b\u5982\u67d0\u70b9n\u6240\u8868\u793a\u7684\u9891\u7387\u4e3a\uff1aFn=(n-1)*Fs/N\u3002
\u7531\u4e0a\u9762\u7684\u516c\u5f0f\u53ef\u4ee5\u770b\u51fa\uff0cFn\u6240\u80fd\u5206\u8fa8\u5230\u9891\u7387\u4e3a\u4e3aFs/N\uff0c\u5982\u679c
\u91c7\u6837\u9891\u7387Fs\u4e3a1024Hz\uff0c\u91c7\u6837\u70b9\u6570\u4e3a1024\u70b9\uff0c\u5219\u53ef\u4ee5\u5206\u8fa8\u52301Hz\u3002
1024Hz\u7684\u91c7\u6837\u7387\u91c7\u68371024\u70b9\uff0c\u521a\u597d\u662f1\u79d2\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u91c7\u68371\u79d2
\u65f6\u95f4\u7684\u4fe1\u53f7\u5e76\u505aFFT\uff0c\u5219\u7ed3\u679c\u53ef\u4ee5\u5206\u6790\u52301Hz\uff0c\u5982\u679c\u91c7\u68372\u79d2\u65f6
\u95f4\u7684\u4fe1\u53f7\u5e76\u505aFFT\uff0c\u5219\u7ed3\u679c\u53ef\u4ee5\u5206\u6790\u52300.5Hz\u3002\u5982\u679c\u8981\u63d0\u9ad8\u9891\u7387
\u5206\u8fa8\u529b\uff0c\u5219\u5fc5\u987b\u589e\u52a0\u91c7\u6837\u70b9\u6570\uff0c\u4e5f\u5373\u91c7\u6837\u65f6\u95f4\u3002\u9891\u7387\u5206\u8fa8\u7387\u548c
\u91c7\u6837\u65f6\u95f4\u662f\u5012\u6570\u5173\u7cfb\u3002
\u5047\u8bbeFFT\u4e4b\u540e\u67d0\u70b9n\u7528\u590d\u6570a+bi\u8868\u793a\uff0c\u90a3\u4e48\u8fd9\u4e2a\u590d\u6570\u7684\u6a21\u5c31\u662f
An=\u6839\u53f7a*a+b*b\uff0c\u76f8\u4f4d\u5c31\u662fPn=atan2(b,a)\u3002\u6839\u636e\u4ee5\u4e0a\u7684\u7ed3\u679c\uff0c
\u5c31\u53ef\u4ee5\u8ba1\u7b97\u51fan\u70b9\uff08n\u22601\uff0c\u4e14n<=N/2\uff09\u5bf9\u5e94\u7684\u4fe1\u53f7\u7684\u8868\u8fbe\u5f0f\u4e3a\uff1a
An/(N/2)*cos(2*pi*Fn*t+Pn)\uff0c\u53732*An/N*cos(2*pi*Fn*t+Pn)\u3002
\u5bf9\u4e8en=1\u70b9\u7684\u4fe1\u53f7\uff0c\u662f\u76f4\u6d41\u5206\u91cf\uff0c\u5e45\u5ea6\u5373\u4e3aA1/N\u3002
\u7531\u4e8eFFT\u7ed3\u679c\u7684\u5bf9\u79f0\u6027\uff0c\u901a\u5e38\u6211\u4eec\u53ea\u4f7f\u7528\u524d\u534a\u90e8\u5206\u7684\u7ed3\u679c\uff0c
\u5373\u5c0f\u4e8e\u91c7\u6837\u9891\u7387\u4e00\u534a\u7684\u7ed3\u679c\u3002

\u597d\u4e86\uff0c\u8bf4\u4e86\u534a\u5929\uff0c\u770b\u7740\u516c\u5f0f\u4e5f\u6655\uff0c\u4e0b\u9762\u5708\u5708\u4ee5\u4e00\u4e2a\u5b9e\u9645\u7684
\u4fe1\u53f7\u6765\u505a\u8bf4\u660e\u3002

\u5047\u8bbe\u6211\u4eec\u6709\u4e00\u4e2a\u4fe1\u53f7\uff0c\u5b83\u542b\u67092V\u7684\u76f4\u6d41\u5206\u91cf\uff0c\u9891\u7387\u4e3a50Hz\u3001
\u76f8\u4f4d\u4e3a-30\u5ea6\u3001\u5e45\u5ea6\u4e3a3V\u7684\u4ea4\u6d41\u4fe1\u53f7\uff0c\u4ee5\u53ca\u4e00\u4e2a\u9891\u7387\u4e3a75Hz\u3001
\u76f8\u4f4d\u4e3a90\u5ea6\u3001\u5e45\u5ea6\u4e3a1.5V\u7684\u4ea4\u6d41\u4fe1\u53f7\u3002\u7528\u6570\u5b66\u8868\u8fbe\u5f0f\u5c31\u662f\u5982\u4e0b\uff1a

S=2+3*cos(2*pi*50*t-pi*30/180)+1.5*cos(2*pi*75*t+pi*90/180)

\u5f0f\u4e2dcos\u53c2\u6570\u4e3a\u5f27\u5ea6\uff0c\u6240\u4ee5-30\u5ea6\u548c90\u5ea6\u8981\u5206\u522b\u6362\u7b97\u6210\u5f27\u5ea6\u3002
\u6211\u4eec\u4ee5256Hz\u7684\u91c7\u6837\u7387\u5bf9\u8fd9\u4e2a\u4fe1\u53f7\u8fdb\u884c\u91c7\u6837\uff0c\u603b\u5171\u91c7\u6837256\u70b9\u3002
\u6309\u7167\u6211\u4eec\u4e0a\u9762\u7684\u5206\u6790\uff0cFn=(n-1)*Fs/N\uff0c\u6211\u4eec\u53ef\u4ee5\u77e5\u9053\uff0c\u6bcf\u4e24\u4e2a
\u70b9\u4e4b\u95f4\u7684\u95f4\u8ddd\u5c31\u662f1Hz\uff0c\u7b2cn\u4e2a\u70b9\u7684\u9891\u7387\u5c31\u662fn-1\u3002\u6211\u4eec\u7684\u4fe1\u53f7
\u67093\u4e2a\u9891\u7387\uff1a0Hz\u300150Hz\u300175Hz\uff0c\u5e94\u8be5\u5206\u522b\u5728\u7b2c1\u4e2a\u70b9\u3001\u7b2c51\u4e2a\u70b9\u3001
\u7b2c76\u4e2a\u70b9\u4e0a\u51fa\u73b0\u5cf0\u503c\uff0c\u5176\u5b83\u5404\u70b9\u5e94\u8be5\u63a5\u8fd10\u3002\u5b9e\u9645\u60c5\u51b5\u5982\u4f55\u5462\uff1f
\u6211\u4eec\u6765\u770b\u770bFFT\u7684\u7ed3\u679c\u7684\u6a21\u503c\u5982\u56fe\u6240\u793a\u3002



\u56fe1 FFT\u7ed3\u679c
\u4ece\u56fe\u4e2d\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u5728\u7b2c1\u70b9\u3001\u7b2c51\u70b9\u3001\u548c\u7b2c76\u70b9\u9644\u8fd1\u6709
\u6bd4\u8f83\u5927\u7684\u503c\u3002\u6211\u4eec\u5206\u522b\u5c06\u8fd9\u4e09\u4e2a\u70b9\u9644\u8fd1\u7684\u6570\u636e\u62ff\u4e0a\u6765\u7ec6\u770b\uff1a
1\u70b9\uff1a 512+0i
2\u70b9\uff1a -2.6195E-14 - 1.4162E-13i
3\u70b9\uff1a -2.8586E-14 - 1.1898E-13i

50\u70b9\uff1a-6.2076E-13 - 2.1713E-12i
51\u70b9\uff1a332.55 - 192i
52\u70b9\uff1a-1.6707E-12 - 1.5241E-12i

75\u70b9\uff1a-2.2199E-13 -1.0076E-12i
76\u70b9\uff1a3.4315E-12 + 192i
77\u70b9\uff1a-3.0263E-14 +7.5609E-13i

\u5f88\u660e\u663e\uff0c1\u70b9\u300151\u70b9\u300176\u70b9\u7684\u503c\u90fd\u6bd4\u8f83\u5927\uff0c\u5b83\u9644\u8fd1\u7684\u70b9\u503c
\u90fd\u5f88\u5c0f\uff0c\u53ef\u4ee5\u8ba4\u4e3a\u662f0\uff0c\u5373\u5728\u90a3\u4e9b\u9891\u7387\u70b9\u4e0a\u7684\u4fe1\u53f7\u5e45\u5ea6\u4e3a0\u3002
\u63a5\u7740\uff0c\u6211\u4eec\u6765\u8ba1\u7b97\u5404\u70b9\u7684\u5e45\u5ea6\u503c\u3002\u5206\u522b\u8ba1\u7b97\u8fd9\u4e09\u4e2a\u70b9\u7684\u6a21\u503c\uff0c
\u7ed3\u679c\u5982\u4e0b\uff1a
1\u70b9\uff1a 512
51\u70b9\uff1a384
76\u70b9\uff1a192
\u6309\u7167\u516c\u5f0f\uff0c\u53ef\u4ee5\u8ba1\u7b97\u51fa\u76f4\u6d41\u5206\u91cf\u4e3a\uff1a512/N=512/256=2\uff1b
50Hz\u4fe1\u53f7\u7684\u5e45\u5ea6\u4e3a\uff1a384/(N/2)=384/(256/2)=3\uff1b75Hz\u4fe1\u53f7\u7684
\u5e45\u5ea6\u4e3a192/(N/2)=192/(256/2)=1.5\u3002\u53ef\u89c1\uff0c\u4ece\u9891\u8c31\u5206\u6790\u51fa\u6765
\u7684\u5e45\u5ea6\u662f\u6b63\u786e\u7684\u3002
\u7136\u540e\u518d\u6765\u8ba1\u7b97\u76f8\u4f4d\u4fe1\u606f\u3002\u76f4\u6d41\u4fe1\u53f7\u6ca1\u6709\u76f8\u4f4d\u53ef\u8a00\uff0c\u4e0d\u7528\u7ba1
\u5b83\u3002\u5148\u8ba1\u7b9750Hz\u4fe1\u53f7\u7684\u76f8\u4f4d\uff0catan2(-192, 332.55)=-0.5236,
\u7ed3\u679c\u662f\u5f27\u5ea6\uff0c\u6362\u7b97\u4e3a\u89d2\u5ea6\u5c31\u662f180*(-0.5236)/pi=-30.0001\u3002\u518d
\u8ba1\u7b9775Hz\u4fe1\u53f7\u7684\u76f8\u4f4d\uff0catan2(192, 3.4315E-12)=1.5708\u5f27\u5ea6\uff0c
\u6362\u7b97\u6210\u89d2\u5ea6\u5c31\u662f180*1.5708/pi=90.0002\u3002\u53ef\u89c1\uff0c\u76f8\u4f4d\u4e5f\u662f\u5bf9\u7684\u3002
\u6839\u636eFFT\u7ed3\u679c\u4ee5\u53ca\u4e0a\u9762\u7684\u5206\u6790\u8ba1\u7b97\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u5199\u51fa\u4fe1\u53f7\u7684\u8868\u8fbe
\u5f0f\u4e86\uff0c\u5b83\u5c31\u662f\u6211\u4eec\u5f00\u59cb\u63d0\u4f9b\u7684\u4fe1\u53f7\u3002

\u603b\u7ed3\uff1a\u5047\u8bbe\u91c7\u6837\u9891\u7387\u4e3aFs\uff0c\u91c7\u6837\u70b9\u6570\u4e3aN\uff0c\u505aFFT\u4e4b\u540e\uff0c\u67d0
\u4e00\u70b9n\uff08n\u4ece1\u5f00\u59cb\uff09\u8868\u793a\u7684\u9891\u7387\u4e3a\uff1aFn=(n-1)*Fs/N\uff1b\u8be5\u70b9\u7684\u6a21\u503c
\u9664\u4ee5N/2\u5c31\u662f\u5bf9\u5e94\u8be5\u9891\u7387\u4e0b\u7684\u4fe1\u53f7\u7684\u5e45\u5ea6\uff08\u5bf9\u4e8e\u76f4\u6d41\u4fe1\u53f7\u662f\u9664\u4ee5
N\uff09\uff1b\u8be5\u70b9\u7684\u76f8\u4f4d\u5373\u662f\u5bf9\u5e94\u8be5\u9891\u7387\u4e0b\u7684\u4fe1\u53f7\u7684\u76f8\u4f4d\u3002\u76f8\u4f4d\u7684\u8ba1\u7b97
\u53ef\u7528\u51fd\u6570atan2(b,a)\u8ba1\u7b97\u3002atan2(b,a)\u662f\u6c42\u5750\u6807\u4e3a(a,b)\u70b9\u7684\u89d2
\u5ea6\u503c\uff0c\u8303\u56f4\u4ece-pi\u5230pi\u3002\u8981\u7cbe\u786e\u5230xHz\uff0c\u5219\u9700\u8981\u91c7\u6837\u957f\u5ea6\u4e3a1/x\u79d2
\u7684\u4fe1\u53f7\uff0c\u5e76\u505aFFT\u3002\u8981\u63d0\u9ad8\u9891\u7387\u5206\u8fa8\u7387\uff0c\u5c31\u9700\u8981\u589e\u52a0\u91c7\u6837\u70b9\u6570\uff0c
\u8fd9\u5728\u4e00\u4e9b\u5b9e\u9645\u7684\u5e94\u7528\u4e2d\u662f\u4e0d\u73b0\u5b9e\u7684\uff0c\u9700\u8981\u5728\u8f83\u77ed\u7684\u65f6\u95f4\u5185\u5b8c\u6210
\u5206\u6790\u3002\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u7684\u65b9\u6cd5\u6709\u9891\u7387\u7ec6\u5206\u6cd5\uff0c\u6bd4\u8f83\u7b80\u5355\u7684\u65b9\u6cd5\u662f
\u91c7\u6837\u6bd4\u8f83\u77ed\u65f6\u95f4\u7684\u4fe1\u53f7\uff0c\u7136\u540e\u5728\u540e\u9762\u8865\u5145\u4e00\u5b9a\u6570\u91cf\u76840\uff0c\u4f7f\u5176\u957f\u5ea6
\u8fbe\u5230\u9700\u8981\u7684\u70b9\u6570\uff0c\u518d\u505aFFT\uff0c\u8fd9\u5728\u4e00\u5b9a\u7a0b\u5ea6\u4e0a\u80fd\u591f\u63d0\u9ad8\u9891\u7387\u5206\u8fa8\u529b\u3002
\u5177\u4f53\u7684\u9891\u7387\u7ec6\u5206\u6cd5\u53ef\u53c2\u8003\u76f8\u5173\u6587\u732e\u3002

[\u9644\u5f55\uff1a\u672c\u6d4b\u8bd5\u6570\u636e\u4f7f\u7528\u7684matlab\u7a0b\u5e8f]
close all; %\u5148\u5173\u95ed\u6240\u6709\u56fe\u7247
Adc=2; %\u76f4\u6d41\u5206\u91cf\u5e45\u5ea6
A1=3; %\u9891\u7387F1\u4fe1\u53f7\u7684\u5e45\u5ea6
A2=1.5; %\u9891\u7387F2\u4fe1\u53f7\u7684\u5e45\u5ea6
F1=50; %\u4fe1\u53f71\u9891\u7387(Hz)
F2=75; %\u4fe1\u53f72\u9891\u7387(Hz)
Fs=256; %\u91c7\u6837\u9891\u7387(Hz)
P1=-30; %\u4fe1\u53f71\u76f8\u4f4d(\u5ea6)
P2=90; %\u4fe1\u53f7\u76f8\u4f4d(\u5ea6)
N=256; %\u91c7\u6837\u70b9\u6570
t=[0:1/Fs:N/Fs]; %\u91c7\u6837\u65f6\u523b

%\u4fe1\u53f7
S=Adc+A1*cos(2*pi*F1*t+pi*P1/180)+A2*cos(2*pi*F2*t+pi*P2/180);
%\u663e\u793a\u539f\u59cb\u4fe1\u53f7
plot(S);
title('\u539f\u59cb\u4fe1\u53f7');

figure;
Y = fft(S,N); %\u505aFFT\u53d8\u6362
Ayy = (abs(Y)); %\u53d6\u6a21
plot(Ayy(1:N)); %\u663e\u793a\u539f\u59cb\u7684FFT\u6a21\u503c\u7ed3\u679c
title('FFT \u6a21\u503c');

figure;
Ayy=Ayy/(N/2); %\u6362\u7b97\u6210\u5b9e\u9645\u7684\u5e45\u5ea6
Ayy(1)=Ayy(1)/2;
F=([1:N]-1)*Fs/N; %\u6362\u7b97\u6210\u5b9e\u9645\u7684\u9891\u7387\u503c
plot(F(1:N/2),Ayy(1:N/2)); %\u663e\u793a\u6362\u7b97\u540e\u7684FFT\u6a21\u503c\u7ed3\u679c
title('\u5e45\u5ea6-\u9891\u7387\u66f2\u7ebf\u56fe');

figure;
Pyy=[1:N/2];
for i="1:N/2"
Pyy(i)=phase(Y(i)); %\u8ba1\u7b97\u76f8\u4f4d
Pyy(i)=Pyy(i)*180/pi; %\u6362\u7b97\u4e3a\u89d2\u5ea6
end;
plot(F(1:N/2),Pyy(1:N/2)); %\u663e\u793a\u76f8\u4f4d\u56fe
title('\u76f8\u4f4d-\u9891\u7387\u66f2\u7ebf\u56fe');

\u770b\u5b8c\u8fd9\u4e2a\u4f60\u5c31\u660e\u767d\u8c10\u6ce2\u5206\u6790\u4e86\u3002

\u9996\u5148\u4f60\u8981\u628akk\u548ct\u5b9a\u4e49\u597d\uff0c\u518d\u4f7f\u7528fft
\u4f60\u7684\u5468\u671f\u65f6\u957f\u662f\u4ec0\u4e48\u610f\u601d\uff1f\u4f60\u5df2\u7ecf\u77e5\u9053\u4f60\u7684\u4fe1\u53f7\u7684\u9891\u7387\u4e86\uff1f
\u6211\u9700\u8981\u7684\u662f\u91c7\u6837\u9891\u7387\u548c\u91c7\u6837\u70b9\u6570\u3002\u4e0b\u9762\u662f\u6211\u7684M\u6587\u4ef6\u7a0b\u5e8f\uff0c\u662f\u5904\u7406\u632f\u52a8\u4fe1\u53f7\u7684\uff0c\u4e0d\u662f\u7535\u8111\u7684\u4eff\u771f\u4fe1\u53f7\uff0c\u4f60\u53ef\u4ee5\u6539\u4e00\u4e0b\u3002\u4e0d\u61c2\u518d\u95ee\u6211
% script file creat_time_fruquency.m
% Define variables:
% Fs \u91c7\u6837\u9891\u7387
% N \u91c7\u6837\u70b9\u6570
% y \u65f6\u57df\u4fe1\u53f7
Fs=input('\u8f93\u5165\u91c7\u6837\u9891\u7387');

N=input('\u8f93\u5165\u91c7\u6837\u70b9\u6570');
t=input('\u5b9a\u4e49\u65f6\u95f4\u53d8\u91cf');
y=input('\u8f93\u5165\u65f6\u57df\u4fe1\u53f7');
subplot\uff08211\uff09
plot(pxjiankang30(:,1),pxjiankang30(:,2))
axis tight
%% \u8fdb\u884c\u5085\u91cc\u53f6\u53d8\u6362
Nfft=2^nextpow2(N);
Y=fft(y,Nfft);
subplot\uff08212\uff09
plot(f,Pyy(1:N))
title('\u9891\u57df\u5e45\u503c')
grid
axis tight
Pyy=Y.*conj(Y)/Nfft;
f=Fs*(0:N-1)/Nfft;
subplot\uff08212\uff09
plot(f,Pyy(1:N))
title('\u9891\u57df\u5e45\u503c')
grid
axis tight

matlab自带的fft函数是快速傅里叶变换函数。主要用于降噪处理,通过使用傅里叶变换求噪声中隐藏的信号的频率分量。

该函数使用方法:

方法一:

Y = fft(X) 用快速傅里叶变换 (FFT) 算法计算 X 的离散傅里叶变换 (DFT)。

我们通过下例,来了解fft函数使用过程:

第一步、指定信号的参数,采样频率为 1 kHz,信号持续时间为 1.5 秒。

Fs=1000;%采样频率

T=1/Fs;%采样周期

L=1500;%信号长度

t=(0:L-1)*T;%时间向量

第二步、构造一个信号,其中包含幅值为 0.7 的 50 Hz 正弦量和幅值为 1 的 120 Hz 正弦量。

S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);

第三步、用均值为零、方差为 4 的白噪声扰乱该信号。

X = S + 2*randn(size(t));

第四步、在时域中绘制含噪信号。通过查看信号 X(t) 很难确定频率分量。

plot(1000*t(1:50),X(1:50))

title('Signal Corrupted with Zero-Mean Random Noise')

xlabel('t (milliseconds)'),ylabel('X(t)')

第五步、计算信号的傅里叶变换。

Y = fft(X);

第六步、计算双侧频谱 P2, 计算单侧频谱 P1。

P2 = abs(Y/L); 

P1 = P2(1:L/2+1);

P1(2:end-1) = 2*P1(2:end-1)

第七步、定义频域 f 并绘制单侧幅值频谱 P1

f = Fs*(0:(L/2))/L;

plot(f,P1) 

title('Single-Sided Amplitude Spectrum of X(t)')

xlabel('f (Hz)'),ylabel('|P1(f)|')

运行结果。



  • matlab濡備綍鐢╢ft
    绛旓細Y = fft(X) 鐢ㄥ揩閫熷倕閲屽彾鍙樻崲 (FFT) 绠楁硶璁$畻 X 鐨勭鏁e倕閲屽彾鍙樻崲 (DFT)銆傚鏋 X 鏄悜閲忥紝鍒 fft(X) 杩斿洖璇ュ悜閲忕殑鍌呴噷鍙跺彉鎹傚鏋 X 鏄煩闃碉紝鍒 fft(X) 灏 X 鐨勫悇鍒楄涓哄悜閲忥紝骞惰繑鍥炴瘡鍒楃殑鍌呴噷鍙跺彉鎹傚鏋 X 鏄竴涓缁存暟缁勶紝鍒 fft(X) 灏嗘部澶у皬涓嶇瓑浜 1 鐨勭涓涓暟缁勭淮搴...
  • matlab涓浣瀵逛竴缁勬暟鎹繘琛fft鍙樻崲鍚庡緱鍒伴璋卞浘??
    绛旓細1銆佺洿鎺ュ鍏朵娇鐢╟eil鍑芥暟锛屽彲浠ュ悜涓婂彇鏁达細鍗冲ぇ浜庣瓑浜庣粰瀹氭暟鎹殑鏈灏忔暣鏁般2銆佷娇鐢╢loor鍑芥暟鍙互杩涜鍚戜笅鍙栨暣銆傚鍥撅紝灏嗙煩闃礎涓殑姣忎釜鍏冪礌鍙栧皬浜庣瓑浜庤鍏冪礌鐨勬渶澶ф暣鏁般3銆佷娇鐢╢ix鍑芥暟鍒欏彲浠ュ幓闄ゅ皬鏁伴儴鍒嗐傚浜庡ぇ浜0鐨勫厓绱犵浉褰撲簬floor锛屽浜庡皬浜0鐨勫厓绱犵浉褰撲簬ceil銆4銆佷娇鐢╮ound鍑芥暟鍙互鎶婃暟鎹洓鑸嶄簲鍏ュ埌鏈杩...
  • 濡備綍鐢╩atlab缁樺埗E=1,t=1,T=2,鍛ㄦ湡鐭╁舰鑴夊啿淇″彿鐨勪笁瑙掑嚱鏁板舰寮忕殑骞呭害...
    绛旓細瑕佺粯鍒禘=1锛宼=1锛孴=2鐨勫懆鏈熺煩褰㈣剦鍐蹭俊鍙风殑涓夎鍑芥暟褰㈠紡鐨勫箙搴﹂璋卞浘锛屼綘鍙互浣跨敤MATLAB鐨凢FT锛團ast Fourier Transform锛夊嚱鏁般備互涓嬫槸涓涓彲鑳界殑绋嬪簭锛matlab澶嶅埗浠g爜 鍙傛暟瀹氫箟 E = 1; % 骞呭害 t = 1; % 鏃堕棿鍋忕Щ T = 2; % 鍛ㄦ湡 Fs = 1000; % 閲囨牱棰戠巼 t_sample = 0:1/Fs:T; % 鏃堕棿...
  • matlab閲屾湁浠涔堝伐鍏风,鍙互鐢‵FT(蹇熷倕绔嬪彾鍙樻崲)鍋氶璋卞垎鏋
    绛旓細绗竴灏辨槸鎵嬪姩灏嗘暟鎹暣鐞嗘垚Matlab鏀寔鐨勬牸寮锛岃繖绉嶆柟娉曚粎閫傜敤浜庢暟鎹噺姣旇緝灏忕殑閲囨牱銆傜浜岀鏂规硶鏄娇鐢∕atlab鐨勫彲瑙嗗寲浜や簰鎿嶄綔锛屽叿浣撴搷浣滄楠や负锛欶ile --> Import Data锛岀劧鍚庡湪寮瑰嚭鐨勫璇濇涓壘鍒颁繚瀛橀噰鏍锋暟鎹殑鏂囦欢锛屾牴鎹彁绀轰竴姝ヤ竴姝ュ嵆鍙皢鏁版嵁瀵煎叆銆傝繖绉嶆柟娉曢傚悎浜庢暟鎹噺杈冨ぇ锛屼絾鍙堜笉鏄お澶х殑鏁版嵁銆傜涓...
  • 濡備綍鐢∕ATLAB瀹屾垚鍌呴噷鍙跺彉鎹㈠拰閫嗗彉鎹?
    绛旓細鐢∕ATLAB杩涜鍌呴噷鍙跺彉鎹鐢╢ft锛堬級鍑芥暟鏉ュ彉鎹紝鍏堕嗗彉鎹㈢敤ifft锛堬級鍑芥暟鏉ュ彉鎹傚彉鎹㈣姹俋涓哄悜閲忥紝鑰屼笉鏄彉閲忋傛牴鎹涓荤殑浠g爜搴旇繖鏍锋潵澶勭悊銆>> t=-pi:pi/100:pi;>> x=sin(2*pi*t);>> y=fft(x); %鍌呴噷鍙跺彉鎹 >> plot(abs(y))x=ifft(y); %鍌呴噷鍙堕嗗彉鎹 >> plot(t,x)
  • matlab涓IFFT鍑芥暟鐨勭敤娉
    绛旓細matlab涓IFFT鍑芥暟鍙互瀹炵幇涓缁村弽DFT绠楁硶銆傝皟鐢ㄦ牸寮忎负A锛滻FF锛圶锛孨锛孌IM锛夈俋琛ㄧず杈撳叆鍥惧儚锛汵琛ㄧず閲囨牱闂撮殧鐐癸紝濡傛灉X灏忎簬璇ユ暟鍊硷紝閭d箞Matlab灏嗕細瀵筙杩涜闆跺~鍏咃紝鍚﹀垯灏嗚繘琛屾埅鍙栵紝浣夸箣闀垮害涓篘锛汥IM琛ㄧず瑕佽繘琛岀鏁e倕绔嬪彾鍙樻崲銆侷FFT鍑芥暟鍜岀鏁e倕绔嬪彾鍙樻崲鍑芥暟FFT瀹屽叏鐩稿悓銆
  • 鐢╩atlab缂栧啓瀹炵幇fft鐨勭▼搴忋
    绛旓細function y=myditfft(x)鏈▼搴忓杈撳叆搴忓垪瀹炵幇DIT-FFT鍩2绠楁硶锛岀偣鏁板彇澶т簬绛変簬闀垮害鐨2鐨勫箓娆 --- myditfft.c --- m=nextpow2(x);姹傜殑x闀垮害瀵瑰簲鐨2鐨勬渶浣庡箓娆 N=2^m;if length(x)<N x=[x,zeros(1,N-length(x))];鑻ョ殑闀垮害涓嶆槸2鐨勫箓锛岃ˉ0鍒2鐨勬暣鏁板箓 end nxd=bin2dec(fliplr(...
  • MATLAB涓杩涜FFT璋卞垎鏋,濡備綍灏嗛璋卞浘鐨勬í鍧愭爣杞崲鎴愰鐜?
    绛旓細涓.璋冪敤鏂规硶 X=FFT(x)锛沊=FFT(x锛孨)锛泋=IFFT(X);x=IFFT(X,N)鐢∕ATLAB杩涜璋卞垎鏋愭椂娉ㄦ剰锛氾紙1锛夊嚱鏁癋FT杩斿洖鍊肩殑鏁版嵁缁撴瀯鍏锋湁瀵圭О鎬с備緥锛歂=8;n=0:N-1;xn=[4 3 2 6 7 8 9 0];Xk=fft(xn)鈫 Xk = 39.0000 -10.7782 + 6.2929i 0 - 5.0000i 4.7782 - 7.7071...
  • 濡備綍鐢╩atlab璁$畻鍌呴噷鍙剁骇鏁?
    绛旓細涓嶈繃锛屾垜鍙互缁欎綘涓涓緥瀛愶紝杩欎釜渚嬪瓙浣跨敤鐨勬槸鐭╁舰鍑芥暟锛屽叾鍌呴噷鍙剁骇鏁扮殑璁$畻鐩稿绠鍗曪紝浣犲彲浠ュ弬鑰冭繖涓緥瀛愭潵鐞嗚В濡備綍鍦matlab涓璁$畻鍌呴噷鍙剁骇鏁般俶atlab% 閲囨牱鏃堕棿闂撮殧 dt = 0.01;閲囨牱鐐规暟 N = 1000;鏃堕棿鍚戦噺 t = (0:N-1)*dt;鐭╁舰鍑芥暟 rect = rectfn(t);鍌呴噷鍙剁骇鏁 fft_series = fft(rect)...
  • MATLAB涓師甯︾殑FFT鍑芥暟鎬庝箞璋冪敤
    绛旓細鍦ㄥ懡浠ょ獥鍙i敭鍏ワ細help fft 灏辫兘鏌ョ湅FFT鍑芥暟鐨浣跨敤璇存槑浜嗐傜畝鍗曟潵璇达細a=fft锛坆,n锛夊氨鑳藉緱鍒版暟鎹産鐨刵鐐筬ft缁撴灉a浜
  • 扩展阅读:matlab免费下载安装 ... matlab stem ... fft2 matlab ... matlab 二维fft ... matlab figure ... matlab fft工具箱 ... 新手怎么使用matlab ... matlab fft横坐标 ... matlab手机版下载安装教程 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网