MATLAB实验.docx
《MATLAB实验.docx》由会员分享,可在线阅读,更多相关《MATLAB实验.docx(16页珍藏版)》请在冰豆网上搜索。
MATLAB实验
1、序列的基本运算
1.1、产生余弦信号
及带噪信号
0<=n<=50(噪声采用randn函数)
余弦信号:
f0=0.02;
w0=2*pi*f0;
n=0:
1:
50;
x=cos(w0*n);
subplot(2,2,2);stem(n,x);xlabel('n');ylabel('x');
带噪信号:
f0=0.02;
w0=2*pi*f0;
n=0:
0.1:
50;
x=cos(w0*n);
y=cos(w0*n)+0.1*randn(size(n));
subplot(2,2,2);stem(n,y);xlabel('n');ylabel('y');
结果:
1.2、已知
,
求两个序列的和、乘积、序列x1的移位序列(右移2位),序列x2的翻褶序列,画出原序列及运算结果图。
程序:
n=1:
5;
x1=[1,3,5,7,9];
x2=[2,4,6,8,10];
y=x1+x2;
z=x1.*x2;
subplot(411);stem(n,x1);xlabel('n');ylabel('x_{1}(n)');
subplot(412);stem(n,x2);xlabel('n');ylabel('x_{2}(n)');
subplot(413);stem(n,y);xlabel('n');ylabel('x_{1}(n)+x_{2}(n)');
subplot(414);stem(n,z);xlabel('n');ylabel('x_{1}(n)×x_{2}(n)');
结果:
移位:
先建立M文件为function[y,n]=sigshift(x,m,n0)
n=m+n0;
y=x;
end
程序:
n=1:
5;
x1=[1,3,5,7,9];
[y,n]=sigshift(x1,n,2);
subplot(2,2,2);stem(n,y);xlabel('n');ylabel('y');
结果:
翻褶:
先建立M文件为function[y,n]=sigfold(x,n)
y=fliplr(x);
n=-fliplr(n);
end
程序:
n=2:
6;
x2=2*n-2;
[y,n]=sigfold(x2,n);
subplot(2,2,2);stem(n,y);xlabel('n');ylabel('y');
结果:
2.序列的福利叶变换
2.1、已知序列
。
试求它的傅里叶变换,并且画出其幅度、相角、实部和虚部的波形,并分析其含有的频率分量主要位于高频区还是低频区。
程序:
w=[0:
1:
500]*pi/500
X=exp(j*w)./(exp(j*w)-0.5*ones(1,501))
magX=abs(X)
angX=angle(X)
realX=real(X)
imagX=imag(X)
subplot(2,2,1)
plot(w/pi,magX)
grid
xlabel('frequencyinpiunits')
title('MagnitudePart')
ylabel('Magnitude')
subplot(2,2,3)
plot(w/pi,angX)
grid
xlabel('frequencyinpiunits')
title('AnglePart')
ylabel('Radians')
subplot(2,2,2)
plot(w/pi,realX)
grid
xlabel('frequencyinpiunits')
title('RealPart')
ylabel('Real')
subplot(2,2,4)
plot(w/pi,imagX)
grid
xlabel('frequencyinpiunits')
title('ImaginaryPart')
ylabel('Imaginary')
2.2、令
,求其傅立叶变换
。
分别用
和
对其进行采样,求出离散时间傅立叶变换
,写出程序,并画出相应频谱,分析结果的不同及原因。
程序:
Dt=0.00005;%步长为0.00005s
t=-0.005:
Dt:
0.005;
xa=exp(-1000*abs(t));%取时间从-0.005s到0.005s这段模拟信号
Wmax=2*pi*2000;%信号最高频率为2
*2000
K=500;%频域正半轴取500个点进行计算
k=0:
1:
K;
W=k*Wmax/K;%
求模拟角频率
Xa=xa*exp(-j*t'*W)*Dt;%计算连续时间傅立叶变换(利用矩阵运算实现)
Xa=real(Xa);%取实部
W=[-fliplr(W),W(2:
501)];%将角频率范围扩展为从-到+
Xa=[fliplr(Xa),Xa(2:
501)];
subplot(2,2,1);
plot(t*1000,xa);%画出模拟信号,横坐标为时间(毫秒),纵坐标为幅度
xlabel('time(millisecond)');ylabel('xa(t)');
title('anologsignal');
subplot(2,2,2);
plot(W/(2*pi*1000),Xa*1000);%画出连续时间傅立叶变换
xlabel('frequency(kHZ)');%横坐标为频率(kHz)
ylabel('xa(jw)');%纵坐标为幅度
title('FT');
结果:
%下面为采样频率5kHz时的程序
T=0.0002;%采样间隔为
n=-25:
1:
25;
x=exp(-1000*abs(n*T));%离散时间信号
K=500;k=0:
1:
K;w=pi*k/K;%w为数字频率
X=x*exp(-j*n'*w);%计算离散时间傅立叶变换(序列的傅立叶变换)
X=real(X);
w=[-fliplr(w),w(2:
K+1)];
X=[fliplr(X),X(2:
K+1)];
subplot(2,2,3);
stem(n*T*1000,x);%画出采样信号(离散时间信号)
xlabel('time(millisecond)');
ylabel('x1(n)');
title('discretesignal');
subplot(2,2,4);
plot(w/pi,X);%画出离散时间傅立叶变换
xlabel('frequency(radian)');%横坐标为弧度
ylabel('x1(jw)');title('DTFT');
结果:
3、序列的傅里叶变换性质分析
3.1、已知序列
,
,求其傅里叶变换,并讨论其傅里叶变换的周期性和对称性。
程序:
n=0:
10
x=(0.9*exp(j*pi/3)).^n
k=-200:
200;
w=[0:
800]*4*pi/800;
X=x*exp(-j*(n'*w));
magX=abs(X)
angX=angle(X)
subplot(2,1,1)
plot(w/pi,magX)
grid
xlabel('frequencyinpiunits')
ylabel('/X/')
title('MagnitudePart')
subplot(2,1,2)
plot(w/pi,angX/pi)
grid
xlabel('frequencyinpiunits')
ylabel('Radians/pi')
title('AnglePart')
结果:
3.2、已知序列
,
,求其傅里叶变换,并讨论其傅里叶变换的周期性和对称性。
程序:
n=-5:
5
x=(-0.9).^n
k=-200:
200
w=[0:
800]*4*pi/800;
X=x*exp(-j*(n'*w));
magX=abs(X)
angX=angle(X)
subplot(2,1,1)
plot(w/pi,magX)
grid
xlabel('frequencyinpiunits')
ylabel('/X/')
title('MagnitudePart')
subplot(2,1,2)
plot(w/pi,angX/pi)
grid
xlabel('frequencyinpiunits')
ylabel('Radians/pi')
title('AnglePart')
结果:
3.3、编写程序验证序列傅里叶变换频移性质,时域卷积定理(时域卷积后的频域特性)。
(所需信号自行选择)
频移性质:
w=[0:
800]*4*pi/800;
w0=0.4*pi;D=10;
num1=[123456789];L=length(num1);
h1=freqz(num1,1,w);
n=0:
L-1;
num2=exp(w0*i*n).*num1;
h2=freqz(num2,1,w);
subplot(2,2,1);plot(w/pi,abs(h1));grid
subplot(2,2,2);plot(w/pi,abs(h2));grid
subplot(2,2,3);plot(w/pi,angle(h1));grid
subplot(2,2,4);plot(w/pi,angle(h2));grid
结果:
时域卷积定理:
w=[0:
800]*4*pi/800;
x1=[1357911131517];
x2=[1-23-21];
y=conv(x1,x2);
h1=freqz(x1,1,w);
h2=freqz(x2,1,w);
hp=h1.*h2;
h3=freqz(y,1,w);
subplot(2,2,1);plot(w/pi,abs(hp));grid
subplot(2,2,2);plot(w/pi,abs(h3));grid
subplot(2,2,3);plot(w/pi,angle(hp));grid
subplot(2,2,4);plot(w/pi,angle(h3));grid
结果:
4、时域差分方程的求解
4.1求解差分方程y(n)+a1y(n-1)+a2y(n-2)=b0x(n)+b1x(n-1)的零状态响应和全响应。
已知X(n)为单位取样序列,y(-1)=1,y(-2)=2,a1=0.5,a2=0.06,b0=2,b1=3。
程序:
xn=[1zeros(1,20)]
B=[2,3]
A=[1,0.5,0.06]
ys=[1,2]
xi=filtic(B,A,ys)
yn1=filter(B,A,xn)
yn2=filter(B,A,xn,xi)
subplot(2,1,1)
n1=0:
length(yn1)-1
stem(n1,yn1,'.')
axis([0,21,-3,3])
subplot(2,1,2)
n2=0:
length(yn2)-1
stem(n2,yn2,'.')
结果图形:
上图为零状态响应、下图为全响应。
5、离散系统的Z域分析
5.1、利用系统函数
分析系统的稳定性。
假设系统函数如下式:
,试判断系统是否稳定。
程序:
num=[16-2];
den=[3-3.981.172.3418-1.5147];
p=roots(den);
[p,z]=pzmap(num,den);
pzmap(num,den);
结果:
结果分析:
如果系统是因果系统,函数的收敛域包含单位圆| z | = 1,则系统是稳定的。
如果是非因果系统,则系统不稳定。
5.2、已知线性时不变系统的系统函数
,编写程序求其单位取样响应,频率响应及系统零极点,并画出相应图形。
程序:
num=[0.10.30];
den=[1-0.8-0.12];
figure
(1)
zplane(num,den);
figure
(2)
w=-pi:
pi/100:
pi;
H=freqz(num,den,w);
subplot(211),plot(w,abs(H));
xlabel(‘\w’);ylabel(‘|H(e^{j\w})|’);
subplot(212),plot(w,180/pi*unwrap(angle(H)));
%unwrap函数使相位在180度不会产生不连续点
xlabel(‘\w’);ylabel(‘arg[H(e^{j\w})]’);
结果:
6、创新训练拓展内容
刘老师,这部分内容我们还没做,觉得可能做不出来。
我们先把前边的给您发过去,您先看看是否满意。