用MATLAB做信号的频域分析
前言:
一、用MATLAB做信号的频域分析
1.1 对 f1 = sa(2t)的频谱分析
clear;clc;
hold on;
R=0.05;
t=-1.2:R:1.2;
t1 = 2*t;
f1=sinc(t1); %Sa函数
subplot(1,2,1),plot(t,f1)
xlabel('t'),ylabel('f1')
axis([-2,2,-0.3,1.2]); %写出Sa函数上下限
N=1000;
k=-N:N;
W1=40;
W=k*W1/N;
F=f1*exp(-j*t'*W)*R; %f1的傅里叶变换
F=real(F); %取F的实部
subplot(1,2,2),plot(W,F)
xlabel('W'),ylabel('F(jw)')
运行结果
1.2 f2 = u(t+2) - u(t-2)的频谱分析
R=0.05;
t=-3:R:3;
f2=(t>=-2)-(t>=2);
subplot(1,2,1),plot(t,f2)
grid on;
xlabel('t'),ylabel('f2')
axis([-3,3,-0.5,1.5]);
N=1000;k=-N:N;
W1=40;
W=k*W1/N;
F=f2*exp(-j*t'*W)*R;
F=real(F);
subplot(1,2,2),plot(W,F)
grid on;
xlabel('W'),ylabel('F(jw)')
运行结果
1.3 f3 = t[u(t+1) - u(t-1) ]的频谱分析
R=0.05;
h=0.001;
t=-1.2:R:1.2;
y=t.*(t>=-1)-t.*(t>=1);
f4=diff(y)/h;
subplot(1,2,1),plot(t,y)
xlabel('t'),ylabel('y')
axis([-1.2,1.2,-1.2,1.2]);
N=1000;
k=-N:N;
W1=40;
W=k*W1/N;
F=y*exp(-j*t'*W)*R;
F=real(F);
subplot(1,2,2),plot(W,F)
xlabel('W'),ylabel('F(jw)')
axis([-40,40,-0.06,0.06]);
运行结果
1.4 对正弦波做FFT频谱分析
%*************************************************************************%
% FFT实践及频谱分析 %
%*************************************************************************%
%***************正弦波****************%
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;
运行结果
1.5 对矩形波做FFT分析
%****************2.矩形波****************%
fs=10;%设定采样频率
t=-5:0.1:5;
x=rectpuls(t,2);
x=x(1:99);
figure(1);
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(1);
subplot(232);
plot(f,mag);%做频谱图
xlabel('频率(Hz)');
ylabel('幅值');
title('矩形波幅频谱图');
grid;
%求均方根谱
sq=abs(y);
figure(1);
subplot(233);
plot(f,sq);
xlabel('频率(Hz)');
ylabel('均方根谱');
title('矩形波均方根谱');
grid;
%求功率谱
power=sq.^2;
figure(1);
subplot(234);
plot(f,power);
xlabel('频率(Hz)');
ylabel('功率谱');
title('矩形波功率谱');
grid;
%求对数谱
ln=log(sq);
figure(1);
subplot(235);
plot(f,ln);
xlabel('频率(Hz)');
ylabel('对数谱');
title('矩形波对数谱');
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;
运行结果文章来源:https://www.toymoban.com/news/detail-599059.html
1.6 对白噪声进行FFT分析
%****************3.白噪声****************%
fs=10;%设定采样频率
t=-5:0.1:5;
x=zeros(1,100);
x(50)=100000;
figure(1);
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(1);
subplot(232);
plot(f,mag);%做频谱图
xlabel('频率(Hz)');
ylabel('幅值');
title('白噪声幅频谱图');
grid;
%求均方根谱
sq=abs(y);
figure(1);
subplot(233);
plot(f,sq);
xlabel('频率(Hz)');
ylabel('均方根谱');
title('白噪声均方根谱');
grid;
%求功率谱
power=sq.^2;
figure(1);
subplot(234);
plot(f,power);
xlabel('频率(Hz)');
ylabel('功率谱');
title('白噪声功率谱');
grid;
%求对数谱
ln=log(sq);
figure(1);
subplot(235);
plot(f,ln);
xlabel('频率(Hz)');
ylabel('对数谱');
title('白噪声对数谱');
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;
运行结果文章来源地址https://www.toymoban.com/news/detail-599059.html
到了这里,关于信号与系统的MATLAB仿真 ---信号的频域分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!