找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3059|回复: 0
打印 上一主题 下一主题
收起左侧

信号与线性系统综合实验

[复制链接]
跳转到指定楼层
楼主

一、实验目的

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)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表