《MATLAB实现FFT的基本信号仿真代码》由会员分享,可在线阅读,更多相关《MATLAB实现FFT的基本信号仿真代码(8页珍藏版)》请在金锄头文库上搜索。
1、MATLAB 实现 FFT 的基本信号仿真代码1 基本信号的仿真正弦信号生成正弦信号fs=350; %设定采样频率N=128;n=0:N-1;t=n/fs;f0=10; %设定正弦信号频率%生成正弦信号x=sin(2*pi*f0*t);figure(1);subplot(231);plot(t,x); %作正弦信号的时域波形xlabel(t);ylabel(y);title(正弦信号 y=sin(2*pi*10t)时域波形);grid;仿真后得正弦信号的时域波形 如下图1.1所示: 图 1.1进行 FFT 变换并做频谱图y=fft(x,N); %进行 fft 变换mag=abs(y); %求幅
2、值f=(0:length(y)-1)*fs/length(y); %进行对应的频率转换figure(1);subplot(232);plot(f,mag);%做频谱图axis(0,100,0,80);xlabel(频率(Hz);ylabel(幅值);title(正弦信号 y=sin(2*pi*10t)幅频谱图 N=128);grid;进行 FFT 变换后的频谱图如下图 1.2 所示: 图 1.2 图 1.3用 IFFT 恢复原始信号xifft=ifft(y);magx=real(xifft);ti=0:length(xifft)-1/fs;figure(1);subplot(236);plot
3、(ti,magx);xlabel(t);ylabel(y);title(通过 IFFT 转换的正弦信号波形);grid;用 IFFT 恢复原始信号的波形如上图 1.3 所示。矩形波信号生成矩形波信号fs=10; %设定采样频率t=-5:0.1:5;x=rectpuls(t,2);x=x(1:99);figure(2);subplot(231);plot(t(1:99),x); %作矩形波的时域波形xlabel(t);ylabel(y);title(矩形波时域波形);grid;仿真后得矩形信号的时域波形如下图 1.4 所示:图 1.4进行 FFT 变换并做频谱图y=fft(x); %进行 fft
4、 变换mag=abs(y); %求幅值f=(0:length(y)-1)*fs/length(y); %进行对应的频率转换figure(2);subplot(232);plot(f,mag); %做频谱图xlabel(频率(Hz);ylabel(幅值);title(矩形波幅频谱图);grid;所得矩形波 FFT 变换后的频谱图如下图 1.5 所示:图 1.5 图 1.6用 IFFT 恢复原始信号xifft=ifft(y);magx=real(xifft);ti=0:length(xifft)-1/fs;figure(2);subplot(236);plot(ti,magx);xlabel(t)
5、;ylabel(y);title(通过 IFFT 转换的矩形波波形);grid;用 IFFT 恢复的矩形波信号如上图 1.6 所示。白噪声信号生成白噪声信号fs=10;%设定采样频率t=-5:0.1:5;x=zeros(1,100);x(50)=100000;figure(3);subplot(231);plot(t(1:100),x); %作白噪声的时域波形xlabel(t);ylabel(y);title(白噪声时域波形);grid;仿真后所得白噪声信号波形如下图 1.7 所示:图 1.7 进行 FFT 变换并做频谱图y=fft(x); %进行 fft 变换mag=abs(y); %求幅值
6、f=(0:length(y)-1)*fs/length(y); %进行对应的频率转换figure(3);subplot(232);plot(f,mag); %做频谱图xlabel(频率(Hz);ylabel(幅值);title(白噪声幅频谱图);grid;经 FFT 变换后所得白噪声的频谱图如下图 1.8 所示:图 1.8 图 1.9用 IFFT 恢复原始信号xifft=ifft(y);magx=real(xifft);ti=0:length(xifft)-1/fs;figure(3);subplot(236);plot(ti,magx);xlabel(t);ylabel(y);title(通过 IFFT 转换的白噪声波形);grid;经 IFFT 恢复后的白噪声信号波形如上图 1.9 所示。