好文档 - 专业文书写作范文服务资料分享网站

利用Matlab绘制正弦信号的频谱图并做相关分析.doc

天下 分享 时间: 加入收藏 我要投稿 点赞

利用Matlab绘制正弦信号的频谱图并做相关分析

一、作业要求:

1、信号可变(信号的赋值、相位、频率可变); 2、采样频率fs可变;

3、加各种不同的窗函数并分析其影响; 4、频谱校正; 5、频谱细化。

二、采用matlab编写如下程序:

clear; clf;

fs=100;N=1024; %采样频率和数据点数 A=20;B=30;C=0.38;

n=0:N-1;t=n/fs; %时间序列 x=A*sin(2*pi*B*t+C); %信号

y=fft(x,N); %对信号进行傅里叶变换 yy=abs(y); %求得傅里叶变换后的振幅 yy=yy*2/N; %幅值处理 f=n*fs/N; %频率序列

subplot(3,3,1),plot(f,yy); %绘出随频率变化的振幅 xlabel('频率/\\itHz'); ylabel('振幅');

title('图1:fs=100,N=1024'); grid on;

%两种信号叠加,

x=A*sin(2*pi*B*t+C)+2*A*sin(2*pi*1.5*B*t+2.5*C); %信号 y=fft(x,N); %对信号进行傅里叶变换 yy=abs(y); %求得傅里叶变换后的振幅 yy=yy*2/N; %幅值处理 f=n*fs/N; %频率序列

subplot(3,3,2),plot(f,yy); %绘出随频率变化的振幅 xlabel('频率/\\itHz'); ylabel('振幅');

title('图2:fs=100,N=1024,两种信号叠加'); grid on;

%加噪声之后的图像

x=A*sin(2*pi*B*t+C)+28*randn(size(t)); y=fft(x,N); yy=abs(y);

yy=yy*2/N; %幅值处理

subplot(3,3,3),plot(f(1:N/2.56),yy(1:N/2.56)); xlabel('频率/\\itHz'); ylabel('振幅');

title('图3:fs=100,N=1024混入噪声');

精品文档

grid on;

%改变采样点数N=128 N=128;

n=0:N-1;t=n/fs; %时间序列 x=A*sin(2*pi*B*t+C); %信号

y=fft(x,N); %对信号进行傅里叶变换 yy=abs(y); %求得傅里叶变换后的振幅 yy=yy*2/N; %幅值处理 f=n*fs/N; %频率序列

subplot(3,3,4),plot(f(1:N/2.56),yy(1:N/2.56)); %绘出随频率变化的振幅 xlabel('频率/\\itHz'); ylabel('振幅');

title('图4:fs=100,N=128'); grid on;

%改变采样频率为200Hz时的频谱 fs=400;N=1024;n=0:N-1;t=n/fs; x=A*sin(2*pi*B*t+C); %信号

y=fft(x,N); %对信号进行快速傅里叶变换 yy=abs(y); %求取傅里叶变换的振幅 yy=yy*2/N; %幅值处理 f=n*fs/N;

subplot(3,3,5),plot(f(1:N/2.56),yy(1:N/2.56)); %绘出随频率变化的振幅 xlabel('频率/\\itHz'); ylabel('振幅');

title('图5:fs=400,N=1024'); grid on; %加三角窗函数

fs=100;N=1024; %采样频率和数据点数 n=0:N-1;t=n/fs; %时间序列 x=A*sin(2*pi*B*t+C); %信号 window=triang(N);%生成三角窗函数 x=x.*window';%加窗函数

y=fft(x,N); %对信号进行傅里叶变换 yy=abs(y); %求得傅里叶变换后的振幅 yy=yy*2/N; %幅值处理 f=n*fs/N; %频率序列

subplot(3,3,6),plot(f(1:N/2.56),2*yy(1:N/2.56)); %绘出随频率变化的振幅 xlabel('频率/\\itHz'); ylabel('振幅');

title('图6:fs=100,N=1024,加三角窗函数'); grid on;

%加海明窗函数后的频谱 fs=100;N=1024;n=0:N-1;t=n/fs; x=A*sin(2*pi*B*t+C); %信号

window=hamming(N);%生成海明窗函数 x=x.*window';%加窗函数

精品文档

y=fft(x,N); %对信号进行快速傅里叶变换 yy=abs(y); %求取傅里叶变换的振幅 yy=yy*2/N; %幅值处理 f=n*fs/N;

subplot(3,3,7),plot(f(1:N/2.56),1.852*yy(1:N/2.56)); %绘出随频率变化的振幅 xlabel('频率/\\itHz'); ylabel('振幅');

title('图7:fs=100,N=1024,加海明窗函数'); grid on;

%加汉宁窗函数后的频谱 fs=100;N=1024;n=0:N-1;t=n/fs; x=A*sin(2*pi*B*t+C); %信号

window=hanning(N);%生成汉宁窗函数 x=x.*window';%加窗函数

y=fft(x,N); %对信号进行快速傅里叶变换 yy=abs(y); %求取傅里叶变换的振幅 yy=yy*2/N; %幅值处理 f=n*fs/N;

subplot(3,3,8),plot(f(1:N/2.56),2*yy(1:N/2.56)); %绘出随频率变化的振幅 xlabel('频率/\\itHz'); ylabel('振幅');

title('图8:fs=100,N=1024,加汉宁窗函数'); grid on;

三、运行结果如下:

精品文档

利用Matlab绘制正弦信号的频谱图并做相关分析.doc

利用Matlab绘制正弦信号的频谱图并做相关分析一、作业要求:1、信号可变(信号的赋值、相位、频率可变);2、采样频率fs可变;3、加各种不同的窗函数并分析其影响;4、频谱校正;5、频谱细化。二、采用matlab编写如下程序:clear;clf;fs=100;N=1024;
推荐度:
点击下载文档文档为doc格式
0lwhs42wcr83hrt8bf1m52amw9lhy70084b
领取福利

微信扫码领取福利

微信扫码分享