MATLAB应用实践解读.docx

上传人:b****6 文档编号:6686301 上传时间:2023-01-09 格式:DOCX 页数:42 大小:410.15KB
下载 相关 举报
MATLAB应用实践解读.docx_第1页
第1页 / 共42页
MATLAB应用实践解读.docx_第2页
第2页 / 共42页
MATLAB应用实践解读.docx_第3页
第3页 / 共42页
MATLAB应用实践解读.docx_第4页
第4页 / 共42页
MATLAB应用实践解读.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

MATLAB应用实践解读.docx

《MATLAB应用实践解读.docx》由会员分享,可在线阅读,更多相关《MATLAB应用实践解读.docx(42页珍藏版)》请在冰豆网上搜索。

MATLAB应用实践解读.docx

MATLAB应用实践解读

 

浦江学院

实习报告

(2013—2014学年第一学期)

 

课程名称:

MATLAB应用实践

班级:

学号:

姓名:

指导教师:

 

2013年12月

实验1

练习1、

练习2、

1、源程序:

clearall

n=input('n=');

s=0;

fori=1:

2:

2*n-1

s=s+i;

end

s

结果:

2、源程序:

functiony=f(x)

x=input('input:

n=');

n=length(x);

ifx>0&x<1

y=x;

elseifx>=1&x<=2

y=2-x;

else

y=0;

end

end

结果:

练习3、

LX0701源程序:

A=[1,1,1;1,2,3;1,3,6]

B=[8,1,6;3,5,7;4,9,2]

C=A+B

D=A-B

结果:

LX0702源程序:

X=[2345

1221];

Y=

[011

110

001

100];

Z=X*Y

结果:

源程序:

X=[-102];

a=2*X;

结果:

源程序:

X=[-102];

Y=[-2,-1,1];

Z=dot(X,Y)

结果:

LX0703源程序:

a=[123];

b=[456];

c=cross(a,b)

结果:

LX0704源程序:

a=[1,2,3];

b=[456];

c=[-3,6,-3];

x=dot(a,cross(b,c))

结果:

LX0751源程序:

A=[123;221;343];

inv(A)

结果:

LX0752源程序:

B=[1,2,3,1,0,0;2,2,1,0,1,0;3,4,3,0,0,1];

C=rref(B)%化行最简形

X=C(:

4:

6)

结果:

LX0706源程序:

A=[123;221;343];

D=det(A)

结果:

例3-7

A=sym(‘[1/x,1/(x+1);1/(x+2),1/(x+3)]’);

B=sym(‘[x,1;x+2,0]’)

C=B-A

D=A\B

结果:

LX0710源程序:

symsxy

p=expand((x+1)^3)

q=expand(sin(x+y))

结果:

LX0714源程序:

A=[1-223;-24-13;-1203;0623;2-634];

B=rank(A)

结果:

LX0715源程序:

a1=[1-223]';

a2=[-24-13]';

a3=[-1203]';

a4=[0623]';

a5=[2-634]';

A=[a1a2a3a4a5]

formatrat%以有理格式输出

B=rref(A)%求A的行最简形

LX0716源程序:

A=[56000

15600

01560

00156

00015];

B=[10001]';

R_A=rank(A)

X=A\B

例5-2源程序:

A=[11-3-1;3-1-34;15-9-8];

B=[140]';

X=A\B

实验二

(1)单位脉冲源程序:

n1=-4;

n2=4;

n0=0;

n=n1:

n2;

x=[n==n0];

stem(n,x,'filled');

title('单位脉冲序列');

xlabel('时间(n)');

ylabel('序列值x(n)');

(2)单位阶跃源程序:

n1=-4;

n2=4;

n0=0;

n=n1:

n2;

x=[n>n0];

stem(n,x,'filled');

title('单位阶跃序列');

xlabel('时间(n)');

ylabel('序列值x(n)');

(3)矩形源程序:

n=1:

40;

x=sign(sign(8-n)+1);

stem(n,x,'filled');

title('矩形序列');

xlabel('时间(n)');

ylabel('序列值x(n)');

(3)正弦源程序:

fs=40;n=10;

n=0:

n-1;

x=sin(pi*n/5+pi/3);

stem(n,x,'filled');

title('正弦波序列');

xlabel('时间(n)');

ylabel('序列值x(n)');

text(11,0.8,'x=sin(10*pi*n)');

(4)任意源程序:

n=-5:

7;

x=[zeros(1,5),1,2,3,4,5,zeros(1,3)];

stem(n,x,'filled');

title('任意序列');

xlabel('时间(n)');

ylabel('序列值x(n)');

n=-5:

5;

h=[zeros(1,5),1,2,3,4,zeros(1,2)];

stem(n,h,'filled');

title('任意序列');

xlabel('时间(n)');

ylabel('序列值h(n)');

卷积源程序:

n=-5:

7;

x=[zeros(1,5),1,2,3,4,5,zeros(1,3)];

h=[zeros(1,5),1,2,3,4,zeros(1,4)];

y=conv(h,x);

subplot(4,1,1);

stem(h,'filled');

title('h');

xlabel('时间(n)');

ylabel('序列值h(n)');

subplot(4,1,2);

stem(x,'filled');

title('x');

xlabel('时间(n)');

ylabel('序列值x(n)');

subplot(4,1,3);

stem(y,'filled');

title('y');

xlabel('时间(n)');

ylabel('序列值y(n)');

移位反褶累加源程序:

n=-5:

7;

x=[zeros(1,5),1,2,3,4,5,zeros(1,3)];

stem(n,x,'fill');

y=circshift(x,[0,2]);%右移两位

h=fliplr(x);%反褶

a=cumsum(x);%累加

subplot(1,3,1);stem(n,y,'b');xlabel('n');ylabel('y');title('移位');

axis([-37-13]);gridon;

subplot(1,3,2);stem(n,h,'g');xlabel('n');ylabel('h');title('反褶');

axis([-57-13]);gridon;

subplot(1,3,3);stem(n,a,'c');xlabel('n');ylabel('a');title('累加');

和积源程序:

n=-5:

7;

x=[zeros(1,5),1,2,3,4,5,zeros(1,3)];

h=[zeros(1,5),1,2,3,4,zeros(1,4)];

y=x+h;%相加

a=x.*h;%相乘

b=dot(x,h)%标乘

subplot(1,2,1);stem(n,y,'b');xlabel('n');ylabel('y');title('相加');

axis([-57-410]);gridon;

subplot(1,2,2);stem(n,a,'g');xlabel('n');ylabel('a');title('相乘');

axis([-57-418]);gridon;

方波锯齿波源程序:

clearall;closeall;clc;

nx=0:

5;

x1=[000333];

x2=[012345];

ny=0:

17;y1=zeros(1,18);y2=zeros(1,18);

fori=0:

17

y1(i+1)=x1(mod(i,6)+1);

y2(i+1)=x2(mod(i,6)+1);

end

subplot(2,2,1),stem(nx,x1,'.');grid;axis([-118-16]);

xlabel('n');ylabel('x1(n)');title('原序列');

subplot(2,2,2),stem(ny,y1,'.');grid;axis([-118-16]);

xlabel('n');ylabel('y1(n)');title('方波信号');

subplot(2,2,3),stem(nx,x2,'.');grid;axis([-118-16]);

xlabel('n');ylabel('x2(n)');title('原序列');

subplot(2,2,4),stem(ny,y2,'.');grid;axis([-118-16]);

xlabel('n');ylabel('y2(n)');title('锯齿波信号');

gridon;

实验三

语音频谱分析源程序:

clearall;

[y,fs,bit]=wavread('huli.wav');

sound(y,fs,bit);

n=length(y)

Y=fft(y,n);

subplot(2,1,1);

plot(y);

title('原始信号波形');

subplot(2,1,2);

plot(abs(Y));

title('原始信号频谱')

FIR带通源程序:

clearall;

[y,fs,bits]=wavread('huli.wav');

sound(y,fs,bits);%话音回放

n=length(y)%求出语音信号的长度

Y=fft(y,n);

fs=20000;

fp1=1200;fp2=3000;

fs1=1000;fs2=3200;

As=100;

Ws1=(fp1+fs1)/fs;Ws2=(fp2+fs2)/fs;

w=(fp1-fs1)/fs;

M=ceil((As-7.95)/(14.36*w));

juxing=boxcar(M+1);

boxb=fir1(M,[Ws1,Ws2],juxing);

freqz(boxb,1,fs,fs);

[h,w]=freqz(boxb,1);

z22=fftfilt(boxb,y);

sound(z22);

m22=fft(z22);%求滤波后的信号

subplot(2,2,1);

plot(abs(Y),'g');

title('滤波前信号的频谱');

grid;

subplot(2,2,2);

plot(abs(m22),'r');

title('滤波后信号的频谱');

grid;

subplot(2,2,3);

plot(y);

title('滤波前信号的波形');

grid;

subplot(2,2,4);

plot(z22);

title('滤波后的信号波形');

grid;

wavwrite(y,'FIR带通.wav');

FIR低通频谱分析源程序:

clearall;

[y,fs,bits]=wavread('huli.wav');%x:

语音数据;fs:

采样频率;bits:

采样点数sound(y,fs,bits);%话音回放

n=length(y)%求出语音信号的长度

Y=fft(y,n);%傅里叶变换

Ft=8000;

Fp=1000;

Fs=1200;

wp=2*Fp/Ft;

ws=2*Fs/Ft;

rp=1;

rs=100;

p=1-10.^(-rp/20);%通带阻带波纹

s=10.^(-rs/20);

fpts=[wpws];

mag=[10];

dev=[ps];

[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev);

b21=fir1(n21,wn21,Kaiser(n21+1,beta));%由fir1设计滤波器

[h,w]=freqz(b21,1);%得到频率响应

z21=fftfilt(b21,y);

sound(z21);

m21=fft(z21);%求滤波后的信号

subplot(2,2,1);

plot(abs(Y),'g');

title('滤波前信号的频谱');

grid;

subplot(2,2,2);

plot(abs(m21),'r');

title('滤波后信号的频谱');

grid;

subplot(2,2,3);

plot(y);

title('滤波前信号的波形');

grid;

subplot(2,2,4);

plot(z21);

title('滤波后的信号波形');

grid;

wavwrite(y,'FIR低通.wav');

FIR高通频谱分析源程序:

clearall;

[y,fs,bits]=wavread('huli.wav');%x:

语音数据;fs:

采样频率;bits:

采样点数

sound(y,fs,bits);%话音回放

n=length(y)%求出语音信号的长度

Y=fft(y,n);%傅里叶变换

Ft=8001;

Fp=4000;

Fs=3500;

wp=2*Fp/Ft;

ws=2*Fs/Ft;

rp=1;

rs=100;

p=1-10.^(-rp/20);

s=10.^(-rs/20);

fpts=[wswp];

mag=[01];

dev=[ps];

[n22,wn22,beta,ftype]=kaiserord(fpts,mag,dev);

b22=fir1(n22,wn22,'high',Kaiser(n22+1,beta));%由fir1设计滤波器

[h,w]=freqz(b22,1);

z22=fftfilt(b22,y);

sound(z22);

m22=fft(z22);%求滤波后的信号

subplot(2,2,1);

plot(abs(Y),'g');

title('滤波前信号的频谱');

grid;

subplot(2,2,2);

plot(abs(m22),'r');

title('滤波后信号的频谱');

grid;

subplot(2,2,3);

plot(y);

title('滤波前信号的波形');

grid;

subplot(2,2,4);

plot(z22);

title('滤波后的信号波形');

grid;

wavwrite(y,'FIR高通.wav');

IIR带通源程序:

clearall;

[y,fs,bits]=wavread('huli.wav');%x:

语音数据;fs:

采样频率;bits:

采样点数

sound(y,fs,bits);%话音回放

n=length(y)%求出语音信号的长度

Y=fft(y,n);%傅里叶变换

fp1=1200;fp2=3000;

fs1=1000;fs2=3200;

rp=1;rs=100;

fs=10000;

T=1/fs;

wc=[2*fs1/fs,2*fs2/fs];

wp=[2*fp1/fs,2*fp2/fs];

[N,W]=buttord(wc,wp,rp,rs,'s');

[b,a]=butter(N,W);

[h,w]=freqz(b,a);

z12=filter(b,a,y);

sound(z12);

m12=fft(z12);%求滤波后的信号

subplot(2,2,1);

plot(abs(Y),'g');

title('滤波前信号的频谱');

grid;

subplot(2,2,2);

plot(abs(m12),'r');

title('滤波后信号的频谱');

grid;

subplot(2,2,3);

plot(y);

title('滤波前信号的波形');

grid;

subplot(2,2,4);

plot(z12);

title('滤波后的信号波形');

grid;

wavwrite(y,'IIR带通.wav');

IIR低通源程序:

clearall;

[y,fs,bits]=wavread('huli.wav');%x:

语音数据;fs:

采样频率;bits:

采样点数

sound(y,fs,bits);%话音回放

n=length(y)%求出语音信号的长度

Y=fft(y,n);%傅里叶变换

Ft=8000;

Fp=1000;

Fs=1200;

wp=2*pi*Fp/Ft;

ws=2*pi*Fs/Ft;

fp=2*Ft*tan(wp/2);

fs=2*Fs*tan(wp/2);

[n11,wn11]=buttord(wp,ws,1,50,'s');%求低通滤波器的阶数和截止频率

[b11,a11]=butter(n11,wn11,'s');%求S域的频率响应的参数

[num11,den11]=bilinear(b11,a11,0.5);

[h,w]=freqz(num11,den11);%根据参数求出频率响应

z11=filter(num11,den11,y);

sound(z11);

m11=fft(z11);%求滤波后的信号

subplot(2,2,1);

plot(abs(Y),'g');

title('滤波前信号的频谱');

grid;

subplot(2,2,2);

plot(abs(m11),'r');

title('滤波后信号的频谱');

grid;

subplot(2,2,3);

plot(y);

title('滤波前信号的波形');

grid;

subplot(2,2,4);plot(z11);

title('滤波后的信号波形');

grid;

wavwrite(y,'IIR低通.wav');

IIR高通源程序:

clearall;

[y,fs,bits]=wavread('huli.wav');%x:

语音数据;fs:

采样频率;bits:

采样点数

sound(y,fs,bits);%话音回放

n=length(y)%求出语音信号的长度

Y=fft(y,n);%傅里叶变换

Ft=8000;

Fp=5000;

Fs=4800;

wp1=tan(pi*Fp/Ft);%高通到低通滤波器参数转换

ws1=tan(pi*Fs/Ft);

wp=1;

ws=wp1*wp/ws1;

[n12,wn12]=cheb1ord(wp,ws,1,100,'s');%求模拟的低通滤波器阶数和截止频率

[b12,a12]=cheby1(n12,1,wn12,'s');%求S域的频率响应的参数

[num,den]=lp2hp(b12,a12,wn12);%将S域低通参数转为高通的

[num12,den12]=bilinear(num,den,0.5);%利用双线性变换实现频率响应S域到Z域转换

[h,w]=freqz(num12,den12);

z12=filter(num12,den12,y);

sound(z12);

m12=fft(z12);%求滤波后的信号

subplot(2,2,1);

plot(abs(Y),'g');

title('滤波前信号的频谱');

grid;

subplot(2,2,2);

plot(abs(m12),'r');

title('滤波后信号的频谱');

grid;

subplot(2,2,3);

plot(y);

title('滤波前信号的波形');

grid;

subplot(2,2,4);

plot(z12);

title('滤波后的信号波形');

grid;

wavwrite(y,'IIR高通.wav');

实验四

任务一、

波形:

任务二、

任务三、

2、

波形:

任务三

3、

波形、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1