Advertisement

实验一 离散信号的MATLAB表示

阅读量:

本实验主要围绕MATLAB编程与数据处理展开,具体包括以下内容:
手动输入向量并进行基本运算(加、减、乘、除、幂运算),并使用stem语句绘制结果图形;
生成并保存两个序列到不同格式的文件(Excel、txt、mat);
在同一图形窗口中显示两组数据,并添加图名、轴名、网格线及图例;
编写函数实现专家评分算法,去除一个最高分和最低分后计算平均值。

一、实验内容
(1)手动输入A=[1 2 3 4],B=[3 4 5 6],起点均为n=0,求C=A+B,D=A-B,E=A.*B,F=A./B,
G=A.^B,并用stem语句画出A,B,C,D,E,F,G。
(2)用MATLAB实现下列公式所表示的序列,并分别用EXCEL文件、. txt、. mat格式保存两个序列。
①x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π) 0≤n≤15
②x(n)=0.8" 0≤n≤15
(3)编写MATLAB程序,导入上述保存文件的数据,在同一个图形窗口中显示两组数据,分别添加标注(legend)。添加图的名称、轴名称和网格线。
(4)编写一个函数实现专家评分,评分规则:给定一组专家分数数据x(0至100范围为有效分数),去掉一个最大值,去掉一个最小值,剩下数据取平均。提示: function score_avg=score(x)。

二、以MATLAB表示

1)、

复制代码
 A=[1 2 3 4];

    
 B=[3 4 5 6];
    
 n=[0:3];
    
 C=A+B;D=A-B;E=A.*B;F=A./B;G=A.^B;
    
 figure(1)%创建一个画图窗口
    
 subplot(2,2,1)%在画图窗口中划分出2*2的四个图,选择第一个进行画图
    
 stem(n,A);xlabel('n'),ylabel('A');grid ON;%stem是绘画杆状图,xlabel、ylabel是给x轴、y轴添加注释,grid ON是对当前图形添加网格线;
    
 subplot(2,2,2))%在画图窗口中划分出2*2的四个图,选择第二个进行画图
    
 stem(n,B);xlabel('n'),ylabel('B');grid ON;
    
 subplot(2,2,3))%在画图窗口中划分出2*2的四个图,选择第三个进行画图
    
 stem(n,C);xlabel('n'),ylabel('C');grid ON;
    
 subplot(2,2,4))%在画图窗口中划分出2*2的四个图,选择第四个进行画图
    
 stem(n,D);xlabel('n'),ylabel('D');grid ON;
    
 figure(2)%创建第二个画图窗口
    
 subplot(3,1,1)%在画图窗口中划分出3*1的四个图,选择第一个进行画图
    
 stem(n,E);xlabel('n'),ylabel('E');grid ON;
    
 subplot(3,1,2)%在画图窗口中划分出3*1的四个图,选择第二个进行画图
    
 stem(n,F);xlabel('n'),ylabel('F');grid ON;
    
 subplot(3,1,3)%在画图窗口中划分出3*1的四个图,选择第三个进行画图
    
 stem(n,G);xlabel('n'),ylabel('G');grid ON;

2)、

复制代码
 n=[1:15];%n的范围,相当于步长为1,也可写为n=[1:1:15];

    
 x1=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi); 
    
 xlswrite('x1.xls',x1,'sheel','A1'); %将X1写入到以x1.xls命名的EXCLE(表格)文件中,写入在sheel中,从A1单元格开始写入
    
 save x1.txt -ascii x1;%将X1写入到以x1.txt命名的TXT文件中;
    
 save x1 x1;%将X1写入到x1.mat文件中;
    
 x2=power(0.8,n);
    
 xlswrite('x2.xls',x2,'sheel','A1'); 
    
 save x2.txt -ascii x2; 
    
 save x2 x2;
    
 figure(1); %创建绘图窗口
    
 subplot(2,1,1) %创建2*1的子图,选择第一个开始绘图
    
 stem(n,x1);xlabel('n');ylabel('x1'); %stem是绘画杆状图,xlabel、ylabel是给x轴、y轴添加注释;
    
 subplot(2,1,2); %创建2*1的子图,选择第二个开始绘图
    
 stem(n,x2);xlabel('n');ylabel('x2');

3)、

复制代码
 n=[0:0.1:15];

    
 x1=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi);
    
 xlswrite('x1.xls',x1,'sheel','A1'); 
    
 save x1.txt -ascii x1;
    
 save x1 x1;
    
 x2=power(0.8,n);
    
 xlswrite('x2.xls',x2,'sheel','A1'); 
    
 save x2.txt -ascii x2; 
    
 save x2 x2;
    
 n=[0:0.1:15];
    
 load x1;%读取X1的数据
    
 subplot(2,1,1) %绘图,在2*1的图框中选择第一个子图绘图
    
 stem(n,x1);xlabel('n');ylabel('x1'); %stem是绘画杆状图,xlabel、ylabel是给x轴、y轴添加注释,
    
 legend('x1=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi)');%添加图像图例,即添加标注
    
 load x2;
    
 subplot(2,1,2); 
    
 stem(n,x2);xlabel('n');ylabel('x2'); 
    
 legend('x2=power(0.8,n)');

4)、

复制代码
 function score_avg=score(a) %创建函数

    
 n=input('请输入数字个数:');
    
 for i=1:n
    
  a(i)=input('输入成绩:');
    
 end
    
 t=double(n-2);
    
 score_avg=(sum(a)-max(a)-min(a))./t;

全部评论 (0)

还没有任何评论哟~