matlab的⼦程序和主程序,MATLAB主程序.doc
MATLAB主程序MATLAB主程序
北京信息科技⼤学硕⼠研究⽣数字信号处理课程仿真⼤作业
内容仿真结果报告⽂字和分析格式总分分数
实验报告
学科 数字信号处理
姓名 王夏⾬
班级 研1407
学号 2014020231
2014 年 12 ⽉ 1 ⽇
⼀、课程名称:数字信号处理实验⽬的加深对FFT(DFT)算法的理解;
熟悉周期采样的⽅法;
熟悉应⽤FFT对时域离散信号进⾏频谱分析的⽅法;
学习MATLAB软件的编程与仿真
1. ⾃编程序得到⼀个⽅波信号(f=50Hz,幅值为1,,各半个周期),对其⼀个周期分别采样256点和1024点,利⽤光盘所附的基于Matlab 语⾔所编FFT程序或⾃编FFT程序 做谐波分析,并与理论分析结果对照(注意FFT计算频谱与谐波分析的区别)。
2. 对三⾓波信号(可以由⽅波信号求导得到)重复作业⼀的各项要求。
3. 对⼀、⼆信号叠加⼀个⽩噪声信号(均值为零,⽅差为0.2)所构成的随机信号⽤FFT进⾏频谱分析
对以上结果进⾏讨论
四、实验环境
计算机⼀台、Matlab软件
五、算法原理
1、快速傅⽴叶变换(FFT)算法原理
对N点序列,其离散傅⾥叶变换(DFT)对定义为:
易知需要进⾏次乘法及次复数加法计算。
利⽤快速傅⾥叶变换可以使得上⾯的乘法计算量下降为次,加算量明显下降。主要公式如下:
2、FFT频谱分析
幅度谱:;
相位谱:。、
A=1;%幅值为1
f=50;%频率为50Hz
T=1/f;%周期为0.02
rh0=50;%占空⽐为50%
%绘制⽅波信号
t=0:0.00001:0.1;%绘制范围
y=square(2*pi*f*t,rh0);%⽅波产⽣plot(t,y,'g');
figure(1);
title('⽅波信号');
axis([0 0.1 -1.5 1.5]);
grid on;
N1=256;%周期256采样点
N2=1024;%周期1024采样点
%周期256采样点
n1=0:N1-1;
matlab傅里叶变换的幅度谱和相位谱xn1=square(2*pi*f*(T*n1/N1),rh0); figure(2);
stem(n1,xn1,'g','o');
title('周期采样256点');
axis([-5 N1+5 -1.2 1.2]);
grid on;
%采样点周期1024
n2=0:N2-1;
xn2=square(2*pi*f*(T*n2/N2),rh0); figure(3);
stem(n2,xn2,'g','o');
title('周期采样1024点');
axis([-20 N2+20 -1.2 1.2]);
grid on;
%周期采样256点谐波分析
xk1=fft(xn1);
yk1=xk1/N1;%谐波分析
figure(4);
stem(n1,abs(yk1),'g');
title('周期采样256点谐波分析');
axis([-5 N1+5 -0.1 0.8]);
grid on;
%周期采样1024点谐波分析
xk2=fft(xn2);
yk2=xk2/N2;%谐波分析
figure(5);
stem(n2,abs(yk2),'g');
title('周期采样1024点谐波分析');
axis([-20 N2+20 -0.1 0.8]);
grid on;
三⾓波
>> A=1;%幅值为1
f=50;%频率为50Hz
T=1/f;%周期0.02
p=0.5;%峰值位置
%三⾓波信号绘制
t=0:0.00001:0.1;%图形范围
y=sawtooth(2*pi*f*t,p);
y=(A/2)*(y+1);
plot(t,y,'r');
figure(1);
title('三⾓波信号');
axis([0 0.1 -0.2*A A+0.2*A]);
grid on;
%三⾓波信号采样
N1=256;%周期采样256点
N2=1024;%周期采样1024点
%采样周期256点
n1=0:N1-1;
xn1=sawtooth(2*pi*f*(T*n1/N1),p); xn1=(A/2)*(xn1+1);
figure(2);
stem(n1,xn1,'r','*');
title('周期采样256点');
axis([-5 N1+5 -0.2*A A+0.2*A]); grid on;
%

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。