专业知识整理分享
利用
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
混入噪声
');
|