数字信号处理MATLAB仿真(3)

2019-03-22 20:10

b=fir1(34,0.48,’high’,window); yfit=filter(b,1,y);

[Py,fy]=pburg(y,10,512,Fs);

[Pyfit,fyfit]=pburg(yfit,10,512,Fs);

plot(fy,10*log10(Py),’.’,fyfit, 10*log10(Pyfit)); grid on

ylabel(‘幅度(dB)’) xlabel(‘频率(Hz’)

legend(‘滤波前的线性调频信号’, ‘滤波后的线性调频信号’)

实验一:MATLAB语言上机操作实践 1.简单的数组赋值方法 (1)

a=[1 2 3;4 5 6;7 8 9] %给定数组a

a(4,2)=11 %给数组a的第四行第二列元素赋11 a(5,:)=[-13 -14 -15] %给数组a的第五行元素赋值

a(4,3)=abs(a(5,1)) %数组a的第四行第三列元素为第五行第一列元素的模 a([2,5],:)=[] %数组a的第二行和第五行取空 a/2 %对数组a各元素对应除以2

a(4,:)=[sqrt(3) (4+5)/6*2 -7] %给数组a的第四行元素赋值 (2)

B=[1+2i,3+4i;5+6i,7+8i] C=[1,3;5,7]+[2,4;6,8]*i C=[1,3;5,7]+[2,4;6,8]i

D=sqrt(2+3i) %对复数2+3i求根号 D*D %对D求平方 E=C' %对C转置 F=conj(C) G=conj(C)' (3)

H1=ones(3,2) H2=zeros(2,3) H3=eye(4)

2.数组的基本运算 (1) A=[1 3 5] B=[2 4 6] C=A+B D=A-2

E=B-A (2) F1=A*3 F2=A.*B F3=A./B F4=A.\\B F5=B.\\A F6=B.^A F7=2./B F8=B.\\2 (3) Z1=A*B' Z2=B'*A

3.常用函数及相应的信号波形显示 例1-1:①

t=0:0.05:3; %给建立时间数组 f=2*sin(2*pi*t); %生成函数f

plot(t,f); %用plot作连续信号的曲线 title('f(t)-t曲线'); %在图上端标注图名 xlabel('t'); %标注横坐标 ylabel('f(t)'); %标注纵坐标 ②

t=0:0.05:3; %给建立时间数组 f=2*sin(2*pi*t); %生成函数f

subplot(2,2,1),plot(t,f); %建立2*2子图轴系,在图1处绘线性图 title('plot(t,f)');

subplot(2,2,2),stem(t,f); %建立2*2子图轴系,在图2处绘脉冲图 title('stem(t,f)');

subplot(2,2,3),stairs(t,f); %建立2*2子图轴系,在图3处绘阶梯图 title('stairs(t,f)');

subplot(2,2,4),bar(t,f); %建立2*2子图轴系,在图4处绘条形图 title('bar(t,f)');

练习题: (1)

t=0:0.05:4; %给建立时间数组 f=4*exp((-2)*t); %生成函数f

subplot(2,2,1),plot(t,f); %建立2*2子图轴系,在图1处绘线性图 title('plot(t,f)');

subplot(2,2,2),stem(t,f); %建立2*2子图轴系,在图2处绘脉冲图 title('stem(t,f)');

subplot(2,2,3),stairs(t,f); %建立2*2子图轴系,在图3处绘阶梯图 title('stairs(t,f)');

subplot(2,2,4),bar(t,f); %建立2*2子图轴系,在图4处绘条形图 title('bar(t,f)');

(2)

t=0:0.05:3; %给建立时间数组 f=exp((-1)*t).*cos(2*pi*t); %生成函数f

subplot(2,2,1),plot(t,f); %建立2*2子图轴系,在图1处绘线性图 title('plot(t,f)');

subplot(2,2,2),stem(t,f); %建立2*2子图轴系,在图2处绘脉冲图 title('stem(t,f)');

subplot(2,2,3),stairs(t,f); %建立2*2子图轴系,在图3处绘阶梯图 title('stairs(t,f)');

subplot(2,2,4),bar(t,f); %建立2*2子图轴系,在图4处绘条形图 title('bar(t,f)');

(3)

k=0:0.05:10; %给建立时间数组 f=k; %生成函数f

subplot(2,2,1),plot(k,f); %建立2*2子图轴系,在图1处绘线性图 title('plot(k,f)');

subplot(2,2,2),stem(k,f); %建立2*2子图轴系,在图2处绘脉冲图 title('stem(k,f)');

subplot(2,2,3),stairs(k,f); %建立2*2子图轴系,在图3处绘阶梯图 title('stairs(k,f)');

subplot(2,2,4),bar(k,f); %建立2*2子图轴系,在图4处绘条形图 title('bar(k,f)'); (4)

k=-20:0.05:20; f=k.*sin(k);

subplot(2,2,1),plot(k,f); %建立2*2子图轴系,在图1处绘线性图 title('plot(k,f)');

subplot(2,2,2),stem(k,f); %建立2*2子图轴系,在图2处绘脉冲图 title('stem(k,f)');

subplot(2,2,3),stairs(k,f); %建立2*2子图轴系,在图3处绘阶梯图 title('stairs(k,f)');

subplot(2,2,4),bar(k,f); %建立2*2子图轴系,在图4处绘条形图 title('bar(k,f)');

4. 简单的流程控制编程 例1-2

X=0; %给变量X赋初值0

for n=1:32 %确定循环变量及其取值范围 X=X+n^2; %循环体 end 练习题: (1)

X=0; %给变量X赋初值0

for n=1:20 %确定循环变量及其取值范围 X=X+(2*n-1)^2; %循环体 end

(2)

X=0; %给变量X赋初值0

for n=1:99 %确定循环变量及其取值范围 X=X+n*(n+1); end

(3)

a=[]; %定义数组a为空

a(1)=1; %给数组第一个元素赋值1 a(2)=1; %给数组第二个元素赋值1 for k=1:18 %确定循环变量及其取值范围 a(k+2)=a(k)+a(k+1); %循环体 end

实验二:时域离散信号的产生 (2) ①

n1=-3;n2=4;n0=0; %在起点为n1、终点为n2的范围内,于n0处产生冲激 n=n1:n2; %生成离散信号的时间序列 f=[n==n0]; %建立信号f

stem(n,f,'filled'); %绘制脉冲杆图,且在圆心处用实心圆表示 title('单位脉冲序列')

axis([n1 n2 0 1.1*max(f)]); %限定横坐标和纵坐标的显示范围 ylabel('f(n)'); ②

n1=-5;n2=5;n0=0;

n=n1:n2; %生成离散信号的时间序列 f=[n>=n0]; %生成离散序列f stem(n,f,'filled');

title('单位阶跃序列')

axis([n1 n2 0 1.1*max(f)]);%限定横坐标和纵坐标的显示范围 ylabel('幅度f(n)'); ③

n=0:16;

f=exp((0.1+1.6*pi*j)*n); %建立信号f stem(n,f,'fill'),grid on xlabel('n'),title('f(n)'); ④

n=0:20;

f=3*sin(pi/4*n); %建立信号f stem(n,f,'fill'),xlabel('n'),grid on title('f(n)')

axis([0,20,-3.5,3.5]); %限定横坐标和纵坐标的显示范围 ⑤

n=-20:20;

f=sinc(n/5); %建立信号f stem(n,f,'fill'),xlabel('n'),grid on title('f(n)') (3) f=50; Um=2;

nt=2; %显示周期个数 N=16; %采样点数 T=1/f; %信号周期

dt=T/N; %采样时间间隔

n=0:nt*N-1; %建立离散时间的时间序列

tn=n*dt; %确定时间序列样点在时间轴上的位置 x=1+0.5*Um*sawtooth(2*f*pi*tn);%产生时域信号 subplot(2,1,1);plot(tn,x); %显示原连续信号

axis([0 nt*T 0 2]); %限定横坐标和纵坐标的显示范围 ylabel('x(t)');

subplot(2,1,2);stem(tn,x); %显示经采样的信号 axis([0 nt*T 0 2]); ylabel('x(n)'); (4)

f=200;

nt=2; %显示周期个数 Fs=4000;N=Fs/f; %求采样点数 T=1/f; %求信号周期 dt=T/N; %采样时间间隔

n=0:nt*N-1; %建立离散时间的时间序列

tn=n*dt; %确定时间序列样点在时间轴上的位置 x=square(2*f*pi*tn); %产生时域信号 subplot(2,1,1);plot(tn,x); %显示原连续信号

axis([0 nt*T -1 1]); %限定横坐标和纵坐标的显示范围 ylabel('x(t)');

subplot(2,1,2);stem(tn,x); %显示经采样的信号 axis([0 nt*T -1 1]); ylabel('x(n)');

实验三:离散序列的基本运算 (2) ①

n1=-5;n2=5;n0=0;n3=-3;n4=4;

n=n1:n2; %生成离散信号的时间序列 f1=[n==n0]; %建立f1信号 f2=[n==n3]; %建立f2信号


数字信号处理MATLAB仿真(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:外科护理学普外科复习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: