1、1数字信号处理设计报告书课题名称应用 MATLAB 对信号进行频谱分析及滤波姓 名 何 晨学 号 20076089 院 、 系 、部电气系专 业 电子信息工程指导教师 刘鑫淼2007 级数字信号处理课程设计 22010年 6 月 27日一、 设计任务及要求:1、用 Matlab 产生正弦波,矩形波,并显示各自的时域波形图;2、进行 FFT 变换,显示各自频谱图,其中采样率、频率、数据长度自选,要求注明;3、绘制三种信号的均方根图谱;4、用 IFFT 回复信号,并显示恢复的正弦信号时域波形图。指导教师签名: 2010 年 月 日 二、指导教师评语:指导教师签名: 2010 年 月 日 三、成绩指
2、导教师签名: 2010 年 月 日 3应用 MATLAB 对信号进行频谱分析及滤波20076089 何晨一、 设计目的要求学生会用 MATLAB 语言进行编程,绘出所求波形,并且运用 FFT 求对连续信号进行分析。二、 设计要求1、用 Matlab 产生正弦波,矩形波,并显示各自的时域波形图;2、进行 FFT 变换,显示各自频谱图,其中采样率、频率、数据长度自选,要求注明;3、绘制三种信号的均方根图谱;4、用 IFFT 回复信号,并显示恢复的正弦信号时域波形图。三、系统原理用 FFT 对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行频谱分析的信号是模拟信号和时域离散信号。频谱分辨率直
3、接和 FFT 的变换区间N 有关,因为 FFT 能够实现频率分辨率是 2/N。x(n)是一个长度为 M 的有限长序列,则 x(n)的 N 点离散傅立叶变换为:X(k)=DFTx(n)= ,k=0,1,.,N-1knNWnx10)( NjeNW2逆变换:x(n) =IDFTX(k)= ,k=0,1,.,N-1knNXn10)(但 FFT 是一种比 DFT 更加快速的一种算法,提高了 DFT 的运算速率,为数字信号处理技术应用于各种信号处理创造了条件,大大提高了数字信号处理技术的发展。本实验就是采用 FFT,IFFT 对信号进行谱分析。4四、程序设计fs=input(please input th
4、e 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
5、: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)5sub
6、plot(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:l
7、ength(zifft)-1/fs;subplot(212);plot(ti1,magz);title(通过IFFT转换的方波信号波形);grid;五、仿真结果及分析由图可以看出正弦波周期T=0.01,采样点N=1024.程序为:x=sin(2*pi*f*t);6figure(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变换程
8、序: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
9、;7正弦信号、方波信号功率谱程序: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;8对两个信号进行恢复程序: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(通过IFF
10、T转换的正弦信号波形);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 只有当频率采样点 NM,采样频率 fs2fc 时,才有 x
11、(n)=IDFTX(k)=x(n)可有频域采样 X(k)恢复原序列 x(n),否则产生时域混叠失真现象。本次设计对我的启发很大也更见锻炼了我们面对困难的心态,对今后的学习工作大有裨益。七、参考文献:1 丁玉美,高西全.数字信号处理.2 版.西安:西安电子科技大学出版社,20012 美 M.H. 海因斯 著张建华等 译.数字信号处理.北京:科学出版社,20023 张葛祥,李 娜. MATLAB 仿真技术与应用.北京:清华大学出版社,20034 楼顺天,李博菡.基于 MATLAB 的系统分析与设计.西安:西安电子科技大学出版社,19985.王宏MATLAB6.5 及其在信号处理中的应用 .北京清华大学出版社,2004