序列生成与滑动平均滤波

一、实验目的
1.熟悉MATLAB编程环境、掌握MATLAB编程特点、了解数字信号处理工具箱;掌握常用图形绘制与标注方法。
2.掌握基于计算机软件的正弦序列、指数序列、复正弦序列、多频正弦序列、含噪声序列的生成方法。
3.掌握MATLAB的函数编程方法,掌握滑动平均滤波原理及实现方法,掌握窗口长度对滑动平均结果的影响规律。
二、实验过程与实验结果
1.简单序列生成
在这里插入图片描述
程序如下:

N=100;n=0:1:N-1;
x1=cos(pi*n/16);x2=cos(15*pi*n/16);
figure(1)
subplot(2,1,1),stem(n,x1);
title('X1[n]=cos(w1*n),w1=pi/16,N=100,18373227林春志')
xlabel('n');ylabel('幅度');
subplot(2,1,2),stem(n,x2);
title('X2[n]=cos(w2*n),w2=15*pi/16,N=100,18373227林春志')
xlabel('n');ylabel('幅度');

结果如图1所示 :
图1.余弦序列
在这里插入图片描述
程序如下:

N=30;n=0:1:N-1;r1=0.9;r2=-0.9;
x1=r1.^n;x2=r2.^n;
figure(1)
subplot(2,1,1),stem(n,x1);
title('X1[n]=r1^n,N=30')
xlabel('n');ylabel('幅度');
subplot(2,1,2),stem(n,x2);
title('X2[n]=r2^n,N=30')
xlabel('n');ylabel('幅度');

结果如图2所示:
图2.指数序列
在这里插入图片描述
程序如下:

r1=0.9;w=pi/8;
n=0:1:49;
x1=real(r1.^n.*exp(1i*w*n));
x2=imag(r1.^n.*exp(1i*w*n));
figure(1)
subplot(2,1,1),stem(n,x1);
title('正弦分量');
xlabel('n');ylabel('幅度');
subplot(2,1,2),stem(n,x2);
title('余弦分量');
xlabel('n');ylabel('幅度'); 

结果如图3所示:
图3.复指数序列
在这里插入图片描述
程序如下:

n=0:1:149;
A1=1;w1=pi/32;theta1=0;
x1=A1*cos(w1*n+theta1);
A2=0.75;w2=3*pi/32;theta2=pi/3;
x2=A2*cos(w2*n+theta2);
A3=0.25;w3=5*pi/32;theta3=2*pi/3;
x3=A3*cos(w3*n+theta3);
xn=x1+x2+x3;
figure(1)
subplot(2,1,1),stem(n,x1);
title('幅度为A1=1.0、频率为w1=π/32、相位为0');
xlabel('n');ylabel('幅度');
subplot(2,1,2),stem(n,x2);
title('幅度为A2=0.75、频率为w2=3π/32、相位为π/3');
xlabel('n');ylabel('幅度');
figure(2)
subplot(2,1,1),stem(n,x3);
title('幅度为A3=0.25、频率为w3=5π/32、相位为2π/3');
xlabel('n');ylabel('幅度');
subplot(2,1,2),stem(n,xn);
title('复合序列');
xlabel('n');ylabel('幅度');

结果如图4.1和4.2所示:
图4.1前两个正弦序列
图4.2 第三个正弦序列与多频正弦序列
在这里插入图片描述
程序如下所示:

n=0:1:149;
A=1;w1=pi/16;
x1=A*sin(w1*n);
x2=rand(1,150);
z1=0.6*(x2-0.5);
x3=x1+z1;
figure(1)
subplot(3,1,1),stem(n,x1);
title('正弦序列');
xlabel('n');ylabel('幅度');
subplot(3,1,2),stem(n,z1);
title('噪声序列');
xlabel('n');ylabel('幅度');
subplot(3,1,3),stem(n,x3);
title('含噪声正弦序列');
xlabel('n');ylabel('幅度');

结果如图5所示:
图5.含噪声序列
在这里插入图片描述

1.n=0:1:149;
2.A=1;w1=pi/16;
3.x1=A*sin(w1*n);
4.x2=rand(1,150);
5.z1=0.3*(x2-0.5);
6.xn=x1+z1;
7.y1 = MAF(xn,3);
8.y2 = MAF(xn,5);
9.y3 = MAF(xn,7);
10.y4 = MAF(xn,9);
11.y5 = MAF(xn,11);
12.figure(1)
13.subplot(2,1,1),stem(n,xn);
14.title('含噪声正弦序列');
15.xlabel('n');
16.ylabel('幅度');
17.subplot(2,1,2),stem(n,y1);
18.title('3点滑动平均');
19.xlabel('n');
20.ylabel('幅度');
21.figure(2)
22.subplot(2,1,1),stem(n,y2);
23.title('5点滑动平均');
24.xlabel('n');
25.ylabel('幅度');
26.subplot(2,1,2),stem(n,y3);
27.title('7点滑动平均');
28.xlabel('n');
29.ylabel('幅度');
30.figure(3)
31.subplot(2,1,1),stem(n,y4);
32.title('9点滑动平均');
33.xlabel('n');
34.ylabel('幅度');
35.subplot(2,1,2),stem(n,y5);
36.title('11点滑动平均');
37.xlabel('n');
ylabel('幅度');
function y=MAF(x,len)
n=length(x);
m=(len-1)/2;
y=zeros(1,150);
for i=m+1:1:n-m
for j=-m:1:m
y(i)=y(i)+x(i+j);
end
y(i)=y(i)/len;
end

结果如图6.1、图6.2与图6.3所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猛汉轻敲乱码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值