测井曲线fft matlab,Matlab编程实现FFT实践及频谱分析

.用Matlab产生正弦波,矩形波,以及白噪声信号,并显示各自时域波形图2.进行FFT变换,显示各自频谱图,其中采样率,频率、数据长度自选3.做出上述三种信号的均方根图谱,功率图谱,以及对数均方根图谱4.用IFFT傅立叶反变换恢复信号,并显示恢复的正弦信号时域波形图

源程序%*************************************************************************%

%                              FFT实践及频谱分析%

%*************************************************************************%

%*************************************************************************%

%***************1.正弦波****************%

fs=100;%设定采样频率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=2*pi*10t时域波形');

grid;

%进行FFT变换并做频谱图y=fft(x,N);%进行fft变换mag=abs(y);%求幅值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=2*pi*10t幅频谱图N=128');

grid;

%求均方根谱sq=abs(y);

figure(1);

subplot(233);

plot(f,sq);

xlabel('频率(Hz)');

ylabel('均方根谱');

title('正弦信号y=2*pi*10t均方根谱');

grid;

%求功率谱power=sq.^2;

figure(1);

subplot(234);

plot(f,power);

xlabel('频率(Hz)');

ylabel('功率谱');

title('正弦信号y=2*pi*10t功率谱');

grid;

%求对数谱ln=log(sq);

figure(1);

subplot(235);

plot(f,ln);

xlabel('频率(Hz)');

ylabel('对数谱');

title('正弦信号y=2*pi*10t对数谱');

grid;

%用IFFT恢复原始信号xifft=ifft(y);

magx=real(xifft);

ti=[0:length(xifft)-1]/fs;

figure(1);

subplot(236);

plot(ti,magx);

xlabel('t');

ylabel('y');

title('通过IFFT转换的正弦信号波形');

grid;

%****************2.矩形波****************%

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;

%进行FFT变换并做频谱图y=fft(x);%进行fft变换mag=abs(y);%求幅值f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换figure(2);

subplot(232);

plot(f,mag);%做频谱图xlabel('频率(Hz)');

ylabel('幅值');

title('矩形波幅频谱图');

grid;

%求均方根谱sq=abs(y);

figure(2);

subplot(233);

plot(f,sq);

xlabel('频率(Hz)');

ylabel('均方根谱');

title('矩形波均方根谱');

grid;

%求功率谱power=sq.^2;

figure(2);

subplot(234);

plot(f,power);

xlabel('频率(Hz)');

ylabel('功率谱');

title('矩形波功率谱');

grid;

%求对数谱ln=log(sq);

figure(2);

subplot(235);

plot(f,ln);

xlabel('频率(Hz)');

ylabel('对数谱');

title('矩形波对数谱');

grid;

%用IFFT恢复原始信号xifft=ifft(y);

magx=real(xifft);

ti=[0:length(xifft)-1]/fs;

figure(2);

subplot(236);

plot(ti,magx);

xlabel('t');

ylabel('y');

title('通过IFFT转换的矩形波波形');

grid;

%****************3.白噪声****************%

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;

%进行FFT变换并做频谱图y=fft(x);%进行fft变换mag=abs(y);%求幅值f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换figure(3);

subplot(232);

plot(f,mag);%做频谱图xlabel('频率(Hz)');

ylabel('幅值');

title('白噪声幅频谱图');

grid;

%求均方根谱sq=abs(y);

figure(3);

subplot(233);

plot(f,sq);

xlabel('频率(Hz)');

ylabel('均方根谱');

title('白噪声均方根谱');

grid;

%求功率谱power=sq.^2;

figure(3);

subplot(234);

plot(f,power);

xlabel('频率(Hz)');

ylabel('功率谱');

title('白噪声功率谱');

grid;

%求对数谱ln=log(sq);

figure(3);

subplot(235);

plot(f,ln);

xlabel('频率(Hz)');

ylabel('对数谱');

title('白噪声对数谱');

grid;

%用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;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值