应用MATLAB对信号进行频谱分析及滤波铁道大学

时间:2024.3.19

数字信号处理设计报告

应用MATLAB对信号进行频谱分析及滤波

一、设计目的

用MATLAB语言进行编程,绘出所求波形,并且运用FFT求对连续信号进行分析。

二、设计要求

1、用Matlab产生正弦波,矩形波,并显示各自的时域波形图;

2、进行FFT变换,显示各自频谱图,其中采样率、频率、数据长度自选,要求注明;

3、绘制三种信号的均方根图谱;

4、用IFFT回复信号,并显示恢复的正弦信号时域波形图。

三、系统原理

用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行频谱分析的信号是模拟信号和时域离散信号。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现频率分辨率是2π/N。

x(n)是一个长度为M的有限长序列,则x(n)的N点离散傅立叶变换为:X(k)=DFT[x(n)]=,k=0,1,...,N-1

逆变换:x(n) =IDFT[X(k)]=,k=0,1,...,N-1

但FFT是一种比DFT更加快速的一种算法,提高了DFT的运算速率,为数字信号处理技术应用于各种信号处理创造了条件,大大提高了数字信号处理技术的发展。本实验就是采用FFT,IFFT对信号进行谱分析。

四、程序设计

fs=input('please input the fs:');%设定采样频率

N=input('please input the N:');%设定数据长度

t=0:0.001:1;

f=100;%设定正弦信号频率

%生成正弦信号

x=sin(2*pi*f*t);

figure(1);

subplot(211);

plot(t,x);%作正弦信号的时域波形

axis([0,0.1,-1,1]);

title('正弦信号时域波形');

z=square(50*t);

subplot(212)

plot(t,z)

axis([0,1,-2,2]);

title('方波信号时域波形');grid;

%进行FFT变换并做频谱图

y=fft(x,N);%进行fft变换

mag=abs(y);%求幅值

f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M;

figure(2);

subplot(211);

plot(f,mag);%做频谱图

axis([0,1000,0,200]);

title('正弦信号幅频谱图');

y1=fft(z,N);%进行fft变换

mag=abs(y1);%求幅值

f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M;

subplot(212);

plot(f,mag);%做频谱图

axis([0,1000,0,200]);

title('方波信号幅频谱图');grid;

%求功率谱

sq=abs(y);

power=sq.^2;

figure(3)

subplot(211);

plot(f,power);

title('正弦信号功率谱');grid;

sq1=abs(y1);

power1=sq1.^2;

subplot(212);

plot(f,power1);

title('方波信号功率谱');grid;

%用IFFT恢复原始信号

xifft=ifft(y);

magx=real(xifft);

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

figure(4);

subplot(211);

plot(ti,magx);

axis([0,0.1,-1,1]);

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

zifft=ifft(y1);

magz=real(zifft);

ti1=[0:length(zifft)-1]/fs;

subplot(212);

plot(ti1,magz);

title('通过IFFT转换的方波信号波形');grid;

五、仿真结果及分析由图可以看出正弦波周期T=0.01,采样点N=1024.程序为:

t=0:0.001:1;f=100;%设定正弦信号频率

x=sin(2*pi*f*t);figure(1);

subplot(211);

plot(t,x);%作正弦信号的时域波形

axis([0,0.1,-1,1]);

title('正弦信号时域波形');

z=square(50*t);

subplot(212)

plot(t,z)

axis([0,1,-2,2]);

title('方波信号时域波形');grid;

2、对正弦波、方波信号进行FFT变换程序:

y=fft(x,N);%进行fft变换

mag=abs(y);%求幅值

f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M;

figure(2);

subplot(211);

plot(f,mag);%做频谱图

axis([0,1000,0,200]);

title('正弦信号幅频谱图');

y1=fft(z,N);%进行fft变换

mag=abs(y1);%求幅值

f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M;

subplot(212);

plot(f,mag);%做频谱图

axis([0,1000,0,200]);

title('方波信号幅频谱图');grid;

正弦信号、方波信号功率谱程序:

sq=abs(y);

power=sq.^2;

figure(3)

subplot(211);

plot(f,power);

title('正弦信号功率谱');grid;

sq1=abs(y1);

power1=sq1.^2;

subplot(212);

plot(f,power1);

title('方波信号功率谱');grid;

对两个信号进行恢复程序:

xifft=ifft(y);

magx=real(xifft);

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

figure(4);

subplot(211);

plot(ti,magx);

axis([0,0.1,-1,1]);

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

zifft=ifft(y1);

magz=real(zifft);

ti1=[0:length(zifft)-1]/fs;

subplot(212);

plot(ti1,magz);

title('通过IFFT转换的方波信号波形');grid;

当采样频率小于2fc或N小于M时恢复信号就会出现失真,频谱会发生馄叠。

六、设计总结:

通过对本次应用MATLAB语言对信号进行频谱分析及滤波设计,使更加系统的理解了FFT,IFFT功能,对采样频谱分析及恢复功能掌握有了进一步提高,如果序列x(n)主值序列长度为M,最高频率为fc只有当频率采样点N≥M,采样频率fs≥2fc时,才有x(n)=IDFT[X(k)]=x(n)可有频域采样X(k)恢复原序列x(n),否则产生时域混叠失真现象。


第二篇:基于MATLAB实现对语音信号频谱分析


基于MATLAB实现对语音信号频谱分析

基于MATLAB实现对语音信号频谱分析

基于MATLAB实现对语音信号频谱分析

基于MATLAB实现对语音信号频谱分析

更多相关推荐:
实验三:用FFT对信号作频谱分析_实验报告

实验三用FFT对信号作频谱分析实验报告一实验目的与要求学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT二实验原理用FFT对信号作频分析是学习数字信号处理的重要...

数字信号《用FFT对信号作频谱分析》实验完整模版

计算机科学与工程学院数字信号处理实验报告3计算机科学与工程学院数字信号处理实验报告2计算机科学与工程学院数字信号处理实验报告3计算机科学与工程学院数字信号处理实验报告4计算机科学与工程学院数字信号处理实验报告5...

用FFT对信号作频谱分析实验报告

实验一报告用FFT对信号作频谱分析一实验目的学习用FFT对连续信号和时域离散信号进行频谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT二实验内容1对以下序列进行频谱分析xnR4nn1x2n8n04n...

用FFT对信号作频谱分析_实验报告

用FFT对信号作频谱分析实验报告1实验目的与原理1进一步加深DFT算法原理和基本性质的理解因为FFT只是DFT的一种快速算法所以FFT的运算结果必然满足DFT的基本性质2熟悉FFT算法原理和FFT子程序的应用3...

实验三 用FFT对信号作频谱分析

实验三用FFT对信号作频谱分析1实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT2实验原理用FFT对信号作频谱分析是学习数字信号处理的重要内容经常需要...

实验三:用FFT对信号作频谱分析_实验报告

实验三用FFT对信号作频谱分析实验报告一实验目的与要求学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT二实验原理用FFT对信号作频分析是学习数字信号处理的重要...

实验3 用FFT对信号作频谱分析

实验三用FFT对信号作频谱分析1031实验指导1实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT2实验原理用FFT对信号作频谱分析是学习数字信号处理的...

实验三 用FFT对信号作频谱分析

实验三用FFT对信号作频谱分析一实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT二实验内容1对以下序列进行谱分析程序x1nones14M8xa1M2x...

实验四 FFT信号的频谱分析实验Microsoft Word 文档

clearallT111000n0641000T1A444128a50sqrt20w050sqrt20pixn1AexpanT1sinw0nT1Xk1fftxn11024subplot322stemnxn139...

实验二 用FFT对信号作频谱分析

实验二用FFT对信号作频谱分析一实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT二实验步骤及内容1对以下序列进行谱分析x1nR4nn10n3x2n8n...

实验三:用FFT对信号作频谱分析

实验三用FFT对信号做频谱分析12通信3班崔文磊20xx41302321一实验目的学习用FFT对连续信号和时域离散信号进行频谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT二实验原理用FFT对信号作...

实验二 用FFT对信号作频谱分析

实验二用FFT对信号作频谱分析1实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT2实验原理与方法用FFT对信号作频谱分析是学习数字信号处理的重要内容经...

用fft对信号作频谱分析实验报告(12篇)