MATLAB电子作业

发布 2022-09-08 23:08:28 阅读 7884

matlab操作作业。

1、 编写matlab程序产生下列基本脉冲序列。

1) 单位抽样序列,起点ns=0,终点nf=10,在n0=6处有一单位脉冲。

2) 单位阶跃序列,起点ns=0,终点nf=10,在n0=6前为0,后为1。

3) 复指数序列,σ=0.2,ω0=0.8。

解: 程序清单:

clear,n0=6;

ns=0;nf=10;

n1=[ns:nf];

x1=[zeros(1,n0-ns),1,zeros(1,nf-n0)];

n2=[ns:nf];

x2=[zeros(1,n0-ns),ones(1,nf-n0+1)];

n3=[ns:nf];

x3=exp((-0.2+0.8j)*n3);

subplot(2,2,1),stem(n1,x1);

title('单位脉冲序列(n-6)')

subplot(2,2,2),stem(n2,x2);

title('单位阶跃序列(n-6)')

subplot(2,2,3),stem(n3,real(x3));

line([0,10],[0,0])

title('复指数序列');ylabel ('实部');

subplot(2,2,4),stem(n3,imag(x3));

line([0,10],[0,0])

title('复指数序列');ylabel ('虚部');

2、 一个信号是由50hz、幅值为0.6的正弦信号和80hz、幅值为3的正弦信号组成。数据采样频率fs=200hz(对应于采样间隔为0.

005s),试分别绘制n=128点fft幅频图和n=1024点幅频图。

解:clf;

fs=200;n=128采样频率和数据点数。

n=0:n-1;t=n/fs时间序列。

x=0.6*sin(2*pi*50*t)+3*sin(2*pi*80*t); 信号。

y=fft(x,n对信号进行快速傅里叶变换。

mag=abs(y求得傅里叶变换后的振幅。

f=n*fs/n频率序列。

subplot(2,2,1),plot(f,mag绘出随频率变化的振幅。

xlabel('频率/hz');

ylabel('振幅');

title('n=128');grid on;

subplot(2,2,2),plot(f(1:n/2),mag(1:n/2));绘出nyquist频率之前随频率变化的振幅。

xlabel('频率/hz');

ylabel('振幅');

title('n=128');grid on对信号采样数据为1024点的处理。

fs=200;n=1024;n=0:n-1;t=n/fs;

x=0.6*sin(2*pi*50*t)+3*sin(2*pi*80*t); 信号。

y=fft(x,n对信号进行快速傅里叶变换。

mag=abs(y求得傅里叶变换后的振幅。

f=n*fs/n;

subplot(2,2,3),plot(f,mag绘出随频率变化的振幅

xlabel('频率/hz');

ylabel('振幅');

title('n=1024');grid on;

subplot(2,2,4),plot(f(1:n/2),mag(1:n/2));绘出nyquist频率之前随频率变化的振幅。

xlabel('频率/hz');

ylabel('振幅');

title('n=1024');grid on;

3、运用fft对信号x=5*sin(2*pi*10*n*dt)+cos(2*pi*30*n*dt),数据点数为512,进行滤波,将频率为20~40hz的波滤去。采样间隔dt=0.01。

绘出滤波前和滤波后的振幅谱以及滤波后的时间域信号。

解:dt=0.01;n=512;

n=0:n-1;

t=n*dt;

f=n/(n*dt);

f1=10;f2=30;

x=5*sin(2*pi*f1*t)+cos(2*pi*f2*t);

subplot(2,2,1),plot(t,x);

title('原始信号的时域');xlabel('时间/s');

y=fft(x);

subplot(2,2,2),plot(f,abs(y)*2/n)

xlabel('频率/hz'),ylabel('振幅')

xlim([0 50]);title('原始振幅谱')

f1=20;f2=40;

yy=zeros(1,length(y));

for m=0:n-1

if(m/(n*dt)>f1&m/(n*dt) |m/(n*dt)>(1/dt-f2)&m/(n*dt)<(1/dt-f1))

yy(m+1)=0.;

elseyy(m+1)=y(m+1);

endend

subplot(2,2,4),plot(f,abs(yy)*2/n)

xlim([0 50]);xlabel('频率/hz');ylabel('振幅')

gstext=sprintf('%4.1f -%4.1f hz 的频率被滤除',f1,f2); title(gstext)

subplot(2,2,3),plot(t,real(ifft(yy)))

title('通过ifft回到时间域');

xlabel('时间/s');

4、用脉冲响应不变法和双线性变换法将下列模拟滤波器h(s)转变为数字滤波器h(z).

解:程序清单:

b=[1 2];a=[2 3 1];t=2;

bz1,az1]=impinvar(b,a,1/t)

程序输出结果:

5、设计带通chebyshev i 型模拟滤波器ws1=0.2*pi(rad/s);ws2=0.8*pi(rad/s);rs=60db;wp1=0.

3*pi(rad/s);wp2=0.7*pi(rad/s);rp=1db。

解:程序清单:

wp=[0.3 0.7]*pi;

ws=[0.2 0.8]*pi;

rp=1;rs=60;

n,wn]=cheb1ord(wp,ws,rp,rs,'s');

[z,p,k]=cheb1ap(n,rp);

b,a]=zp2tf(z,p,k);

wo=sqrt(wn(1)*wn(2));

bw=wn(2)-wn(1);

bt,at]=lp2bp(b,a,wo,bw

h,w]=freqs(bt,at,128);

plot(w/pi,20*log10(abs(h)))

xlabel('角频率/pi');

ylabel('|h(jw)|/db')

grid on;hold on;

plot([0.2 0.2],ylim,'r');

plot([0.8 0.8],ylim,'r');

plot([0.3 0.3],ylim);

plot([0.7 0.7],ylim);

6、设计一个butterworth高通数字滤波器,通带边界频率为400hz,阻带边界频率为300hz,通带波纹小于1db,阻带衰减大于40db,采样频率为2000hz,假设一个信号,其中f1=100hz,f2=500hz.试将原信号与通过该滤波器的输出信号进行比较。

fs=2000;

wp=400*2/fs;

ws=300*2/fs;

rp=1;rs=40;

nn=128;

n,wn]=buttord(wp,ws,rp,rs);

b,a]=butter(n,wn,'high');

figure(1)

h,f]=freqz(b,a,nn,fs);

subplot(2,1,1),plot(f,20*log10(abs(h)))

xlabel('频率/hz');

ylabel('振幅/db');

grid on;

subplot(2,1,2),plot(f,180/pi*unwrap(angle(h)))

xlabel('频率/hz');

ylabel('相位/^o');

grid on;

n=0:127;

dt=1/fs;t=n*dt;

f1=100;f2=500;

x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t);

figure(2);

subplot(2,1,1);

plot(t,x);

title('输入信号');

y=filter(b,a,x);

subplot(2,1,2);

plot(t,y);

title('输出信号')

xlabel('时间/s');

matlab作业

2011029170002王柳。a 一个问题的病态性如何,与求解它的算法有关系。错 b 无论问题是否病态,好的算法都会得到它好的近似解。错 c 计算中使用更高的精度,可以改善问题的病态性。错 d 用一个稳定的算法计算一个良态问题,一定会得到它好的近似解。对 e 浮点数在整个数轴上是均匀分布。错 f ...

matlab作业

matlab语言 第3次作业 字符串,单元数组和结构体 专业 海洋技术 海洋测绘方向 姓名 张体强学号 1026222 1 如何将一个char 数据类型的向量转化为相应的double 型数据类型的数据向量。从式1 到8,判断这些语句是否正确。如果它们正确,那么将产生什么结果?这题不要在电脑中做。1....

matlab作业

电子与通信工程学院。通信系统 实验报告。2013 2014 学年第1学期。调频 fm 系统调制解调 专业 通信工程。班级 通信111 班。学号 姓名 指导教师姓名陈多瑜。2013年 11 月日。1.频率调制或调频 fm 1 设调制信号为m t 调频信号的数学表达式为。例如 m t 的时域波形为。m ...