一、实验目的与要求
1.频谱分析的基本概念;
2.对常用信号进行频谱分析:正余弦信号、方波信号、锯齿波信号、矩形脉冲信号等;
3.应用FFT进行频谱分析,Matlab编程仿真。

二、实验设备与平台
实验设备要求每个学生一台电脑,运行环境为Matlab.

三、实验原理

  1. 周期信号的傅里叶级数;
  2. 能量信号的傅里叶变换;
  3. 在实际计算机系统中,用采样序列的离散傅立叶变换来近似模拟信号的傅里叶变换,并采用算法FFT(快速傅里叶变换)实现离散傅里叶变换,进行频谱分析。

四、实验内容与步骤
编写程序,解下列问题,然后把编写的程序代码和运行结果复制到题目后面的空白处,在实验结果后面写实验总结。

  1. 正余弦波的频谱分析
    (1) 对时域信号画出波形图,并进行频谱分析。采样频率为500Hz,取=1024个数据点进行FFT。
    实验代码:
    fs=500;
    N=1024;
    t=(0:N-1)1/fs;
    x=sin(2
    pi20t);
    subplot(2,1,1);plot(t,x);xlim([0 N/fs]);
    y=fft(x);
    subplot(2,1,2);plot((0:N-1)/N*fs,abs(y));
    在这里插入图片描述

(2) 对时域信号画出波形图,并进行频谱分析。采样频率为500Hz,取=1024个数据点进行FFT。此外,请分析如下情况:
a) 如果取不同大小的值(比如N=256, 512, 2048,…),所得频谱图有何区别?
b) 若加入直流分量,,频谱图发生了什么变化?
实验代码:
fs=500;
N=1024;
t=(0:N-1)1/fs;
x=2
sin(2pi20t)+cos(2pi40t);
subplot(2,1,1);plot(t,x);xlim([0 1/fs200]);
y=fft(x);
subplot(2,1,2);plot((0:N-1)/N
fs,abs(y));
在这里插入图片描述
a)
实验代码:
fs=500;
N=256;
t=(0:N-1)1/fs;
x=2
sin(2pi20t)+cos(2pi40t);
subplot(4,2,1);plot(t,x);xlim([0 N/fs]);
y=fft(x);
subplot(4,2,2);plot((0:N-1)/N*fs,abs(y));

fs=500;
N=512;
t=(0:N-1)1/fs;
x=2
sin(2pi20t)+cos(2pi40t);
subplot(4,2,3);plot(t,x);xlim([0 N/fs]);
y=fft(x);
subplot(4,2,4);plot((0:N-1)/N*fs,abs(y));

fs=500;
N=1024;
t=(0:N-1)1/fs;
x=2
sin(2pi20t)+cos(2pi40t);
subplot(4,2,5);plot(t,x);xlim([0 N/fs]);
y=fft(x);
subplot(4,2,6);plot((0:N-1)/N*fs,abs(y));

fs=500;
N=2048;
t=(0:N-1)1/fs;
x=2
sin(2pi20t)+cos(2pi40t);
subplot(4,2,7);plot(t,x);xlim([0 N/fs]);
y=fft(x);
subplot(4,2,8);plot((0:N-1)/N*fs,abs(y));
在这里插入图片描述

频谱图的波峰随着N的增大而增大
B)
实验代码:
未加直流分量:
在这里插入图片描述
加上直流分量:
在这里插入图片描述
波形图上移0.5

  1. 周期性方波的频谱分析
    对信号画出波形图,并进行频谱分析。采样频率为500Hz,取=1024个数据点进行FFT。
    实验代码:
    fs=500;
    N=1024;
    t=(0:N-1)1/fs;
    x=square(2
    pi25t);
    subplot(2,1,1);plot(t,x);xlim([0 1/fs200]);ylim([-2,2]);
    y=fft(x);
    subplot(2,1,2);plot((0:N-1)/N
    fs,abs(y));

在这里插入图片描述

  1. 周期性锯齿波、三角波的频谱分析
    (1) 对锯齿波信号画出波形图,并进行频谱分析。采样频率为500Hz,取=1024个数据点进行FFT。
    实验代码:
    fs=500;
    N=1024;
    t=(0:N-1)1/fs;
    x=sawtooth(2
    pi25t);
    subplot(2,1,1);plot(t,x);xlim([0 1/fs200]);ylim([-2,2]);
    y=fft(x);
    subplot(2,1,2);plot((0:N-1)/N
    fs,abs(y));
    在这里插入图片描述
    (2) 对三角波信号画出其波形图和频谱图,并进行分析。采样频率为500Hz,取=1024个数据点进行FFT。
    实验代码:
    fs=500;
    N=1024;
    t=(0:N-1)1/fs;
    x=sawtooth(2
    pi25t,0.5);
    subplot(2,1,1);plot(t,x);xlim([0 1/fs200]);ylim([-2,2]);
    y=fft(x);
    subplot(2,1,2);plot((0:N-1)/N
    fs,abs(y));
    在这里插入图片描述

  2. 矩形方波的频谱分析
    对矩形脉冲信号,用rectpuls函数画出其时域波形,并进行频谱分析,时域波形宽度自定,采样频率为500Hz, 取N=1024个数据点进行FFT.
    实验代码:
    fs=500;
    N=length(t);
    t=-1.5:1/fs:1.5;
    x=rectpuls(t,0.2);
    subplot(2,1,1);plot(x);ylim([0,2]);
    y=fft(x);
    subplot(2,1,2);plot((0:N-1)/N*fs,abs(y));
    在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐