华南理工大学信号与系统实验基于Matlab的信号处理实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2讲基于Matlab的信号处理实例实验内容(1)
(1) 读取给定的3D加速度信号文件,绘出信号波形;
程序源代码:
function sy2
fid = fopen('run 100m_TROUSERS POCKET_1_陈佳_1.txt','r');
a=fscanf(fid,'%d,%d,%d\n');
fclose(fid);
len=length(a)/3;
k=1;
for i=1:len
x(i)=a(k);
y(i)=a(k+1);
z(i)=a(k+2);
k=k+3;
end
subplot(3,1,1);
plot(x(1:700),'g','LineWidth',3);
grid on; %标示格子
xlabel('n'),ylabel('x');%标示坐标
legend('x(i)'); %标示名称
subplot(3,1,2);
plot(y(300:700),'m','LineWidth',3)
grid on; %标示格子
xlabel('n'),ylabel('y');%标示坐标
legend('y(i)'); %标示名称
subplot(3,1,3);
plot(z(300:700),'b','LineWidth',3);
grid on; %标示格子
xlabel('n'),ylabel('z');%标示坐标
legend('z(i)'); %标示名称
执行结果如下所示:
100
200
300
400500600700
050100150200
n
x
x(i)
50
100
150
200
250300350400450
50100150200250
n
y
y(i)
50100150200
250300350400450
0100200
300
n
z
z(i)
(2) 将读出的3D 加速度信号分解为偶序列及奇序列,分别绘出波形;绘出偶序列及奇序列的和信号、差信号及积信号的波形;
a.分解为偶序列及奇序列,分别绘出波形: 程序源代码:
function sy2oe
fid = fopen('run 100m_TROUSERS POCKET_1_陈佳_1.txt','r'); a=fscanf(fid,'%d,%d,%d\n'); fclose(fid);
len=length(a)/3; k=1;
for i=1:len x(i)=a(k); y(i)=a(k+1);
z(i)=a(k+2);
k=k+3;
end
x0=[zeros(1,len-1),x];%x前面补0
x1=fliplr(x0);%x1即是反转的x0
ex=(x1+x0)/2;%x的偶部
ox=-(x1-x0)/2;%x的奇部
y0=[zeros(1,len-1),y];
y1=fliplr(y0);
ey=(y1+y0)/2;
oy=-(y1-y0)/2;
z0=[zeros(1,len-1),z];
z1=fliplr(z0);
ez=(z1+z0)/2;
oz=-(z1-z0)/2;
subplot(3,2,1);
plot([-len+1:len-1],ex ,'g','LineWidth',3); grid on; %标示格子
xlabel('n'),ylabel('x');%标示坐标
legend('ex(i)'); %标示名称
subplot(3,2,3);
plot([-len+1:len-1],ey,'m','LineWidth',3) grid on; %标示格子
xlabel('n'),ylabel('y');%标示坐标
legend('ey(i)'); %标示名称
subplot(3,2,5);
plot([-len+1:len-1],ez,'b','LineWidth',3); grid on; %标示格子
xlabel('n'),ylabel('z');%标示坐标
legend('ez(i)'); %标示名称
subplot(3,2,2);
plot([-len+1:len-1],ox,'g','LineWidth',3); grid on; %标示格子
xlabel('n'),ylabel('x');%标示坐标
legend('ox(i)'); %标示名称
subplot(3,2,4);
plot([-len+1:len-1],oy,'m','LineWidth',3) grid on; %标示格子
xlabel('n'),ylabel('y');%标示坐标
legend('oy(i)'); %标示名称
subplot(3,2,6);
plot([-len+1:len-1],oz,'b','LineWidth',3); grid on; %标示格子
xlabel('n'),ylabel('z');%标示坐标