南京信息工程大学 实验(实习)报告
实验(实习)名称 数字信号处理 实验(实习)日期 得分 指导老师
学院 电信院 专业 电子信息工程 年级 2020 班次 姓名 学号 20208327
1.实验目的
2.实验内容
(1)为一正弦信号,长度为25,求其希尔伯特变换;
(2)是两个正弦信号及其白噪声的叠加,试用FFT对其做频谱分析,并对其补零分析2N、3N长度的FFT效果。
(1)为一正弦信号,长度为25,求其希尔伯特变换;
- clc;clear;
- ts = 0.001;
- N = 300;
- f = 50;
- k = 0:N-1;
- t = k*ts;
- y = sin (2* pi *f*t);
- yh = hilbert(y);
- yi = imag (yh);
- figure
- subplot (211)
- plot (t, y)
- title ( '原sin信号' )
- subplot (212)
- plot (t, yi)
- title ( 'Hilbert变换后信号' )
- ylim ([-1,1])

(2)是两个正弦信号及其白噪声的叠加,试用FFT对其做频谱分析,并对其补零分析2N、3N长度的FFT效果。
- clear;clc;
- fs=200;
- f1=30; f2=60;
- N=300;
- n=1:N;
- t=(n-1)/fs;
- x=sin(2*pi*f1*t)+sin(2*pi*f2*t)+randn(1,N);
-
- X1=fft(x);
- freq1=(0:N/2)*fs/N;
- X1_abs=abs(X1(1:N/2+1))*2/N;
-
- L=2*N;
- X2=fft(x,L);
- freq2=(0:L/2)*fs/L;
- X2_abs=abs(X2(1:L/2+1))*2/N;
-
- L1=3*N;
- X3=fft(x,L1);
- freq3=(0:L1/2)*fs/L1;
- X3_abs=abs(X3(1:L1/2+1))*2/N;
-
- subplot (411); plot(t,x);
- title('原始信号')
- subplot(412); plot(freq1,X1_abs);
- ylim([0 1.5]);
- title('补零前FFT谱图')
- subplot(413); plot(freq2,X2_abs);
- ylim([0 1.5]);
- title('补2N零后FFT谱图')
- subplot(414); plot(freq3,X3_abs);
- ylim([0 1.5]);
- title('补3N零后FFT谱图')

4.实验小结
(1)本节实验课学习了如何用MATLAB进行信号的希尔伯特变换,对信号做FFT运算、并对其进行频谱分析,以及如何进行补零分析。
(2)正弦信号进行希尔伯特变换后即为余弦信号,但因为只采了25个点的数据,所以转换后的信号波形失真较严重,多采一些点后波形明显有改观,如图1所示。
- clear;clc;
- fs=200;
- f1=30; f2=60;
- N=300;
- n=1:N;
- t=(n-1)/fs;
- x=sin(2*pi*f1*t)+sin(2*pi*f2*t)+randn(1,N);
-
- X1=fft(x);
- freq1=(0:N/2)*fs/N;
- X1_abs=abs(X1(1:N/2+1))*2/N;
-
- L=2*N;
- X2=fft(x,L);
- freq2=(0:L/2)*fs/L;
- X2_abs=abs(X2(1:L/2+1))*2/N;
-
- L1=3*N;
- X3=fft(x,L1);
- freq3=(0:L1/2)*fs/L1;
- X3_abs=abs(X3(1:L1/2+1))*2/N;
-
- subplot (411); plot(t,x);
- title('原始信号')
- subplot(412); plot(freq1,X1_abs);
- ylim([0 1.5]);
- title('补零前FFT谱图')
- subplot(413); plot(freq2,X2_abs);
- ylim([0 1.5]);
- title('补2N零后FFT谱图')
- subplot(414); plot(freq3,X3_abs);
- ylim([0 1.5]);
- title('补3N零后FFT谱图')
图1