一、实验目的 1、掌握连续时间信号与系统的时域、频域综合分析方法; 2、掌握运用Matlab软件分析连续时间信号与系统的时域、频域特性; 3、通过对连续时间信号与系统的综合分析,加深对信号频谱、系统函数、系统频率特性、冲激响应、阶跃响应等概念的理解,了解系统函数零、极点分布与系统的频率特性、稳定性之间的关系。
二、实验内容 (一)基础部分 (1)设计一个2阶或3阶连续时间系统,分别用不同的实现结构(直接、级联、并联)实现所设计的系统,给出系统的S域模拟框图和信号流图,并运用Matlab软件对系统的时域、频域特性进行分析。

零极点图 function [p,q]=lxljdt(A,B)
p=roots(A) %求系统极点
q=roots(B) % 求系统零点
p=p' % 极点列向量转置为行向量
q=q' % 零点列向量转置为行向量
x=max(abs([p,q])) % 确定坐标范围
x=x+0.1
y=x
clf
hold on
axis([-x,x,-y,y]) % 确定坐标轴显示范围
axis('square')
plot([-x,x],[0,0]) % 画横坐标轴
plot([0,0],[-y,y]) % 画纵坐标轴
plot(real(p),imag(p),'x') % 画极点
plot(real(q),imag(q),'o') % 画零点
title('零极点图')
text(0.2,x-0.2,'虚轴')
text(y-0.4,0.2,'实轴')
>>a=[1 5 6];
>> b=[1];
>> lxljdt(a,b)

极点全部位于左半平面,因而系统稳定。
单位冲激响应 a=[1,5,6] b=[1] sys=tf(b,a) t=0:0.1:10; h=impulse(sys,t) plot(h);grid on;title('单位冲激波形')

单位阶跃响应 a=[1,5,6] b=[1] sys=tf(b,a) t=0:0.1:10; h=step(sys,t) plot(h);grid on;title('单位阶跃波形')

- 改变上述系统的参数,观察并分析系统的各种响应特性,观察并分析系统的零、极点的变化情况与系统稳定性的关系。
假设将系统改为Hs=1/(s^2-5s+6) 改变后 

原极点图 ①将系统改为Hs=1/(s^2-5s+6)


②将系统改为Hs=1/(s^2+1) 
③将系统改为Hs=1/(s^2+4*s+6) 
④将系统改为Hs=1/(s^2-5*s+9) 
因此,系统的稳定性与极点分布有关系,极点分布与系统函数分母的形式有关,而且极点全部位于左半开平面的时候稳定。
(3)给定一个输入激励信号,观察并分析该信号通过上述系统后输出响应的频谱的变化情况,并分析其原因。
给定输入信号 其频谱图为  
通过该系统后频谱图 
对应程序 syms s t; f=exp(-t); f1=laplace(f); h1=1/(s^2+5*s+6); ys=f1*h1; yt=ilaplace(ys) ft=yt*heaviside(t); Fw=fourier(ft); subplot(2,1,1),ezplot(abs(Fw)),grid on,title('幅度谱') phase=atan(imag(Fw)/real(Fw)); subplot(2,1,2),ezplot(phase);grid on,title('相位谱')
(1)构建一个包含若干个不同频率分量的周期连续信号(各分量频率自定)f(t),截取该信号的不同长度(注意截取长度应不小于最低频率分量的一个周期),分别用Matlab软件分析所截取信号的频谱(画出频谱图,含幅度频谱和相位频谱)。比较所截取的不同长度信号频谱的差异,同时与理论频谱进行比较,并运用所学知识,分析产生这些差异的原因。(复习频域卷积定理)
(1)截取长度为一半时
(2)截取长度为1/4时 (3)原信号频谱 对信号截取,相当于对信号乘门函数,由频域卷积定理可知,时域乘积对应频域卷积,因信号长度不同,在卷积时频谱造成一定影响,使低频分量增多。 附: clear;
t = 0 : 160/499 : 40;
T = 0.08;
f0 = 10000;
f = [10 50 100];
N = 500;
dw = 0.01;
w = -100 : dw : 100;
num = length(f);
s = zeros(1, N);
for i = 1 : num
s = s + 4 * sin(f(i)*2*pi*(1:N)/f0+pi/2);
end
subplot(411)
plot(s);
axis([1 N 1.1*min(s) 1.1*max(s)]);
grid on
r = zeros(1, N/4);
for i = 1 : num
r = r + 4 * sin(f(i)*2*pi*(1:N/4)/f0+pi/2);
end
subplot(412);
plot(r);
axis([1 N 1.1*min(s) 1.1*max(s)]);
grid on
R=r*exp(-1i*t'*w)*T;
Hm1 = abs(R);
phai1 = angle(R);
Hr1 = real(R);
Hi1 = imag(R);
subplot(413)
plot (w, Hm1);
axis([-100 100 0 100]);
grid on
subplot(414)
plot (w, phai1);
axis([-20 20 -3 3]);
grid on
(2)设计一个LTI连续系统作为滤波器,对上一步构建的信号进行滤波(滤除部分频率分量,保留另一部分频率分量)。通过在S平面分布适当的零极点来设计该滤波器的系统函数H(s),用Matlab软件分析所设计滤波器的频率响应(含幅频响应和相频响应),并画出频率响应波形。运用所学知识,分析幅频响应与零极点位置的关系。
滤波器幅频与相频特性如下系统为  对上述信号滤波后: 零极点图:
当系数改为5 1和2 1时,频谱如下 零极点图:
附: clear;
t = 0 : 160/499 : 40;
T = 0.08;
f0 = 10000;
f = [10 50 100];
N = 500;
dw = 0.01;
w1 = -100 : dw : 100;
num = length(f);
a = [5 1];
b = [2 -1];
[H, w] = freqs(b, a);
Hm = abs(H);
phai = angle(H);
Hr = real(H);
Hi = imag(H);
s = zeros(1, N);
for i = 1 : num
s = s + 4 * sin(f(i)*2*pi*(1:N)/f0+pi/2);
end
subplot(411)
plot(s);
axis([1 N 1.1*min(s) 1.1*max(s)]);
grid on
r = zeros(1, N/4);
for i = 1 : num
r = r + 4 * sin(f(i)*2*pi*(1:N/4)/f0+pi/2);
end
subplot(412);
plot(r);
axis([1 N 1.1*min(s) 1.1*max(s)]);
grid on
R=r*exp(-1i*t'*w1)*T;
Hm1 = abs(R);
phai1 = angle(R);
Hr1 = real(R);
Hi1 = imag(R);
subplot(413)
plot (conv(Hm1,Hm));
axis([0 20000 0 2500]);
grid on
subplot(414)
plot (phai1);
axis([-10 20000 -3 3]);
grid on
(三)应用设计部分 利用Matlab进行音频信号的获取与输出,并进行相应的分析,绘制信号波形及频谱图等。 (1)对于配置了声卡的多媒体计算机,Matlab可以采用命令“wavrecord”来录音,调用格式: y=wavrecord(n,Fs) n为总的取样点数,Fs为取样速率(样点/秒)。标准取样速率可设为8000,11025(默认),2250以及44100(样点/秒)。也可以设置其它频率但需要满足取样定理要求。该语句以双精度类型记录n点采样速率为Fs的单声道数字音频,y的值域在-1到1之间。 (2)使用命令sound将数字数列以设定的采样速率输出到声卡,通过声卡转化为模拟音频信号。调用格式:sound(y,Fs) 其中:y为取值在[-1,1]区间的n行1列的数字序列(单声道输出),对于立体声输出y为n行2列的数字序列;Fs为设定的取样频率,一般声卡支持Fs的频率范围为5000Hz到441000Hz。 (3)利用命令wavwrite将向量y存储为取样率为Fs的wav音频文件。 调用格式:wavwrite(y,Fs,’filename’) (4) 利用命令wavread()直接读取*.wav格式的音频文件,命令格式: [y,Fs]=wavread('filename’) (5)对于已经录制的音频文件,绘制其波形及频谱图,并分析其频谱特点。 (6)根据个人能力,可自行扩展设计内容。 % 录音录3秒钟 recObj = audiorecorder; disp('Start speaking.') recordblocking(recObj, 3);%设置录音时间 disp('End of Recording.');% 回放录音数据 play(recObj);% 获取录音数据 myRecording = getaudiodata(recObj);% 绘制录音数据波形 plot(myRecording);%存储语音信号 filename = 'E:\luyin\xinhao.wav'; audiowrite(filename,myRecording,8000);
“信号”
[y,fs]=audioread('E:\luyin\xinhao.wav'); %读取音频信息(双声道,16位,频率44100Hz) sound(y,fs); %回放该音频 Y=fft(y,4096); %进行傅立叶变换 subplot(211); plot(y); title('声音信号的波形'); subplot(212) plot(abs(Y)); title('声音信号的频谱');
以上图文的Word格式文档下载(内容和本网页上的一模一样,方便保存):
2021信号与系统综合实验.doc
(1.51 MB, 下载次数: 11)
|