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

上传人:b****8 文档编号:28435546 上传时间:2023-07-13 格式:DOCX 页数:8 大小:155.54KB
下载 相关 举报
应用MATLAB对信号进行频谱分析及滤波.docx_第1页
第1页 / 共8页
应用MATLAB对信号进行频谱分析及滤波.docx_第2页
第2页 / 共8页
应用MATLAB对信号进行频谱分析及滤波.docx_第3页
第3页 / 共8页
应用MATLAB对信号进行频谱分析及滤波.docx_第4页
第4页 / 共8页
应用MATLAB对信号进行频谱分析及滤波.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

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

《应用MATLAB对信号进行频谱分析及滤波.docx》由会员分享,可在线阅读,更多相关《应用MATLAB对信号进行频谱分析及滤波.docx(8页珍藏版)》请在冰豆网上搜索。

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

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

数字信号处理课程设计报告书

课题名称

应用MATLAB对信号

进行频谱分析及滤波

姓名

李光明

学号

20106480

院、系、部

电气系

专业

电子信息工程

指导教师

刘鑫淼

 

 

2013年6月28日

 

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

20106480 李光明

一、设计目的

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

二、设计要求

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

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

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

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

三、系统原理

用FFT对信号作频谱分析是学习数字信号处理的重要内容。

经常需要进行频谱分析的信号是模拟信号和时域离散信号。

频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现频率分辨率是2π/N。

x(n)是一个长度为M的有限长序列,则x(n)的N点离散傅立叶变换为:

(3.1)

其中  

                      (3.2)

逆变换为:

 (3.3)

但FFT是一种比DFT更加快速的一种算法,提高了DFT的运算速率,为数字信号处理技术应用于各种信号处理创造了条件,大大提高了数字信号处理技术的发展。

本实验就是采用FFT,IFFT对信号进行谱分析。

四、程序设计

1、产生正弦波及方波

2、对正弦波及方波进行FFT变换并作频谱图(采样频率为1000Hz,数据长度为1024)

3、求正弦波及方波FFT变换后的功率谱(数据长度为1024)

4、用IFFT恢复原始信号(采样频率为1000Hz)

程序如下:

fs=input('请设定采样频率:

');%设定采样频率

N=input('请设定数据长度:

');%设定数据长度

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(60*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;

五、仿真结果及分析

图5-1 正弦及方波信号波形.

图5-2 FFT变换后的正弦及方波信号幅频谱图

图5-3 正弦及方波信号功率谱图

图5-4 采样频率为1000Hz时IFFT还原后的正弦及方波信号波形

图5-5采样频率为200Hz时IFFT还原后的正弦及方波号信波形

运用MATLAB可以绘制出当图5-1的周期为0.01s频率为1000Hz的正弦信号和占空比60%的方波信号,以及图5-2、图5-3的幅频谱图和功率谱图,其中正弦信号在频率为100HZ和900HZ时功率谱最大,说明信号中100HZ和900HZ的频率成分幅值最大。

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

通过图5-4、图5-5可以看出,采样频率为1000HZ大于原模拟信号100HZ的2倍,采样点取值为1024大于序列长度,所以能无失真的恢复出原信号。

六、设计总结

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

此次课程设计让我更进一步理解了快速傅里叶变换,以及傅里叶逆变换。

在设计过程中,通过自己的努力及老师同学的帮助,使我受益颇丰,对于MATLAB语言应用更加熟练了。

七、参考文献

[1]丁玉美,高西全.数字信号处理.2版.西安:

西安电子科技大学出版社,2001.

[2]胡广书.数字信号处理.北京:

清华大学出版社,1998.

[3]刘毅成,孙祥娥.数字信号处理.北京:

电子工业出版社,2004.

[4]陈亚勇等.MATLAB信号处理详解.人民邮电出版社,2001.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1