MATLAB实现希尔伯特变换以及FFT补零分析
创始人
2024-03-19 14:47:53
0

南京信息工程大学  实验(实习)报告

实验(实习)名称  数字信号处理  实验(实习)日期            得分            指导老师                 

学院 电信院 专业 电子信息工程 年级 2020   班次              姓名                  学号 20208327     

1.实验目的

  1. 掌握利用MATLAB求信号的希尔伯特变换;
  2. 掌握利用MATLAB进行信号的FFT运算,对其进行频谱分析;
  3. 掌握利用MATLAB对信号进行补零分析。

2.实验内容

(1)为一正弦信号,长度为25,求其希尔伯特变换;

(2)是两个正弦信号及其白噪声的叠加,试用FFT对其做频谱分析,并对其补零分析2N、3N长度的FFT效果。

  1. 实验步骤和实验结果

(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

 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...