实 验 报 告
课程名称 信号与系统课程设计实验 实验项目 傅里叶变换实验
解微分方程实验 离散时间系统函数实验 码分复用
实验仪器 计算机,MATLAB软件
系 别 ___ 光电学院_________ 专 业 ____ 电子信息工程_______ 班级/学号__电信0905 学生姓名 ____ ____ 实验日期 2011.6 成 绩 _______________________ 指导教师 _____ 焦老师 _______
一.实验目的:
“信号与系统”是一门重要的专业基础课,MATLAB作为信号处理强有力的计算和分析工具是电子信息工程技术人员常用的重要工具之一。本课程设计基于MATLAB完成信号与系统综合设计实验,以提高学生的综合应用知识能力为目标,是“信号与系统”课程在实践教学环节上的必要补充。通过课设综合设计实验,激发学生理论课程学习兴趣,提高分析问题和解决问题的能力。
二、 课设内容:
1、傅里叶变换分析:
1). 周期信号的谱分析,要求任意给定单频周期信号,能够准确计算出其幅度谱和相位谱,并画出图形,要求正确显示频率。 源程序:
clc;clear;close all; %清屏 f=110; %信号频率 fs=10*f; %采样频率 N=fs/f; n=0:N;
subplot(3,1,1);
x=cos(2*pi*f*n/fs); %建立余弦波形 plot(n,x);
x=fft(x); %傅里叶变换 x=fftshift(x); %移位 subplot(3,1,2); stem((n-N/2)/N*f,abs(x));%离散型输出频谱图 ylabel('Cn的幅度'); subplot(3,1,3);
stem((n-N/2)/N*f,angle(x));%相谱图 ylabel('Cn的相位');
xlabel('\\omega/\\omega0'); 截图:
10-16012345678910Cn的幅度420-605-40-200204060Cn的相位0-5-60-40-200204060?/?0
2). 非周期信号的频谱分析,要求分析语音信号的幅度谱和相位谱,并画出图形。 n=[0:N-1];
[ss,fs,bits]=wavread('E:\\matlab1\\work\\suyan(1).wav'); %加载文件 s=ss(1:N);
f1=fft(s);%傅里叶变换
f=n/N*fs;% 把点数转换成频率 subplot(3,1,1); plot(ss);
title('原信号'); subplot(3,1,2) plot(f,abs(f1)) title('幅度谱'); xlabel('频率/Hz'); subplot(3,1,3) plot(f,angle(f1)) title('相位谱'); xlabel('频率/Hz'); sp1=max(abs(s)); sound(s/sp1,fs);
原信号10-101234幅度谱5678x 1095100005000000.511.522.5频率/Hz相位谱50-533.544.5x 10400.511.522.5频率/Hz33.544.5x 104
3)、对于方波,设计程序计算其傅里叶级数系数,仿真吉伯斯现象。
clear,clc,close all;%清屏 N=500000; t=-2:0.001:2; T=1;
ft1=rectpuls(t,T); ft2=rectpuls(t-2,T); ft3=rectpuls(t+2,T); ft=ft1+ft2+ft3;
N=input('Number of harmonics= '); c0=0.5;
xN=c0*ones(1,length(t)); for n=1:N
xN=xN+cos(pi*n*t)*sinc(n/2); %正弦分量为零 end
plot(t,ft,t,xN);
Number of harmonics= 5 Number of harmonics= 50
1.21.2110.80.80.60.60.40.40.20.200-0.2-2-1.5-1-0.500.511.52-0.2-2-1.5-1-0.500.511.52
Number of harmonics= 10 Number of harmonics= 500
1.21.2110.80.80.60.60.40.40.20.200-0.2-2-1.5-1-0.500.511.52-0.2-2-1.5-1-0.500.511.52
2、连续时间系统分析:
1)、自行设计一个有初始条件的微分方程,至少二阶。 2)、解出其零输入解,并画出图形,与手工计算相比较。 3)、解出其单位冲激响应,并画出图形,与手工计算相比较。 4)、设定某一激励信号,用卷积方法解出其零状态响应,并画出图形,与手工计算相比较。
5)、计算系统的幅频响应和相频响应,并画出图形。 基本题2:解微分方程,习题2-6 clear all, close all, clc;
%b=[1,3],a=[1 3 2],初始状态r(0-)=1,r'(0-)=2 %先由系统函数转成状态方程及输出方程 源程序: A = [0,1;-2,-3]; B = [0;1]; C = [3 1]; D = [0];
b=[1,3];a=[1 3 2]; num=[1 3]; den=[1 3 2];
sys = ss(A,B,C,D);%状态方程及输出方程四个矩阵(建立系统描述) x0 = [-1,4]; %状态变量初始值,要从初始状态r(0-)=1,r'(0-)=2 计算而得 t = [0:0.01:10]';
e = 1*(t>=0);%单位阶跃响应 ezi = 0*(t>=0);%单位冲击响应
rzs = lsim(sys,e,t); %零状态响应 rzi = lsim(sys,ezi,t,x0); %零输入响应 rf = lsim(sys,e,t,x0); %完全响应 h=impulse(sys,t); %冲击响应 [H,w]=freqs(num,den); figure(2);
plot(w/pi,abs(H)); ylabel('幅频') figure(3);
plot(w/pi,angle(H)); ylabel('相频')
%验证,与手工计算比较
rzs_manul = -2*exp(-t)+0.5*exp(-2*t)+1.5; %零状态响应手工计算值 error_rzs = rzs-rzs_manul;
rzi_manul = 4*exp(-t)-3*exp(-2*t); %零输入响应手工计算值 error_rzi = rzi-rzi_manul;
rf_manul = 2*exp(-t)-2.5*exp(-2*t)+1.5; error_rf = rf-rf_manul;
h_manul=-1*exp(-2*t)+2*exp(-t); error_h = h-h_manul;