傅里叶变换matlab 代码(2 页)Good is good, but better carries it
精益求精,善益求善
%傅里叶变换clc;clear all;close all;ticFs=128;%采样频率,频谱图的最大频率T=1/Fs;%采样时间,原始信号的时间间隔L=256;%原始信号的长度,即原始离散信号的点数t=(0:L-1)*T;%原始信号的时间取值范围x=7*cos(2*pi*15*t-pi)+3*cos(2*pi*40*t-90*pi/180)+3*cos(2*pi*30*t-90*pi/180);z=7*cos(2*pi*15*t-pi)+3*cos(2*pi*40*t-90*pi/180);z1=6*cos(2*pi*30*t-90*pi/180);z1(1:L/2)=0;z=z+z1;y=x;%+randn(size(t));figure;plot(t,y)title('含噪信号')xlabel('时间(s)')hold onplot(t,z,'r--')N=2^nextpow2(L);%N 为使 2^N>=L 的最小幂Y=fft(y,N)/N*2;Z=fft(z,N)/N*2;%快速傅里叶变换之后每个点的幅值是直流信号以外的原始信号幅值的 N/2 倍(是直流信号的 N 倍)f=Fs/N*(0:N-1);%频谱图的频率取值范围A=abs(Y);%幅值A1=abs(Z);B=A; %让很小的数置零
B1=A1;A(A