应用 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转换的正弦信号波形');zif...