基于FFT的信号频谱分析

1.设计要求

1)用MATLAB产生正弦波及白噪声信号,并显示各自时域波形图。

2)进行FFT变换,显示各自频谱图。

3)做出两种信号的均方根图谱,功率图谱,以及对数方均根图谱。

4)用IFFT变换回复信号,并显示时域波形图。

fs=100;             %设定采样频率
N=128;
n=0:N-1;
t=n/fs;
f0=10;              %设定正弦信号频率
x=sin(2*pi*t*f0);
figure(1);
plot(t,x);          %画波形图
xlabel('时间/s');
ylabel('幅值');
title('时域波形图');
grid;

 正弦波图

 

 进行FFT后的频谱图

y=fft(x,N);         %进行傅里叶变换
mag=abs(y);         %求幅值
figure(2);
f=(0:length(y)-1)'*fs/length(y);    %进行对应的频率转换
plot(f,mag);        %画频谱图
axis([0,100,0,80]);
xlabel('频率/Hz');
ylabel('幅值');
title('幅频谱图');
grid;

 功率谱,对数谱

power=mag.^2;
figure(3);
subplot 211;
plot(f,power);
xlabel('频率/Hz');
ylabel('功率谱');
title('功率谱图');
grid;
%--------------%
ln=log(mag);
subplot 212;
plot(f,ln);
xlabel('频率/Hz');
ylabel('对数谱');
title('对数谱图');
grid;

 用IFFT后恢复的信号

xifft=ifft(y);
magx=real(xifft);
ti=[0:length(xifft)-1]/fs;
figure(4);
plot(ti,magx);
xlabel('时间/s');
ylabel('幅值');
title('IFFT后的信号');
grid;

 

白噪声时域波形图,这里可能每一个系统生成的随机数不一样,画出来的图也不一样。

fs=50;
t=-50:0.1:50;
x=rand(1,100);
figure(1);
plot(t(1:100),x);
xlabel('时间/s');
ylabel('幅值');
title('时域波形图');
grid;

 傅里叶变换后的频谱图

y=fft(x);         %进行傅里叶变换
mag=abs(y);         %求幅值
figure(2);
f=(0:length(y)-1)'*fs/length(y);    %进行对应的频率转换
plot(f,mag);        %画频谱图
xlabel('频率/Hz');
ylabel('幅值');
title('幅频谱图');
grid;

功率谱图,对数谱图

power=mag.^2;
figure(3);
subplot 211;
plot(f,power);
xlabel('频率/Hz');
ylabel('功率谱');
title('功率谱图');
grid;
%---对数谱----%
ln=log(mag);
subplot 212;
plot(f,ln);
xlabel('频率/Hz');
ylabel('对数谱');
title('对数谱图');
grid;

 

 IFFT恢复后的原始信号

xifft=ifft(y);
magx=real(xifft);
ti=[0:length(xifft)-1]/fs;
figure(4);
plot(ti,magx);
xlabel('时间/s');
ylabel('幅值');
title('IFFT后的信号');
grid;

 

教材参考文献

语音信号处理实验教程[M],北京:机械工业出版社,2016.2

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值