【MATLAB学习笔记——在信号处理中的基本应用】

Matlab在信号处理中的基本应用———学习笔记

      • 第0个实例——matlab基本操作(FFT频谱分析)
        • 设计要求

第0个实例——matlab基本操作(FFT频谱分析)

设计要求

1.用MATLAB产生正弦波及白噪声信号,并显示各自时域波形图
2.进行FFT变换,显示各自频谱图。
3.做出两种种信号的均方根图谱,功率图谱,以及对数方均根图谱。
4.用IFFT傅里叶反变换恢复信号,并显示时域波形图。

【MATLAB学习笔记——在信号处理中的基本应用】_第1张图片

%*********************正弦波*********************
clc;
fs=60;                  %抽样频率100Hz
N=128;                  %采样点数
t=0:1/fs:(N-1)/fs;      %时域长度=点数 x 采样间隔=点数/采样频率
f0=10;                  %信号1的频率10HZ
x=sin(2*pi*f0*t);
figure(1);subplot(231);plot(t,x);grid;
xlabel("时间/s");ylabel("幅度");title("时域波形");

%*********************进行FFT变换******************
y=fftshift(fft(x,N));
mag=abs(y);
f=(floor(-(N-1)/2):floor((N-1)/2))/(N-1)*fs;%乘以信号长度分之一(频率分辨率)
subplot(232);plot(f,mag);grid;axis([-50, 50, 0, 100]);
xlabel("频率/Hz");ylabel("幅值");title("幅频图");

【MATLAB学习笔记——在信号处理中的基本应用】_第2张图片
求三种谱,先忽略
ifft恢复出原信号

fftshift 将零频率移到中点。			用法y=fftshift(fft(x,N));
ifftshift 就是撤消 fftshift 的结果。	用法y=fftshift(fft(x2,N));

%*********************用ifft恢复原始信号******************
x2=ifft(ifftshift(y),N);
t2=(0:length(x2)-1)/fs;
subplot(233);plot(t2,x2);grid;
xlabel("时间/s");ylabel("幅度");title("恢复时域波形");

%*********************恢复信号进行FFT变换******************
y=fftshift(fft(x2,N));
mag=abs(y);
f=(floor(-(N-1)/2):floor((N-1)/2))/(N-1)*fs;
%f=(0:length(y)-1)*fs/length(y);
subplot(234);plot(f,mag);grid;axis([-50, 50, 0, 100]);
xlabel("频率/Hz");ylabel("幅值");title("恢复信号的幅频图");

【MATLAB学习笔记——在信号处理中的基本应用】_第3张图片

你可能感兴趣的:(MATLAB信号处理,matlab)